取消隐藏-WindowStyle隐藏的PowerShell窗口?

lee*_*d00 3 powershell scheduled-tasks powershell-2.0

当您在后台运行PowerShell窗口时,如何重新连接它?或者,它是否打算在那时通过日志文件查看?

Kei*_*ill 6

通常,您只需输出到日志并检查计划任务.但是,如果您可以容忍控制台窗口短暂闪烁,您可以通过pinvoke到Win32 API来控制控制台窗口的可见性,例如:

$src = @'
    [DllImport("Kernel32.dll")]
    public static extern IntPtr GetConsoleWindow();
    [DllImport("User32.dll")]
    public static extern bool ShowWindow(IntPtr hWnd, Int32 nCmdShow);
'@

Add-Type -Name ConsoleUtils -Namespace Foo -MemberDefinition $src

$hide = 0
$show = 1

$hWnd = [Foo.ConsoleUtils]::GetConsoleWindow()
[Foo.ConsoleUtils]::ShowWindow($hWnd, $hide)

Start-Sleep -Sec 5

[Foo.ConsoleUtils]::ShowWindow($hWnd, $show)

Read-Host "Press any key to exit"
Run Code Online (Sandbox Code Playgroud)

通常你不想显示窗口,但是你可能要定义一个环境变量,然后让脚本检查该环境变量是否有某个值,并在那种情况下显示窗口,例如$env:DebugSchTask -eq 'yes'.