Ho un file batch chiamato test.bat
. Sto chiamando le seguenti istruzioni nel file test.bat
:
start /min powershell.exe %sysdrive%\testScripts\testscript1.ps1
Quando lo eseguo attraverso il prompt dei comandi, il mio testcript viene eseguito con successo. Voglio eseguirlo come amministratore (come se avessi creato un collegamento sul desktop ed eseguito come amministratore. Non dovrebbe richiedere alcun nome utente o password).
Ho provato ad aggiungere i parametri /elevate
e /NOUAC
nel suddetto test.bat
, ma senza fortuna. Come posso risolvere questo problema?
So come farlo manualmente, ma voglio che questo venga eseguito dal prompt dei comandi.
(Da Marnix Klooster): ...senza usare strumenti aggiuntivi, come quelli suggeriti in una risposta alla domanda di Super User Come eseguire un programma dalla riga di comando con diritti elevati.
Prova questo:
runas.exe /savecred /user:administrator "%sysdrive%\testScripts\testscript1.ps1"
Salva la password la prima volta e non la chiede più. Forse quando cambierai la password di amministratore ti verrà richiesto di nuovo.
Vedere questo articolo TechNet: Documentazione del comando Runas
Da un prompt dei comandi:
C:\> runas /user:<localmachinename>\administrator cmd
Oppure, se si è connessi a un dominio:
C:\> runas /user:<DomainName>\<AdministratorAccountName> cmd
Sembra che psexec -h
sia il modo per farlo:
-h If the target system is Windows Vista or higher, has the process
run with the account's elevated token, if available.
Che... non sembra essere elencato nella documentazione online in Sysinternals - PsExec.
Ma funziona sulla mia macchina.