我不知道为什么需要这些的所有细节,但是用户必须能够将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")
答案 0 :(得分:37)
答案 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)
答案 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"”。在此之后,您将看到"以不同的用户身份运行"右键单击起始页面图块上的选项。