在备份 PST 之前,我在 powershell 脚本中使用这个简单的行来关闭 Outlook:
Get-Process Outlook | %{ $_.CloseMainWindow() } | Out-File -Append -FilePath $LogFile
它可以从命令行完美运行,但是当我将其放入任务计划程序(Windows 7)时,Outlook 未关闭并且命令返回“False”。
该任务设置为从命令行以同一用户身份运行,并使用高权限进行尝试。
有人对此有任何想法吗?
非常感谢和最诚挚的问候,
RiOt
编辑: 好的,澄清一下情况:
在任务计划程序中的命令是: 批处理.bat
batch.bat的内容:
...
powershell script.ps1
...
script.ps1的内容:
...
Get-Process Outlook | %{ $_.CloseMainWindow() } | Out-File -Append -FilePath $LogFile
...
您如何在任务管理器中运行脚本?您是否尝试将其放入 .ps1 文件并以这种方式运行?
http://msdn.microsoft.com/en-us/library/system.diagnostics.process.closemainwindow.aspx
true 如果关闭消息发送成功; false 如果关联的进程没有主窗口或者主窗口被禁用(例如,如果正在显示模式对话框)。
我会启动 Windows 事件查看器并调试关闭事件未路由或被拒绝的原因。
我会遇到从 Jenkins bat run 关闭应用程序的问题,但是当您从 cmd 行运行相同的脚本时,它工作正常。这两个命令在命令行中都可以正常工作,但从 Jenins 管道中它显示 True 但永远不会关闭应用程序。
获取流程应用程序 | Foreach-Object {$_.CloseMainWindow()}
获取流程应用程序 | % {$_.CloseMainWindow()}
获取流程应用程序 | ? {$_.CloseMainWindow() | $_.CloseMainWindow() |超出默认}
正确
只有以下方法适用于 cmd 行和 Jenins 管道。
获取流程应用程序 | ? {$_.CloseMainWindow() | $_.CloseMainWindow() |出站}
正确
希望这可能有用。
https://superuser.com/questions/859043/need-batch-file-to-close-a-window-not-the-batch-window
powershell (ps xampp-control).CloseMainWindow() 用cmd或.bat文件编写的xampp-control仅对我有用,如果cmd以管理员身份运行,由于权限问题,我必须运行xampp-control.exe作为管理员。