2017-03-23 4 views
-1

完了に時間がかかるPowerShellスクリプトを実行する必要があります。Windows 10でPowerShellでWindowsシャットダウンをブロックする方法

この間、実行中のコンピュータがユーザーによってシャットダウンされないようにしたいと考えています。

これを行う方法はありますか?

+3

ユーザーがWindowsによって、この制御に入れていなかった場合でも、あなたは例えば防ぐことはできません突然の力不足。一般的に、私は物事を動かすことを提案して、長い時間を要するものが他の時間にやり遂げることができるようにするか、または分割することを提案します。 –

+0

[PowerShellのワークフロー](https://msdn.microsoft.com/en-us/powershell/reference/5.1/psworkflow/about/about_workflows) –

答えて

0

このような何かが(未テスト)動作するかもしれません:

$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 
} 

出典:https://www.reddit.com/r/sysadmin/comments/52x3s2/create_deny_permissions_on_folders_via_powershell/d7o17wu/

+0

を参照してください。これは、ユーザーがそのファイルを使用してコンピュータをシャットダウンしようとしています。彼らがスタートメニューを使用するか、または電源ボタンを押しても、それでもシャットダウンされます。 –

+0

これは問題です。ユーザーはシャットダウンをクリックできるはずです。また、コンピュータはロックされてシャットダウンプロシージャに移動することもできますが、スクリプトが終了するまでオフにしないでください。 –

+0

シャットダウンメニューオプションを使用していても、shutdown.exeが呼び出されることは間違いありません。 trueの場合、その.exeからユーザーACLを削除すると、シャットダウンが完了しません。私は残念ながら今どこでもテストする必要はありません。 –

関連する問題