【问题标题】:POWERSHELL Run script as another user [duplicate]POWERSHELL以另一个用户身份运行脚本[重复]
【发布时间】:2020-03-25 00:45:27
【问题描述】:

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

在执行过程中我没有收到任何错误代码..

感谢您的帮助:)

【问题讨论】:

  • “管理员权限”是否意味着提升?
  • 是的,对不起,我的英语不好;)

标签: powershell


【解决方案1】:

您的 $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"'

【讨论】:

    猜你喜欢
    • 2019-01-22
    • 2015-06-30
    • 1970-01-01
    • 1970-01-01
    • 2018-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多