任务管理器中的PowerShell显示窗口 [英] PowerShell in Task Manager Shows Window

查看:24
本文介绍了任务管理器中的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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆