C#は - デバイスの問題やシステムの問題をチェックします
-
21-09-2019 - |
質問
でC#、どのように私は、デバイスやシステムエラーのチェックに行くのだろうか?それはPowerShellのSciptsを使用するのは簡単であるか、またはだろうだろう複雑さと難しさにそれに追加しますか?
解決
Windowsの7のクライアントは Windowsのトラブルシューティングプラットフォームをチェックしてくださいに。ここでダウンロードですA>それについての詳細を持ちます。それはあなたが何を言ってるのか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;