PowerShell 事件处理与语言基础全解析
1. 临时事件订阅处理
在处理临时事件订阅时,如果事件订阅定义了 -Action 脚本块,需要额外注意。PowerShell 不会自动移除与该操作关联的作业,因为它可能保存着重要结果。若不需要这些结果,要记得调用 Remove - Job cmdlet。
2. 远程计算机事件转发
当客户端通过 PowerShell Remoting 连接到远程计算机,且希望在远程计算机上发生事件时得到通知,可按以下步骤操作:
1. 使用 PowerShell 的事件注册 cmdlet 订阅远程计算机上的事件。
2. 使用 -Forward 参数,让 PowerShell 在事件到达时进行转发。
示例代码如下:
PS > Get-Event PS > $session = New-PSSession leeholmes1c23 PS > Enter-PSSession $session [leeholmes1c23]: PS C:\> $timer = New-Object Timers.Timer [leeholmes1c23]: PS C:\> $timer.Interval = 1000 [leeholmes1c23]: PS C:\> $timer.AutoReset = $false [leeholmes1c23]: PS C:\> Register-ObjectEvent $timer Elapsed ` -SourceIdentifier Timer.El