RDP连接云Windows Server2019执行Set-PrintConfiguration报访问拒绝如何解决
错误原因
你遇到的HRESULT 0x80070005是标准的Windows权限拒绝错误,触发核心原因如下:
- 运行脚本的PowerShell进程没有提升管理员权限:Windows UAC(用户账户控制)默认会拦截普通权限进程修改系统级配置的操作,打印机全局配置属于系统级资源,普通权限的PowerShell没有修改权限。
- 当前登录用户没有打印机的管理权限:默认普通用户仅能修改个人的打印偏好,要修改打印机的全局默认配置,需要账号持有管理此打印机的权限,或属于本地管理员组。
解决方案
按优先级从高到低尝试即可:
- 以管理员身份运行PowerShell
右键点击PowerShell图标,选择「以管理员身份运行」,之后再执行脚本,如果你使用的账号属于本地管理员组,该操作可以直接解决UAC拦截导致的权限问题。 - 分配打印机管理权限
如果无法使用管理员权限运行脚本,可打开打印机属性面板,切换到「安全」选项卡,给当前使用的账号勾选管理此打印机的权限,配置完成后普通权限的PowerShell也可以修改打印机配置。 - 优化脚本减少额外错误风险
原脚本中单独替换PrintTicketXML的操作存在XML格式异常的风险,你可以直接修改打印配置对象的内置属性后提交修改,简化后的可用脚本如下:
$ComputerName = $env:computername $PrinterName = "My printer Name" $PrintConfiguration = Get-PrintConfiguration -ComputerName $ComputerName -PrinterName $PrinterName # 直接修改配置对象的内置属性 $PrintConfiguration.PaperSize = "A6" $PrintConfiguration.Orientation = "Portrait" # 直接提交配置对象,不需要单独处理打印票据XML Set-PrintConfiguration -InputObject $PrintConfiguration
如果是域管理的云服务器,上述操作都无效的话,需要联系域管理员调整限制修改打印机配置的组策略规则。
内容的提问来源于stack exchange,提问作者pfigueredo
相关产品推荐
相关产品推荐

