0

如果我想多次运行 PS 脚本,我可以使用 windows 调度程序,但是如果我需要多次运行某些代码而不是整个脚本怎么办?

我有脚本来监视远程服务器,我需要每秒检查一次处理器时间和每分钟的内存量。我不想将其拆分为更多单独的脚本,因为我正在监视数十个值。或者你对解决这个问题有什么不同的想法?

谢谢!

4

1 回答 1

1

您也许可以为此使用 WMI 计时器

PS C:\> $iClsTimer = [wmiclass]"__IntervalTimerInstruction"
PS C:\> $iTimer = $iClsTimer.CreateInstance();
PS C:\> $iTimer.TimerId="MonEvtTimer"
PS C:\> $iTimer.IntervalBetweenEvents= 2000
PS C:\> $iTimer.SkipIfPassed=$true
PS C:\> $iTimer.Put()

Path          : \\.\root\cimv2:__IntervalTimerInstruction.TimerId="MonEvtTimer"
RelativePath  : __IntervalTimerInstruction.TimerId="MonEvtTimer"
Server        : .
NamespacePath : root\cimv2
ClassName     : __IntervalTimerInstruction
IsClass       : False
IsInstance    : True
IsSingleton   : False

PS C:\silogix> $query = "Select * From __TimerEvent Where TimerID='MonEvtTimer'"
PS C:\silogix> Register-WMIEvent -Query $query -Action {write-host "Timer"}

Id              Name            State      HasMoreData     Location       Command
--              ----            -----      -----------     --------       -------
2               19e70483-2a0... NotStarted False                          write-host "Timer"

备注:另一种解决方案是使用 Windows 窗体计时器

于 2012-09-10T09:09:14.207 回答