0

PS スクリプトを数回実行したい場合は、Windows スケジューラを使用できますが、スクリプト全体ではなく、コードの特定の部分を数回実行する必要がある場合はどうすればよいですか?

リモートサーバーを監視するスクリプトがあり、プロセッサ時間を毎秒、RAM の量を毎分チェックする必要があります。何十もの値を監視しているので、それをさらに別のスクリプトに分割したくありません。それとも、resolvint について別の考えがありますか?

ありがとうございました!

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 に答える