2017-01-24 3 views
1

Ich habe eine Abfrage in SCCM, die eine Drucker-IP-Adresse nimmt und alle Arbeitsstationen in SCCM zurückgibt, auf denen der Drucker installiert ist. Ich möchte ein Powershell-Skript erstellen, das diese Abfrage übernimmt und die Arbeitsstationen verwendet, auf denen es die aktuellen Druckaufträge in der Druckwarteschlange auf der Arbeitsstation auflistet.WQL-Abfrage von SCCM in Powershell verwenden

Ich weiß, dass Sie Get-CIMInstance -query verwenden können, um verschiedene Dinge in WMI abzufragen. Das funktioniert gut, wenn ich versuche, Informationen vor Ort herauszufinden. Wenn ich jedoch die WQL-Abfrage in eine Here-String ablegen und sie einer Variablen zuweisen und sie dann mit Get-CIMInstance -query aufrufen, wird der Fehler invalid query zurückgegeben. Das gleiche passiert, wenn ich Get-WmiObject -Namespace "root\wmi" -Query $WQlquery

verwende So wie würde ich in der Lage sein, die WQL-Abfrage von SCCM in Powershell zu verwenden? Hier ist ein Beispiel dafür, was ich bisher:

$WQLquery = @" 
select SMS_R_System.Name from 
SMS_R_System inner join 
SMS_G_System_PRINTER_DEVICE on 
SMS_G_System_PRINTER_DEVICE.ResourceID = 
SMS_R_System.ResourceId where 
SMS_G_System_PRINTER_DEVICE.PortName like "10.10.10.10" 
"@ 

Get-CIMInstance -query $WQLquery 

Unter der Annahme, dass gearbeitet und eine Liste der Workstation-IDs zurück, ich dann Get-Printjob Cmdlets verwenden würden aktuelle Aufträge in jeder Arbeitsstationen Druckwarteschlange aufzulisten. Ich habe hier ein paar Fragen gefunden, die mir geholfen haben, so weit zu kommen. Jede zusätzliche Hilfe wäre willkommen. Geh ruhig zu mir, immer noch ein Neuling hier.

+0

Was ist die eigentliche Frage hier? –

+0

Also wie könnte ich die WQL-Abfrage von SCCM in Powershell verwenden? – Ozar

Antwort

2

Sie müssen den Namespace für die sccm-Site root\sms\site_SITECODE und den sccm-Server angeben, wenn Sie ihn von einem Remote-Computer aus ausführen. Bsp .:

$WQLquery = @" 
select SMS_R_System.Name from 
SMS_R_System inner join 
SMS_G_System_PRINTER_DEVICE on 
SMS_G_System_PRINTER_DEVICE.ResourceID = 
SMS_R_System.ResourceId where 
SMS_G_System_PRINTER_DEVICE.PortName like "10.10.10.10" 
"@ 

Get-WmiObject -Query $WQLquery -ComputerName "SCCMSERVER" -Namespace "root\sms\site_PRI" 
+0

Danke. Noch eine Frage zum Namespace-Attribut: Wo finde ich den benötigten Site-Code? – Ozar

+0

Es ist die primäre Website für die Kunden. Sie können auch die zentrale Website verwenden, wenn Sie diese verwenden. Wenn Sie Zugriff auf den sccm-Server haben, werden Sie dies wissen. Es ist in WMI auf dem Client und Server, Konfigurationsmanager-Kontrollfeld auf dem Client und im Fenstertitel für Ihre ConfigMgr-Konsole auf dem Server (+ viele Orte in der Konsole) aufgelistet. –

+0

Ihre Konsole sagt "Verbindung zu - ". Im Fenstertitel der Konsole heißt es gleich .. "Verbunden mit - . Sie können auch in der Adminsitration nachsehen, wo die Sites definiert sind, die Site-Eigenschaft für jedes Gerät usw. Es ist so ziemlich überall.: -) –

Verwandte Themen