Remote wie in über die Kommandozeile. Ich bin mir nicht sicher, ob es einen Registrierungsschlüssel oder ähnliches gibt. Ich kann einen Blick darauf werfen, ob einem Benutzer die richtigen Drucker zugeordnet sind.
Remote wie in über die Kommandozeile. Ich bin mir nicht sicher, ob es einen Registrierungsschlüssel oder ähnliches gibt. Ich kann einen Blick darauf werfen, ob einem Benutzer die richtigen Drucker zugeordnet sind.
Antworten:
Sie können sich die WMI-Klasse Win32_Printer ansehen.
Get-WMIObject Win32_Printer -ComputerName $Comp
Aber ich denke, das wird Ihnen noch bessere Ergebnisse bringen:
New-PSSession $Comp | Enter-PSSession
Get-ChildItem Registry::\HKEY_Users\$UserSID\Printers\Connections
Exit
Ohne PS Remoting können Sie stattdessen Folgendes tun:
$Printers = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey(Microsoft.Win32.RegistryHive]::Users, $ServerName)
Du hast die Idee. Grundsätzlich müssen Sie mit jeder Methode auf den Registrierungsschlüssel dieses Benutzers zugreifen und alles auflisten, was Sie finden Printers\Connections
.
gci Registry::\....
ist im Begriff, sich gut zu einer Powershell-Funktion zusammenzurollen, fyi.
Für alle, die daran interessiert sind, wie Arbeitscode aussieht, um die Konten aufzulisten und eine Liste der installierten Drucker zu erhalten, siehe unten:
Get-ChildItem Registry::\HKEY_Users |
Where-Object { $_.PSChildName -NotMatch ".DEFAULT|S-1-5-18|S-1-5-19|S-1-5-20|_Classes" } |
Select-Object -ExpandProperty PSChildName |
ForEach-Object { Get-ChildItem Registry::\HKEY_Users\$_\Printers\Connections -Recurse | Select-Object -ExpandProperty Name }
Dieses Snippet listet zuerst alle Unterschlüssel unter HKEY_Users auf, filtert dann die Standard- / Systemkontoschlüssel und die Klassenschlüssel für jeden Benutzer heraus und listet schließlich die \Printers\Connections
Unterschlüssel aller verbleibenden Schlüssel auf, um die Druckerinformationen an die Konsole auszugeben.
Ein großes Lob an Ryan, also dachte ich, ich würde über eine Antwort dazu beitragen.