Ik heb een batch bestand genaamd test.bat
. Ik roep de onderstaande instructies op in het test.bat
bestand:
start /min powershell.exe %sysdrive%\testScripts\testscript1.ps1
Als ik dit via de opdrachtprompt uitvoer, draait mijn testscript met succes. Ik wil het als administrator uitvoeren (alsof ik een snelkoppeling op het bureaublad heb gemaakt en als administrator heb uitgevoerd. Het zou niet moeten vragen om een gebruikersnaam of wachtwoord).
Ik heb geprobeerd /elevate
en /NOUAC
parameters toe te voegen in de bovenstaande test.bat
, maar geen geluk. Hoe kan ik dit probleem oplossen?
Ik weet hoe ik het handmatig kan doen, maar ik wil dat dit wordt uitgevoerd vanaf de opdrachtprompt.
(Door Marnix Klooster): ...zonder gebruik te maken van extra tools, zoals die gesuggereerd worden in een antwoord op Super User vraag Hoe programma uitvoeren vanaf command line met verhoogde rechten).
Probeer dit eens:
runas.exe /savecred /user:administrator "%sysdrive%\testScripts\testscript1.ps1"
Het slaat het wachtwoord de eerste keer op en vraagt nooit meer. Misschien als u het beheerderswachtwoord wijzigt, wordt u opnieuw gevraagd.
Zie dit TechNet artikel: Runas commandodocumentatie
Vanaf een opdrachtprompt:
C:\> runas /user:<localmachinename>\administrator cmd
Of, als je verbonden bent met een domein:
C:\> runas /user:<DomainName>\<AdministratorAccountName> cmd
Het lijkt erop dat psexec -h
de manier is om dit te doen:
-h If the target system is Windows Vista or higher, has the process
run with the account's elevated token, if available.
Die... niet lijkt te worden vermeld in de online documentatie in Sysinternals - PsExec.
Maar het werkt op mijn machine.