0

1 つのテキスト ファイルにデータを書き込む PowerShell スクリプトを作成しました。

スクリプトは、サード パーティのソフトウェア展開プログラムで実行されています。良いことは、コンピューターがオンラインでジョブを実行するときに待機することです。悪いことは、既に 100 台以上のオンライン コンピューターでスクリプトが実行されている場合です。8 台のコンピューターと 2 つの空の行から情報を取得しました。

ほとんどの場合、powershell スクリプトが 100 台以上のコンピューターで同時に実行され、そのファイルが使用されていたことが原因でした。

サードパーティのソフトウェア展開プログラムで「最初のコンピューターでスクリプトが実行されるのを待つ」を使用する方法はありません。

問題は行にあります -

$srvpath = [path to text file]
$computer = "Name of computer"
$data = "Some data not more than ~30 characters"
Out-File -FilePath $srvpath -InputObject "$computer - $data" -Append

私の現在の解決策は、各コンピューターの一時ファイルを個別に作成し、後でそれらのファイルを読み取って1つのファイルに書き込み(アルファベット順にソート)、一時ファイルを削除する2番目のスクリプトを起動することです。

しかし、私は1つのスクリプトに固執したいので、データがファイルに書き込まれたかどうかを確認するか、テキストファイルが既に使用されているかどうかを確認してから待つことは可能ですか? 余分な空行も避けるとよいでしょうが、それは大きな問題ではありません。

4

0 に答える 0