我需要从另一个PowerShell脚本运行PowerShell脚本作为不同的用户和隐藏窗口。
到目前为止我有什么:
Start-Process powershell '& C:\test.ps1' -WindowStyle Hidden -Credential $cred
其中$cred
是PSCredential
个对象。 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.
答案 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脚本。
我会告诉你谷歌如何满足你的需求。