2014-12-18 3 views
0

Remove-NetEventSession - это командлет powershell, который удаляет сеанс сетевых событий.Программная эквивалентность Remove-NetEventSession

Это обычно используется после Stop-NetEventSession и Get-NetEventSession:

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

Есть ли способ, чтобы достичь того же результата с использованием .Net? (Не выполнив скрипт powershell)

+0

@downvoter, что-то не так? – i3arnon

ответ

1

Да, есть.

Используя API WMI для .Net (System.Management), вы можете манипулировать экземпляром 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(); 
} 
Смежные вопросы