如何获取从Powershell启动的资源管理器的进程ID

asu*_*ing 2 powershell windows-explorer

我从Powershell启动了“ Explorer.exe”,并希望获取资源管理器窗口的进程ID,以便不会在其他资源管理器窗口上误操作。

代码:Start-Process“ Explorer.exe” -PassThru结果:我可以看到进程ID,但是与UISpy或任务管理器中窗口的实际进程ID不同。似乎explorer.exe启动另一个进程(B)可以退出自身,最后我们看到了进程(B)。我得到的过程就是退出的过程。问题:如何获取真实的进程ID(B)?

lat*_*kin 5

Explorer.exe会立即启动一个全新的过程,但是该过程将很快终止,并将其状态移交给现有的资源管理器过程。通常,它不会像大多数程序那样持续存在并添加到越来越多的过程中。

实际操作:

"Old explorer.exe instances"
Get-Process explorer

Start-Process explorer.exe
sleep 1  # wait for this one to die

"New explorer.exe instances"
Get-Process explorer
Run Code Online (Sandbox Code Playgroud)

您将看到,这是同一套资源管理器实例。我认为这与reg键有关HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced [SeparateProcess]