Remove-NetEventSession的程序化等价

时间:2014-12-18 15:00:46

标签: c# .net powershell

Remove-NetEventSession是一个PowerShell cmdlet,用于删除网络事件会话。

通常在Stop-NetEventSessionGet-NetEventSession之后使用:

$session = Get-NetEventSession
Stop-NetEventSession $session.Name
Remove-NetEventSession $session.Name

有没有办法使用.Net实现相同的结果? (不是通过执行powershell脚本)

1 个答案:

答案 0 :(得分:1)

是的,有。

使用.Net(System.Management)的WMI API,您可以操纵MSFT_NetEventSession实例。

以下示例获取正在运行的会话(there can be only one),如果它正在运行则将其停止并将其删除:

var netEventSession = new ManagementClass("/root/standardcimv2:MSFT_NetEventSession").
    GetInstances().
    Cast<ManagementObject>().
    SingleOrDefault();
if (netEventSession != null)
{
    if ((byte)netEventSession["SessionStatus"] == 0)
    {
        netEventSession.InvokeMethod("Stop", null, null);
    }
    netEventSession.Delete();
}