Veste, kako lahko, če ste skrbniški uporabnik sistema in lahko z desno tipko miške kliknete recimo paketno skripto in jo zaženete kot skrbnik, ne da bi vnesli skrbniško geslo?
Zanima me, kako to narediti s skripto PowerShell. Ne želim, da bi mi bilo treba vnesti geslo; želim samo posnemati metodo Zaženi kot upravitelj z desnim klikom.
Vse, kar sem doslej prebral, zahteva, da navedete skrbniško geslo.
Če trenutna konzola ni povišana in operacija, ki jo želite izvesti, zahteva povišane privilegije, lahko zaženete program powershell z možnostjo "Zaženi kot skrbnik"
PS> Start-Process powershell -Verb runAs
Z lahkoto lahko dodate nekaj vnosov v register, da dobite "Zaženi kot skrbnik" kontekstni meni za datoteke .ps1
:
New-Item -Path "Registry::HKEY_CLASSES_ROOT\Microsoft.PowershellScript.1\Shell\runas\command" `
-Force -Name '' -Value '"c:\windows\system32\windowspowershell\v1.0\powershell.exe" -noexit "%1"'
(posodobljeno z enostavnejšo skripto @Shay)
V bistvu na HKCR:\Microsoft.PowershellScript.1\Shell\runas\command
nastavite privzeto vrednost za klic skripte z uporabo Powershella.
Takšno obnašanje je načrtovano. Obstaja več ravni varnosti, saj Microsoft res ni želel, da bi bile datoteke .ps1 najnovejši virus e-pošte. Nekateri menijo, da je to v nasprotju s samim pojmom avtomatizacije opravil, kar je pravično. Varnostni model Viste+ je "de-avtomatizirati" stvari in tako prisiliti uporabnika, da jih uredi.
Vendar pa sumim, da če zaženete sam program powershell kot povišani, bi moral biti sposoben zagnati paketne datoteke, ne da bi ponovno zahteval geslo, dokler programa powershell ne zaprete.