Obtenez par défaut de l'imprimante à distance
Windows 7:
cscript C:\Windows\System32\Printing_Admin_Scripts\en-US\prnmngr.vbs -g
Windows XP:
cscript C:\windows\system32\prnmngr.vbs -g
Ces obtiendrez l'imprimante par défaut du système actuel. Je me demandais si il existe un moyen de l'exécuter sur mon ordinateur pour obtenir de l'imprimante par défaut d'un ordinateur distant par le nom de l'ordinateur?
J'ai essayé de courir:
psexec \\c78572 -i -d cscript C:\Windows\System32\Printing_Admin_Scripts\en-US\prnmngr.vbs -g
Et il semble.. mais je ne vois que les résultats en un coup d'popup en ligne de cmd fenêtre sur l'ordinateur distant et pas sur le mien. Tout ce que je vois sur ma fin est:
cscript started with process ID 568.
Dans powershell gwmi win32_printer -computername c78572
fonctionne.. mais je ne sais pas comment faire le tri pour me montrer la valeur par défaut de l'imprimante.
MODIFIER 12/20/13 je suis en train de le combiner avec un spectacle tous les imprimantes et la valeur par défaut, mais je ne peux pas le faire fonctionner:
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
}
OriginalL'auteur Aaron | 2013-12-17
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser wmi32_printer pour obtenir la valeur par défaut. Voici le code:
Ce sera le retour de toutes les imprimantes connectées localement. Si vous souhaitez obtenir une liste d'une imprimante connectée au réseau (comme Aaron, a commenté ci-dessous), vous avez un peu d'une question. Le script ci-dessus ne fonctionne pas parce que WMI fonctionne sur la machine locale, et non pas sur le niveau de l'utilisateur. Après beaucoup de recherches, un moyen d'obtenir cette information est de disposer d'un journal sur le script qui s'exécute, car il n'y a pas d'autre moyen de la distance à l'aide de WMI pour obtenir l'utilisateur connecté.
Comment vraiment le faire si nous ne pouvons pas utiliser WMI? Utiliser la porte arrière. Toutes les informations sont stockées dans le registre. La sortie peut ne pas être assez, mais il vous donnera toutes les informations dont nous avons besoin. Nous sommes seulement préoccupés par 3 endroits clés:
Il contient tous les Installé Localement imprimantes. Oublier cela, utilisez la
gwmi win32_printer
de commande pour obtenir cette liste.Qui contient tous les Utilisateur Actuellement connecté Installé imprimantes. Il n'a pas l'imprimante par défaut de l'information.
C'est l'endroit pour obtenir les Utilisateur Actuellement connecté Installé par Défaut de l'imprimante. C'est ce que Aaron est spécifiquement à la recherche d'.
Donc, nous pouvons utiliser PowerShell pour se connecter à distance au registre, et de la lecture l'utilisateur actuellement connecté l'imprimante par défaut avec le script suivant:
----EDIT - pour obtenir une liste de toutes les imprimantes----
À la liste de toutes les imprimantes sur l'ordinateur distant:
Vous avez raison, à l'aide de WMI ne pouvez pas obtenir les imprimantes réseau des utilisateurs. Veuillez consulter les modifications. J'ai ajouté un moyen d'obtenir de l'imprimante réseau pour l'utilisateur actuellement connecté. Il peut facilement être modifié pour obtenir les informations de tous les autres non-utilisateurs connectés sur la boîte.
Je suis en train d'essayer de combiner ce que vous avez avec une liste des imprimantes, puis celui par défaut ci-dessous...mais il ne fonctionne pas. J'ai édité mon OP avec mon code.
Je sais que c'est plus d'un an, mais mon commentaire. Les Paramètres de la clé ne contient pas les imprimantes réseau, je les vois répertorié sous HKCU\Printers\Connections
Super utile, merci!
OriginalL'auteur HAL9256