質問

でC#、どのように私は、デバイスやシステムエラーのチェックに行くのだろうか?それはPowerShellのSciptsを使用するのは簡単であるか、またはだろうだろう複雑さと難しさにそれに追加しますか?

役に立ちましたか?

解決

Windowsの7のクライアントは Windowsのトラブルシューティングプラットフォームをチェックしてくださいに。ここでダウンロードそれについての詳細を持ちます。それはあなたが何を言ってるのかexactyを行うにはPowerShellスクリプトを使用しています。このブログ記事トラブルシューティングパックをオーサリングする方法を示し - それは非常に簡単です。

私はWTPは、下位レベルのプラットフォーム上で動作するとは思いません。この場合、私はいくつかのPowerShellスクリプトを検出し、修正根本原因を記述します。あなたは素敵なUIでそれをラップしたい場合は、チェックアウト PowerBootsする - WPFを作成する簡単な方法あなたのスクリプトの先頭にGUI。あなたは上のC#でホストのPowerShellにしたい場合は、それは非常に簡単ですGUIをベース。ここではフォームのアプリからのコードスニペットがあります:

    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アセンブリへの参照を追加する必要があります。あなたは、Windows / .NET SDKをインストールしている場合、それはPROGRAMFILES \ ReferenceAssemblies \マイクロソフト\ WindowsPowerShell \ v1.0のでなければなりません。またstatememetsを使用してのカップルが必要になります:

using System.Collections.ObjectModel;
using System.Management.Automation;
using System.Management.Automation.Runspaces;
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top