如何将事件绑定到powershell命令输出流

本文关键字:powershell 命令 输出流 绑定 事件 | 更新日期: 2023-09-27 18:10:17

使用PowerShell对象,我知道如何异步调用cmdlets和绑定事件,当数据到达作为输出时触发。

PowerShell PowerShellInstance = PowerShell.Create();
//Add necessary commands
PSDataCollection<PSObject> outputCollection = new PSDataCollection<PSObject>();
outputCollection.DataAdded += outputCollection_DataAdded;
IAsyncResult result = PowerShellInstance.BeginInvoke<PSObject, PSObject>(null, outputCollection);
void outputCollection_DataAdded(object sender, DataAddedEventArgs e)
{
    //process output where sender is that outputCollection
}

如何以同步方式执行相同的操作。[注:我应该使用Runspacepool,我可以指定到PowerShellInstance的Runspacepool属性]

如何将事件绑定到powershell命令输出流

为了实现我的目标,我应该使用Invoke方法的变体。http://msdn.microsoft.com/en-us/library/hh459547%28v=vs.85%29.aspx