从另一个PowerShell脚本中将PowerShell脚本作为不同的用户和隐藏窗口运行

时间:2017-08-07 15:12:49

标签: powershell

我需要从另一个PowerShell脚本运行PowerShell脚本作为不同的用户和隐藏窗口。

到目前为止我有什么:

Start-Process powershell '& C:\test.ps1' -WindowStyle Hidden -Credential $cred

其中$credPSCredential个对象。 test.ps1脚本用于测试Remove-Item一行。因为我仍然可以看到文件未被删除,我可以看出脚本没有被运行。

修改

我的初衷是运行regedit脚本,但当我实施Start-Job回答(下方)时,我发现了这个错误:

Start-Job : The value of the FilePath parameter must be a Windows PowerShell script file. Enter th
e path to a file with a .ps1 file name extension and try the command again.

2 个答案:

答案 0 :(得分:1)

您可以使用jobs。正如Powershell documentation所说

  

Windows PowerShell后台作业在不进行交互的情况下运行命令   与当前的会议。

PS> $myJob = Start-Job -FilePath C:\test.ps1 -Credential $cred

要获取作业的结果/输出,请使用Receive-Job

PS> $myJob | Receive-Job -Keep

答案 1 :(得分:0)

您可以通过任务计划程序运行PowerShell脚本。我不确定这是否是您的目标,但它会让您使用凭据在用户会话中执行PowerShell脚本。

我会告诉你谷歌如何满足你的需求。