You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于通过PowerShell配置可移动介质读取权限限制策略的技术咨询

关于通过PowerShell配置可移动介质读取权限限制策略的技术咨询

嘿,没问题!你的需求完全可以实现,我给你拆解一下具体的解决方案:

一、用PowerShell替代MMC配置“拒绝非管理员读取可移动磁盘”策略

这个本地组策略对应的其实是系统注册表中的特定项,我们直接用PowerShell修改注册表就能实现,步骤如下:

  1. 以管理员身份启动PowerShell(这很重要,否则会因为权限不足修改失败)
  2. 先创建策略对应的注册表路径(如果路径不存在的话):
New-Item -Path "HKLM:\Software\Policies\Microsoft\Windows\RemovableStorageDevices\{53f5630d-b6bf-11d0-94f2-00a0c91efb8b}" -Force
  1. 启用“拒绝非管理员读取”的策略:
Set-ItemProperty -Path "HKLM:\Software\Policies\Microsoft\Windows\RemovableStorageDevices\{53f5630d-b6bf-11d0-94f2-00a0c91efb8b}" -Name "Deny_Read" -Value 1 -Type DWORD

如果之后想要取消这个限制,只需要把-Value 1改成-Value 0即可。

小提示:设置完成后,要么让用户注销再重新登录,要么执行gpupdate /force命令刷新组策略,设置才会生效。

二、针对特定用户组而非管理员/非管理员配置权限

当然可以!如果要更精细地控制权限(比如只限制某个部门的用户组),我们可以通过NTFS权限结合PowerShell来实现,分两种场景:

场景1:给已插入的可移动磁盘手动设置权限

如果已经插入了可移动介质,直接执行以下脚本即可给目标组添加拒绝读取的权限:

# 替换成你要限制的用户组名称
$targetGroup = "SalesTeam"
# 替换成可移动磁盘的盘符(比如D:)
$driveLetter = "D:"

# 获取目标组的SID(系统用来识别用户/组的唯一标识)
$groupSID = (Get-WmiObject Win32_Group -Filter "Name='$targetGroup'").SID

# 创建拒绝读取和执行的权限规则
$accessRule = New-Object System.Security.AccessControl.FileSystemAccessRule(
    $groupSID,
    "ReadAndExecute",
    "Deny"
)

# 给磁盘添加权限规则
$acl = Get-Acl $driveLetter
$acl.AddAccessRule($accessRule)
Set-Acl $driveLetter $acl

场景2:自动给所有新插入的可移动磁盘设置权限

如果想要实现“只要有可移动磁盘插入,就自动给目标组加上限制”,可以用PowerShell监听系统的介质插入事件,脚本如下:

# 替换成你要限制的用户组名称
$targetGroup = "SalesTeam"
$groupSID = (Get-WmiObject Win32_Group -Filter "Name='$targetGroup'").SID

# 预定义拒绝读取的权限规则
$accessRule = New-Object System.Security.AccessControl.FileSystemAccessRule(
    $groupSID,
    "ReadAndExecute",
    "ContainerInherit,ObjectInherit",
    "None",
    "Deny"
)

# 监听可移动磁盘插入事件
Register-WmiEvent -Query "SELECT * FROM Win32_VolumeChangeEvent WHERE EventType = 2" -Action {
    $driveLetter = $Event.SourceEventArgs.NewEvent.DriveName
    # 确认是可移动磁盘
    if ($driveLetter -and (Get-Volume -DriveLetter $driveLetter[0]).DriveType -eq "Removable") {
        try {
            $acl = Get-Acl $driveLetter
            $acl.AddAccessRule($using:accessRule)
            Set-Acl $driveLetter $acl
            Write-Host "已成功给磁盘 $driveLetter 应用拒绝读取权限(目标组:$using:targetGroup)"
        } catch {
            Write-Host "给磁盘 $driveLetter 设置权限失败:$_"
        }
    }
}

Write-Host "正在监听可移动介质插入事件,按 Ctrl+C 可停止脚本"
# 保持脚本运行
while ($true) { Start-Sleep 1 }

这个脚本需要管理员权限运行,它会一直后台监听,一旦有新的可移动磁盘插入,就自动完成权限配置。

备注:内容来源于stack exchange,提问作者anderZubi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 14:52:52