PS スクリプトを数回実行したい場合は、Windows スケジューラを使用できますが、スクリプト全体ではなく、コードの特定の部分を数回実行する必要がある場合はどうすればよいですか?
リモートサーバーを監視するスクリプトがあり、プロセッサ時間を毎秒、RAM の量を毎分チェックする必要があります。何十もの値を監視しているので、それをさらに別のスクリプトに分割したくありません。それとも、resolvint について別の考えがありますか?
ありがとうございました!
PS スクリプトを数回実行したい場合は、Windows スケジューラを使用できますが、スクリプト全体ではなく、コードの特定の部分を数回実行する必要がある場合はどうすればよいですか?
リモートサーバーを監視するスクリプトがあり、プロセッサ時間を毎秒、RAM の量を毎分チェックする必要があります。何十もの値を監視しているので、それをさらに別のスクリプトに分割したくありません。それとも、resolvint について別の考えがありますか?
ありがとうございました!
そのためにおそらく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フォームタイマーを使用することです