Turiu paketinį failą, pavadintą test.bat
. Šiame test.bat
faile skambinu pagal toliau pateiktas instrukcijas:
start /min powershell.exe %sysdrive%\testScripts\testscript1.ps1
Kai tai paleidžiu per komandų eilutę, mano testų scenarijus sėkmingai veikia. Noriu jį paleisti kaip administratorius (tarsi būčiau sukūręs darbalaukio nuorodą ir paleidęs kaip administratorius. Jis neturėtų prašyti jokio vartotojo vardo ar slaptažodžio).
Bandžiau į pirmiau pateiktą test.bat
įrašyti /elevate
ir /NOUAC
parametrus, bet nesėkmingai. Kaip man išspręsti šią problemą?
Žinau, kaip tai padaryti rankiniu būdu, bet noriu, kad tai būtų vykdoma iš komandų eilutės.
(Autorius Marnix Klooster): ...nenaudojant jokių papildomų įrankių, pavyzdžiui, siūlomų atsakyme į Super vartotojo klausimą Kaip paleisti programą iš komandinės eilutės su padidintomis teisėmis).
Išbandykite tai:
runas.exe /savecred /user:administrator "%sysdrive%\testScripts\testscript1.ps1"
Pirmą kartą slaptažodis išsaugomas ir daugiau niekada neprašomas. Galbūt, kai pakeisite administratoriaus slaptažodį, jūsų vėl bus paprašyta.
Žr. šį TechNet straipsnį: Runas komandos dokumentacija
Iš komandinės eilutės:
C:\> runas /user:<localmachinename>\administrator cmd
Arba, jei esate prisijungę prie domeno:
C:\> runas /user:<DomainName>\<AdministratorAccountName> cmd
Atrodo, kad tai galima padaryti naudojant psexec -h
:
-h If the target system is Windows Vista or higher, has the process
run with the account's elevated token, if available.
Kuris... neatrodo, kad būtų nurodytas internetinėje dokumentacijoje Sysinternals - PsExec.
Tačiau mano kompiuteryje jis veikia.