Grant-SMBShareAccess执行失败,报错‘The Request is Not Supported’求助
执行Grant-SMBShareAccess修改内置SMB共享权限时触发Windows系统错误50(请求不支持),可从以下几个维度排查解决:
1. 内置隐藏共享的权限操作限制
系统默认的驱动器隐藏共享(如L$)受系统权限管控,直接使用Grant-SmbShareAccess可能触发限制。可改用Set-SmbShareAccess覆盖权限,或先清理原有权限再添加:
# 移除目标账号现有权限(按需执行) Revoke-SmbShareAccess -Name "L$" -AccountName "turnips\Test Account" -Force # 重新设置权限 Set-SmbShareAccess -Name "L$" -AccountName "turnips\Test Account" -AccessRight Full -Force
2. 修复带空格账号的解析问题
包含空格的域账号可能存在解析异常,尝试替换为以下两种格式:
- UPN格式(如
TestAccount@turnips.com,需域环境支持) - 账号SID(通过
Get-ADUser "Test Account" | Select-Object -ExpandProperty SID获取)
示例命令:
Grant-SmbShareAccess -Name "L$" -AccountName "TestAccount@turnips.com" -AccessRight Full
3. 检查PowerShell与SMB模块兼容性
旧版本SMB模块不支持隐藏共享的权限操作,执行以下命令确认模块版本:
Get-Module -Name SmbShare -ListAvailable
若版本低于2.0,需升级PowerShell至5.1及以上(Windows Server 2016+默认适配)。
4. 确保运行权限足够
必须以本地管理员身份启动PowerShell,内置共享的权限修改需要高权限上下文。
5. 验证SMB协议版本
SMB1协议存在兼容性问题,建议启用SMB2/SMB3并禁用SMB1:
# 查看当前SMB配置 Get-SmbServerConfiguration | Select-Object EnableSMB1Protocol, EnableSMB2Protocol # 禁用SMB1(按需) Set-SmbServerConfiguration -EnableSMB1Protocol $false -Force
内容的提问来源于stack exchange,提问作者Jonathan Styles
相关产品推荐
相关产品推荐

