Powershell win32_打印机访问被拒绝的解决方法
我正在为windows 7编写powershell脚本,以替换用户桌面上的一些打印机连接,并且我需要能够获取windows打印服务器上的打印队列列表。除了浏览、连接和打印到打印队列之外,我无法访问打印服务器 问题:使用get-wmiobject通过win32_打印机在服务器上查询列表时,访问被拒绝 PS M:>获取WmiObject-类Win32_打印机-计算机名称newprintservername 获取WmiObject:访问被拒绝。(HRESULT异常:0x80070005(E_访问被拒绝)) 第1行字符:14Powershell win32_打印机访问被拒绝的解决方法,powershell,printing,Powershell,Printing,我正在为windows 7编写powershell脚本,以替换用户桌面上的一些打印机连接,并且我需要能够获取windows打印服务器上的打印队列列表。除了浏览、连接和打印到打印队列之外,我无法访问打印服务器 问题:使用get-wmiobject通过win32_打印机在服务器上查询列表时,访问被拒绝 PS M:>获取WmiObject-类Win32_打印机-计算机名称newprintservername 获取WmiObject:访问被拒绝。(HRESULT异常:0x80070005(E_访问被拒绝
+获取WmiObject您可能需要提升计算机的权限才能查询WMI。请尝试使用对该计算机具有管理员权限的凭据运行命令,并查看运行情况 获取WmiObject-类Win32_打印机-计算机名newprintservername-凭据(获取凭据) 或者,如果您无法在该计算机上获得管理员权限,您可能希望与设置非管理员以查询WMI-的人一起查看此博客文章 至少,它可以帮助你找到正确的方向
干杯,出于某种原因,我很难找到它,但我知道它必须存在:用于打印服务器、打印机、打印队列等的.Net类。这是我发现的 链接到演示如何加载.DLL以访问类的脚本:
以下是我使用的(我有一个64位操作系统): 然后我补充说:
$PrintServer = [System.Printing.PrintServer]"\\ServerName"
try{
$PrintQueue = $PrintServer.GetPrintQueue("PrintQueueName")
}
Catch{
"Print Queue Not Found"
}
我用一个有效的打印队列进行了尝试,当我查看$PrintQueue
时,可以查看队列信息,当我尝试一个无效的打印队列时,它的响应是“未找到打印队列”
这足以让你完成你需要的工作吗
$PrintServer = [System.Printing.PrintServer]"\\ServerName"
try{
$PrintQueue = $PrintServer.GetPrintQueue("PrintQueueName")
}
Catch{
"Print Queue Not Found"
}