![Powershell 以不同用户身份运行带有参数的程序](https://linux22.com/image/1413386/Powershell%20%E4%BB%A5%E4%B8%8D%E5%90%8C%E7%94%A8%E6%88%B7%E8%BA%AB%E4%BB%BD%E8%BF%90%E8%A1%8C%E5%B8%A6%E6%9C%89%E5%8F%82%E6%95%B0%E7%9A%84%E7%A8%8B%E5%BA%8F.png)
我正在尝试为我的工作机器创建一个简单的(或者我认为是的)启动脚本。
为此我需要主要打开
IE Firefox 作为登录用户 Firefox 作为管理员用户 Outlook 作为主配置文件
我希望使用 Powershell 来做到这一点 - 关于如何实现以 Firefox 管理员用户身份运行的任何想法,因为我已设法使其余部分正常运行。
答案1
您需要创建一个包含适当信息的凭据对象,然后像这样使用它运行所需的应用程序:
$username = "username"
$password = "password"
$credentials = New-Object System.Management.Automation.PSCredential -ArgumentList @($username,(ConvertTo-SecureString -String $password -AsPlainText -Force))
Start-Process filefullpath.exe -WorkingDirectory path_here -Credential ($credentials)
来自这里。
答案2
我的脚本如下
这将由 DOMAIN\User1 运行
$username1 = "Domain\user2"
$username2 = "Domain\User1_adm"
$password = "Passw0rd!"
$credentials1 = New-Object System.Management.Automation.PSCredential -ArgumentList @($username1,(ConvertTo-SecureString -String $password -AsPlainText -Force))
$credentials2 = New-Object System.Management.Automation.PSCredential -ArgumentList @($username2,(ConvertTo-SecureString -String $password -AsPlainText -Force))
$Args1 = "-no-remote"
$Args2 = "no-merge"
Start-Process "C:\Program Files\Mozilla Firefox\firefox.exe" -ArgumentList $Args1 -Credential ($credentials1)
Start-Process "C:\Program Files\Mozilla Firefox\firefox.exe" -ArgumentList $Args1 -Credential ($credentials2)
Start-Process "C:\Program Files\Mozilla Firefox\firefox.exe"
Start-Process "iexplore.exe" -ArgumentList $Args2 -Credential ($credentials1)
Start-Process "iexplore.exe" -ArgumentList $Args2 -Credential ($credentials2)
Start-Process "iexplore.exe" -ArgumentList $Args2