如何在 PowerShell 中启动和停止进程?

How to start and stop processes in PowerShell?

这在 PowerShell 3 之前应该可以正常工作。我需要 运行 两个进程:wuapp.exe 和 desk.cpl 以及 ScreenSaver 的选项卡。我遇到的问题是,一旦我启动 wuapp.exe,进程名称在任务管理器中显示为 explorer.exe - 当前代码适用于 wuapp.exe,但不适用于每台机器。另一件事是当我杀死 运行dll32 时,其他应用程序也会关闭。你有什么建议?

$wshell = New-Object -ComObject Wscript.Shell
Start-Process  wuapp.exe
(New-Object -comObject Shell.Application).Windows() | foreach-object {$_.quit()}
Start-Process rundll32 desk.cpl,InstallScreenSaver
Stop-Process -ProcessName rundll32* -Force

我不完全确定 wuapp.exe 显示为 explorer.exe 是什么意思,但是跟踪 rundll32 过程相当简单。

Start-ProcessPassThru 参数一起使用以使其 return 它创建的进程:

$ScreenSaverCpl = Start-Process rundll32 desk.cpl,InstallScreenSaver -PassThru
# Call Stop-Process when no longer needed:
Stop-Process $ScreenSaverCpl