完了に時間がかかるPowerShellスクリプトを実行する必要があります。Windows 10でPowerShellでWindowsシャットダウンをブロックする方法
この間、実行中のコンピュータがユーザーによってシャットダウンされないようにしたいと考えています。
これを行う方法はありますか?
完了に時間がかかるPowerShellスクリプトを実行する必要があります。Windows 10でPowerShellでWindowsシャットダウンをブロックする方法
この間、実行中のコンピュータがユーザーによってシャットダウンされないようにしたいと考えています。
これを行う方法はありますか?
このような何かが(未テスト)動作するかもしれません:
$File = "$env:SystemRoot\system32\shutdown.exe"
$PreviousAcl = Get-Acl $File
$Principal = "domain\user"
$Right = "Read"
$Rule = New-Object System.Security.AccessControl.FileSystemAccessRule($Principal,$Right,"Deny")
Try {
$Acl = Get-Acl $File
$Acl.SetAccessRule($Rule)
Set-Acl $File $Acl
}
Catch {
Write-Error "ACL failed to be set on: " $File
}
# yourscript here
Try {
Set-Acl $File $PreviousAcl
}
Catch {
Write-Error "ACL failed to be set on: " $File
}
を参照してください。これは、ユーザーがそのファイルを使用してコンピュータをシャットダウンしようとしています。彼らがスタートメニューを使用するか、または電源ボタンを押しても、それでもシャットダウンされます。 –
これは問題です。ユーザーはシャットダウンをクリックできるはずです。また、コンピュータはロックされてシャットダウンプロシージャに移動することもできますが、スクリプトが終了するまでオフにしないでください。 –
シャットダウンメニューオプションを使用していても、shutdown.exeが呼び出されることは間違いありません。 trueの場合、その.exeからユーザーACLを削除すると、シャットダウンが完了しません。私は残念ながら今どこでもテストする必要はありません。 –
ユーザーがWindowsによって、この制御に入れていなかった場合でも、あなたは例えば防ぐことはできません突然の力不足。一般的に、私は物事を動かすことを提案して、長い時間を要するものが他の時間にやり遂げることができるようにするか、または分割することを提案します。 –
[PowerShellのワークフロー](https://msdn.microsoft.com/en-us/powershell/reference/5.1/psworkflow/about/about_workflows) –