我目前正在编写一个小 PowerShell 脚本来重置远程计算机上的用户 Outlook 配置文件。
在完成必要的配置文件之前,我想检查 Outlook 是否已经在远程计算机上运行,如果是,请优雅地停止它。我不想终止该进程,以便它可以进行必要的清理和同步。
当我使用管理用户连接到机器并执行以下命令时:
Enter-PSSession $remoteMachine
$outlookProcess = Get-Process outlook
$outlookProcess.CloseMainWindow()
我只得到
False
作为“返回值”
杀死进程:
Stop-Process $outlookProcess
作品。
我试图关闭的进程不是由我连接的管理用户启动的,所以起初我认为我可能不允许在这个用户上下文中进行操作,但是如果我在本地机器上做同样的事情(启动进程使用“普通”用户,然后将 CloseMainWindow() 与管理用户一起使用)它会毫无问题地关闭进程。
所以我的问题是如何优雅地关闭这个远程进程?