我正在尝试以具有管理员权限的另一个用户身份运行脚本。 我正在使用Start-Process命令,但是我的代码根本无法正常工作。
我的代码:
$PassKey = [byte]95,[...],19,20,96,82
$Password= Get-Content .\PassKey.txt | Convertto-SecureString -Key $PassKey
$User="%COMPUTERNAME%\MyAdmAccount"
$Credentials=New-Object -TypeName "System.Management.Automation.PSCredential" -ArgumentList $User, $Password
Start-process powershell.exe -Argumentlist "C:\Users\test\Desktop\test_echo.ps1" -credential $Credentials
我在执行过程中没有任何错误代码。
感谢您的帮助:)
答案 0 :(得分:0)
您的$ user变量不正确,不能使用%..%语法指定环境变量。您需要使用$ env:ComputerName。像这样:
$user = "$($env:ComputerName)\MyAdmAccount"
即使您要指定自己的计算机,也无需指定计算机:
$user = "MyAdmAccount"
或者为获得更高的特权,您可以使用下面的脚本:https://superuser.com/questions/108207/how-to-run-a-powershell-script-as-administrator
@ mklement0指出了有关特权提升的警告,即-Verb和-Credentials参数不能很好地配合使用。因此,您需要像这样在其中封装另一个Start-Process:
Start-Process powershell.exe -Credential $cred -ArgumentList '-noprofile -command "Start-Process cmd.exe -Verb RunAs"'