的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