以另一个用户身份运行PowerShell,并启动脚本

时间:2015-03-11 14:47:26

标签: powershell runas

我不知道为什么需要这些的所有细节,但是用户必须能够将PowerShell作为服务帐户启动,并且当PowerShell加载时,它需要运行脚本。我已经可以使用存储的凭据(存储为安全字符串)启动PowerShell,但是对于我的生活,我无法运行脚本(位于$ args中)。我尝试过各种各样的东西,下面是我目前所处的位置。任何帮助将不胜感激。

$user = "domain\service.account" 
$pwd1 = "big long huge string of characters"
$pwd = ($pwd1 | ConvertTo-SecureString)
$Credential = New-Object System.Management.Automation.PSCredential $user, $pwd
$args = "\\domain.local\location\location\location\Script\script.ps1"
Start-Process powershell.exe -Credential $Credential -ArgumentList ("-file $args")

5 个答案:

答案 0 :(得分:37)

您可以在指定的用户凭据下打开一个新的PowerShell窗口,如下所示:

start powershell -credential ""

enter image description here

答案 1 :(得分:28)

我发现这对我有用。

$username = 'user'
$password = 'password'

$securePassword = ConvertTo-SecureString $password -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential $username, $securePassword
Start-Process Notepad.exe -Credential $credential

更新:更改为使用单引号以避免Paddy注意到的特殊字符问题。

答案 2 :(得分:22)

这也是通过UI实现这一目标的好方法。

0)在任务栏上右键单击PowerShell图标

1)Shift +右键单击Windows PowerShell

2)“以不同用户身份运行”

Pic

答案 3 :(得分:4)

尝试将RunAs选项添加到Start-Process

Start-Process powershell.exe -Credential $Credential -Verb RunAs -ArgumentList ("-file $args")

答案 4 :(得分:2)

在Windows Server 2012或2016中,您可以搜索Windows PowerShell,然后“#Pin; Pin to Start"”。在此之后,您将看到"以不同的用户身份运行"右键单击起始页面图块上的选项。