using System; using System.Management; namespace WMITest { class Class1 { static void Main(string[] args) { ConnectionOptions options = new ConnectionOptions(); options.Username = @"pc1\Administrator"; options.Password = "123qwe!@#QWE"; ManagementScope scope = new ManagementScope(@"\\pc1\root\cimv2", options); scope.Connect(); Console.WriteLine("connet"); /* для получения уведомления о завершении операции */ ManagementOperationObserver Stop = new ManagementOperationObserver(); Stop.Completed += new CompletedEventHandler(Stop_CallBack); try { Console.WriteLine("-------------"); string NameServices = "Spooler"; WqlObjectQuery query = new WqlObjectQuery("SELECT * FROM Win32_Service WHERE Name=\"" + NameServices + "\""); ManagementObjectSearcher find = new ManagementObjectSearcher(scope, query); foreach (ManagementObject spooler in find.Get()) { /* Так работает */ spooler.InvokeMethod( "StopService", new object[] { }); /* Так не работает выдает ошибку 80070005 - Access is denied вопрос, почему, что не так*/ spooler.InvokeMethod(Stop, "StopService", new object[] { }); } Console.Read(); } catch (Exception e) { // обработка ошибок Console.WriteLine("Error: {0}", e.Message); } Console.Read(); } static void Stop_CallBack(object sender, CompletedEventArgs e) { // что то происходит } } } 


    1 answer 1

    msdn

    • If the service hangs, ServiceController will not help - CuprumBur