的Windows 7:获取默认的打印机远程
cscript C:\Windows\System32\Printing_Admin_Scripts\en-US\prnmngr.vbs -g
Windows XP中:
cscript C:\windows\system32\prnmngr.vbs -g
这些将得到当前系统的默认打印机。我想知道是否有一种方法可以在我的计算机上运行此计算机以通过计算机名称获取远程计算机的默认打印机?
我试图运行:
psexec \\c78572 -i -d cscript C:\Windows\System32\Printing_Admin_Scripts\en-US\prnmngr.vbs -g
,它似乎跑..但我只看到远程计算机上的快速弹出CMD行窗口的结果,而不是我的。所有我对我的最终看到的是:
cscript started with process ID 568.
在PowerShell中gwmi win32_printer -computername c78572
工作..但我不知道如何对它进行排序,以显示我的默认打印机。
编辑13年12月20日,我试图把它与一个显示所有打印机和默认的结合,但我不能得到它的工作:
while (1) {
$tag1 = Read-Host 'Enter tag # or Q to quit'
if ($tag1 -eq "Q") {
break;
}
cls
sc.exe \\$tag1 start RemoteRegistry;
cls
start-sleep -seconds 2
cls
$OSInfo = get-wmiobject -class win32_operatingsystem -computername $tag1;
$OSInfo | Format-Table -Property @{Name="OS Name";Expression={$_.Caption}},@{Name="System Boot Time";Expression={$_.ConvertToDateTime($_.LastBootUpTime)}} -AutoSize;
gwmi win32_printer -computername $tag1 | ft -Property @{Name="Printer Name";Expression={$_.Name}} -AutoSize;
$Computer = $tag1
$Reg = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey('currentuser', $Computer)
$RegKey= $Reg.OpenSubKey('Software\Microsoft\Windows NT\CurrentVersion\Windows')
$DefaultPrinter = $RegKey.GetValue("Device")
$DefaultPrinter | ConvertFrom-Csv -Header Name, Provider, Order| Select Name
# Alt method: Get-WmiObject win32_printer -computername c60311
}
貌似正确的命令,但唯一的问题是,他们是网络打印机,所以它并没有将它们列为默认WH实际上,当你去看时,它们被设置为一个。 – Aaron
您说得对,使用WMI无法获得用户的网络打印机。请参阅上述编辑。我已经添加了一种方法来访问当前登录用户的网络打印机。它可以很容易地被修改,以从盒子上的所有其他未登录用户那里获得信息。 – HAL9256
我正在尝试将打印机列表与打印机列表相结合,然后在其下面使用默认列表...但它不起作用。我用我的代码编辑了我的OP。 – Aaron