任务管理器中的PowerShell显示窗口 [英] PowerShell in Task Manager Shows Window
本文介绍了任务管理器中的PowerShell显示窗口的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试将任务计划设为任务,因此PowerShell脚本正在运行时完全不可见,因此我在Win10计算机上创建了一个任务,配置如下:
程序/脚本:
powershell.exe
添加参数(可选):
-WindowStyle Hidden -command "& {Out-File 'C: empsomefile.txt'}" -NonInteractive -NoLogo -NoProfile
当我运行此任务时,Powershell命令窗口会在瞬间弹出,这是我不想要的。
推荐答案
您可以使用"应用程序主机"类型的包装来解决此问题。这是Powershell作为基于控制台的主机的已知问题。
我找到的最方便的方法是使用WScript.exe
并运行一个VBS脚本,该脚本将以"不可见的方式"调用该进程,并且没有控制台或任务栏闪烁。
VBS编码:
On Error Resume Next
ReDim args(WScript.Arguments.Count-1)
For i = 0 To WScript.Arguments.Count-1
If InStr(WScript.Arguments(i), " ") > 0 Then
args(i) = Chr(34) & WScript.Arguments(i) & Chr(34)
Else
args(i) = WScript.Arguments(i)
End If
Next
CreateObject("WScript.Shell").Run Join(args, " "), 0, False
将上述代码保存在扩展名为‘.vbs’的文件中,并将其放置在运行任务的客户端可以运行的位置。它可能位于网络上受保护的文件共享中(如果您希望它调用的脚本仅在连接到网络时运行),或者位于客户端本地。
现在,当您调用基于控制台的脚本(PowerShell、BAT、CScript等)时,您可以使用WScript显式调用此VBS脚本WScript.exe
。抛出"批处理模式"参数//B
也是值得的,它将抑制脚本错误和提示-例如,如果找不到包装文件本身。
此时,您需要做的就是将希望Powershell运行的命令传递给Powershell&;到此启动序列:
WScript.exe //B "\PathToLauncher.VBS" powershell.exe -ExecutionPolicy ByPass -file "\PowershellScriptToRun"
这篇关于任务管理器中的PowerShell显示窗口的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文