C # - Проверка на наличие проблем с устройством и системными проблемами

StackOverflow https://stackoverflow.com/questions/1564064

  •  21-09-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

Для клиентов Windows 7 ознакомьтесь с Платформа устранения неполадок Windows.Вот такой Скачать об этом с более подробной информацией.Он использует сценарии PowerShell, чтобы делать именно то, о чем вы говорите.Это запись в блоге показывает, как создать пакет устранения неполадок - это довольно просто.

Я не думаю, что WTP работает на платформах нижнего уровня.В этом случае я бы просто написал несколько сценариев PowerShell для обнаружения и устранения первопричин.Если вы хотите обернуть это в приятный пользовательский интерфейс, ознакомьтесь Пауэрботы - простой способ создать графический интерфейс 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.Сборка автоматизации.Если вы установили Windows / .NET SDK, который должен находиться в ProgramFiles eferenceAssemblies\Microsoft\WindowsPowerShell\v1.0.Вам также понадобится пара элементов состояния using:

using System.Collections.ObjectModel;
using System.Management.Automation;
using System.Management.Automation.Runspaces;
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top