PowerShellを初めて使用していて、サイト上でこの質問に対して前回のスレッドが見つかりませんでしたので、PowerShell - すべてのサービスが停止している場合のみ、rocopyを開始します。
質問:$ stopservicesのサービスがすべて停止した場合にのみ起動するようにrobocopyコマンドを書き出す方法はありますか?以下は私が持っているものですが、いくつかの点では、robocopyの起動時にサービスが実行されていて、「プロセスが別のプロセスで使用されているため、ファイルにアクセスできません」というエラーが発生します。
<## Stop all services ##>
write-host `r`n "Stopping services on "$server `r`n
foreach ($service in $stopservices)
{
set-service $service -ComputerName $server -StartupType Disabled -Status Stopped -PassThru
}
<## Copy all files ##>
$robocopy = "{0} {1} {2} /XF {3} {4} {5} /XD {6} {7} /MIR /MT /TEE /LOG:{8}" -f $robocopy, $source, $destination, $logPath
Invoke-Expression $robocopy
Pause
ありがとうございました!これは素晴らしい。 Stop-Serviceコマンドレットなしで試してみましたが、whileループを追加しました。何らかの理由で5秒後に$ stopservicesで実行中の他のサービスを停止しようとしていると思われます。 – Mike