设置ACL文件夹权限:拒绝SYSTEM账户访问Windows10Upgrade文件夹
PowerShell脚本:拒绝SYSTEM账户访问C:\Windows10Upgrade文件夹
我帮你完善了代码,确保能在MDT任务序列中生效,彻底阻止Windows10UpgraderApp.exe运行。下面是完整的可执行脚本,我还会拆解每一步的作用:
# 确保目标文件夹存在(不存在则创建,存在则不报错) New-Item -ItemType Directory -Path "C:\Windows10Upgrade" -Force | Out-Null # 定义要限制的账户(必须写完整标识符,避免识别错误) $targetUser = "NT AUTHORITY\SYSTEM" # 获取目标文件夹的当前权限列表(ACL) $folderAcl = Get-Acl "C:\Windows10Upgrade" # 创建拒绝SYSTEM账户的权限规则:拒绝所有权限,且应用到子文件夹和文件 $denyRule = New-Object System.Security.AccessControl.FileSystemAccessRule( $targetUser, "FullControl", "ContainerInherit,ObjectInherit", "None", "Deny" ) # 将拒绝规则添加到ACL中 $folderAcl.AddAccessRule($denyRule) # 把修改后的ACL应用到目标文件夹 Set-Acl -Path "C:\Windows10Upgrade" -AclObject $folderAcl
关键细节说明:
- 为什么要用
NT AUTHORITY\SYSTEM而不是单纯的system?直接写system可能会因为环境变量或域环境的问题导致账户识别错误,完整标识符更可靠。 - 权限规则里的
FullControl是彻底拒绝所有操作,如果你想更精细控制(比如只拒绝执行),可以把FullControl换成ExecuteFile,但用FullControl能确保升级程序完全无法访问该目录下的任何文件。 ContainerInherit,ObjectInherit确保拒绝规则会继承到文件夹内的所有子文件夹和文件,避免只限制了父文件夹但子项还能被访问。- 在MDT任务序列中运行时,必须确保该步骤以管理员权限执行,否则修改ACL会失败。
内容的提问来源于stack exchange,提问作者Royston
相关产品推荐
相关产品推荐

