PowerShell 可以使用 Windows Global Event 来实现防止在同一时刻同一个脚本重复运行。 示例脚本 function Lock-Singleton { $Locked = $false $Global:Mutex = New-Object System.Threading.Mutex($true, "Global\ChangeToYourUniqueEventNameHere", [ref]$Locked) if (-not $Locked) { $Global:Mutex.Close() Write-Host "another process is running now, exit" Exit 1 } } Lock-Singleton Write-Host "doing something here, sleep 10s" Start-Sleep -Seconds 10