私はpowershellを初めて使用し(約1週間)、ヘルプデスクがプリンターをインポートおよびエクスポートするためのツールを作成しようとしています。コードの実行中にフォームがフリーズすることを除けば、ツールは問題なく動作しています。
フリーズを軽減するために、ジョブとして実行するとタスクが完了することがわかりましたが、2 つの問題があります。
- ジョブが完了した結果、プログレス バーを 1 ステップ増やすことができません。
変数を渡すことができません。(これについては情報が山ほどあるので心配していません。構文を理解する必要があるだけです。それについても助けていただければ、それは素晴らしいことです。)
start-job -scriptblock { C:\Windows\system32\spool\tools\PrintBrm.exe -b -f \\filestore\$EXPORTPRINTERS.printerExport $progressbarexportprinters.PerformStep() $progressbarexportprinters.TextOverlay = "Printer Export Complete" }
これに対する解決策を見つけました。フォームはまだフリーズしていますが、プログレス バーに動きを表示できます。これで十分です。
C:\Windows\system32\spool\tools\PrintBrm.exe -r -f \\filestore\$EXPORTPRINTERS.printerExport | out-string -Stream | foreach-object {
$richTextBox1.lines = $richTextBox1.lines + $_
$richTextBox1.Select($richTextBox1.Text.Length, 0)
$richTextBox1.ScrollToCaret()
$progressbaraddprinters.PerformStep()
}