POWERSHELL以其他用户身份运行脚本

时间:2020-03-24 15:29:09

标签: powershell

我正在尝试以具有管理员权限的另一个用户身份运行脚本。 我正在使用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

我在执行过程中没有任何错误代码。

感谢您的帮助:)

1 个答案:

答案 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"'