2009-10-14 8 views
0

В C#, Как я могу проверить наличие ошибок устройств и систем? Было бы просто использовать PowerShell Scipts, или это добавит сложности и сложности?C# - Проверка проблем устройства и системных проблем

+0

Можете ли вы пояснить, что вы подразумеваете под «устройством и системными ошибками»? Какие устройства и системы? – bobbymcr

+0

Нет особых ошибок, просто ошибок в целом. Возможно, обнаружите возможные причины сбоя устройства. Я могу сделать это вручную, но это для других пользователей, поэтому сделать жизнь немного проще, возможно, выявить некоторые возможные причины и отобразить их для пользователя. – Michael

ответ

2

Для клиентов Windows 7 проверьте Windows Troubleshooting Platform. Ниже приведено описание download. Он использует сценарии PowerShell, чтобы делать то, о чем вы говорите. Это blog post показывает, как создать пакет устранения неполадок - это довольно просто.

Я не думаю, что WTP работает на платформах нижнего уровня. В этом случае я бы просто написал несколько сценариев PowerShell для обнаружения и устранения основных причин. Если вы хотите обернуть это в приятный интерфейс, посмотрите PowerBoots - простой способ создать графический интерфейс WPF поверх вашего скрипта. Если вы хотите разместить PowerShell в своем графическом интерфейсе на C#, это очень просто. Вот фрагмент кода из приложения Forms:

private void button1_Click(object sender, EventArgs e) 
    { 
     string cmd = @"Get-ChildItem $home\Documents -recurse | " + 
         "Where {!$_.PSIsContainer -and " + 
         "($_.LastWriteTime -gt (Get-Date).AddDays(-7))} | " + 
         "Sort Fullname | Foreach {$_.Fullname}"; 

     using (Runspace runspace = RunspaceFactory.CreateRunspace()) 
     { 
      runspace.Open(); 
      using (Pipeline pipeline = runspace.CreatePipeline(cmd)) 
      { 
       this.Cursor = Cursors.WaitCursor; 

       pipeline.Commands.AddScript(cmd); 
       Collection<PSObject> results = pipeline.Invoke(); 
       foreach (PSObject obj in results) 
       { 
        listBox1.Items.Add(obj); 
       } 

       this.Cursor = Cursors.Default; 
      } 
     } 
    } 

Вы должны добавить ссылку на сборку System.Management.Automation. Если вы установили SDK Windows/.NET, который должен быть в ProgramFiles \ ReferenceAssemblies \ Microsoft \ WindowsPowerShell \ v1.0. Вам также понадобится пара использования statememets:

using System.Collections.ObjectModel; 
using System.Management.Automation; 
using System.Management.Automation.Runspaces; 
+0

Мне хотелось бы получить часть Powershell в моем графическом интерфейсе. Где я могу связаться с вами? – Michael

+0

Вы можете связаться со мной через мой блог http://KeithHill.spaces.live.com –