我正在编写一个Powershell脚本来完成一大堆事情,完成后它将作为计划任务运行。出于这个原因,我希望能够在开始运行脚本时检查旧实例是否仍然存在,并在旧脚本存在时将其杀死。监控powershell脚本挂起的实例
我想我会用这样的:
$process = Get_Process | $name
$process.kill
但如何以简单的方式$ name变量?
有没有人有更好的建议? 最好的问候, Gísli
我正在编写一个Powershell脚本来完成一大堆事情,完成后它将作为计划任务运行。出于这个原因,我希望能够在开始运行脚本时检查旧实例是否仍然存在,并在旧脚本存在时将其杀死。监控powershell脚本挂起的实例
我想我会用这样的:
$process = Get_Process | $name
$process.kill
但如何以简单的方式$ name变量?
有没有人有更好的建议? 最好的问候, Gísli
可以在计划任务配置窗口做到这一点。这些设置取决于您正在使用的操作系统。
编辑:也就是说,你可以配置一段时间后(即当你的下一个开始时)被杀死的任务。
谢谢。这可能是一个选择,我必须与我的导师核对。我正在重写一个他用perl编写的脚本,他在那里有一个函数来杀死进程。这可能是因为它必须在多个平台上运行。 – Gisli
为什么你需要得到的名字? Get-Process
返回高保真Process
对象,您可以直接对其进行操作。
要获得某个特定名称的进程,请使用$n = Get-Process notepad
,然后执行$n.kill()
来杀死它。如果您确实需要再次检查名称,请执行$n.Name
。要查看您可以使用的属性和方法,尝试$n | get-member
并确保您阅读手册:http://technet.microsoft.com/en-us/library/dd347630.aspx
你确定没有办法阻止脚本挂起吗?我会专注于创建可靠的脚本,而不是诉诸于杀死进程。 – Rynant
@Ryant - 当然我正在努力做到这一点,但我需要这个作为我的应用程序的安全网,因为它将在我无权访问的服务器上运行。这只是为了确保我不累积大量流程并消耗服务器资源。 – Gisli