0

以下のコードを複数のコンピューターで動作させたいのですが、これを行う方法はありますか? 私は以下を持っていますが、現在問題のサーバーを呼び出していないため、失敗します。

ありがとう、

コード:

Write-Host "Script to check Storage Write, Read and Delete Times"
Write-Host "`n"

$computer = Get-Content -path d:\temp\servers.txt
$path = "f:\temp\test.txt"

Foreach ($storage in $computer)
{

$date = Get-Date
Write-Host "Script being run on $date"

$write = Measure-Command { new-item -Path $path -ItemType File -Force } | select TotalMilliseconds 

Write-Host "Writing file on $storage took $write"

$read = Measure-Command { Get-Content -Path $path } | select TotalMilliseconds 

Write-Host "Reading file on $storage took $read"

$delete = Measure-Command {Remove-Item -Path $path -Force } | select TotalMilliseconds 

Write-Host "Deleting file on $storage took $delete"
Write-Host "`n"
}
4

1 に答える 1

1

一歩下がって、アプローチを再考する必要があります。ローカル システムにある f:\temp に対して毎回ファイル システム コマンドを発行しています。

リモート コンピュータにファイル システム タスクを実行させる方法は 2 つあります。最も簡単な方法は、UNC パスを使用することです。つまり、\\server\shareフォーマットです。ローカル管理者アクセス権があると仮定します:

Foreach ($storage in $computer) {
$uncpath = $("\\{0}\f`$\temp\text.txt" -f $storage)
$write = Measure-Command { new-item -Path $uncpath -ItemType #...
# rest of code uses $uncpath for access
}

UNC パスを使用すると LAN にストレスがかかるため、このタイプのテストは十分に正確である場合とそうでない場合があります。

2 つ目の方法は、Powershell リモート処理を使用してリモート システムに接続し、そこでコマンドを発行することです。New-PSSessionEnter-PSSession、およびExit-PSSessionコマンドレットを見てください。

于 2012-11-12T11:12:47.967 に答える