Drucker-Einstellungen Printserver-Lokal vergleichen
Hallo zusammen,
innerhalb eines Scripts versuche ich, die Druckereinstellungen zwischen auf einem RDS-Server lokal installierten Druckern mit denen auf dem Druckserver zu vergleichen.
Die Druckereinstellungen werden zuvor auf dem Printserver ausgelesen und lokal auf dem RDS-Server importiert.
Ich erhalte jedoch folgende Fehlermeldung:
Hat jemand einen Tip, wie ich das anpassen kann? Bin in PowerShell leider nicht so firm.
Besten Dank!
innerhalb eines Scripts versuche ich, die Druckereinstellungen zwischen auf einem RDS-Server lokal installierten Druckern mit denen auf dem Druckserver zu vergleichen.
Die Druckereinstellungen werden zuvor auf dem Printserver ausgelesen und lokal auf dem RDS-Server importiert.
(compare (Get-PrinterProperty -PrinterName "Drucker 123" | select *) (Get-PrinterProperty -ComputerName \\PRINTSERVER01 -PrinterName "Drucker 123" | select *))
Ich erhalte jedoch folgende Fehlermeldung:
Compare-Object : Das Argument kann nicht an den Parameter "ReferenceObject" gebunden werden, da es NULL ist.
In Zeile:1 Zeichen:9
+ compare (Get-PrinterProperty -PrinterName "Drucker 123 ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidData: (:) [Compare-Object], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.CompareObjectCommand
Hat jemand einen Tip, wie ich das anpassen kann? Bin in PowerShell leider nicht so firm.
Besten Dank!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 43868097779
Url: https://administrator.de/contentid/43868097779
Ausgedruckt am: 22.11.2024 um 03:11 Uhr
1 Kommentar
Hi,
Na klar!
Stelle also zuerst mal sicher ob beide Abfragen wirklich etwas liefern:
Danach kannst du beide Objects miteinander vergleichen
Kleiner Zusatz:
Z.B: liefert diese Abfrage mindestens ein weiteres Object-Array im Object. WEnn du die auch vergleichen willst, musst du dieses Object separat vergleichen:
innerhalb eines Scripts versuche ich, die Druckereinstellungen zwischen auf einem RDS-Server lokal installierten Druckern mit denen auf dem Druckserver zu vergleichen.
OK!Die Druckereinstellungen werden zuvor auf dem Printserver ausgelesen und lokal auf dem RDS-Server importiert.
...
Ich erhalte jedoch folgende Fehlermeldung:
Hat jemand einen Tip, wie ich das anpassen kann? Bin in PowerShell leider nicht so firm.
...
Ich erhalte jedoch folgende Fehlermeldung:
Compare-Object : Das Argument kann nicht an den Parameter "ReferenceObject" gebunden werden, da es NULL ist.
In Zeile:1 Zeichen:9
+ compare (Get-PrinterProperty -PrinterName "Drucker 123 ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidData: (:) [Compare-Object], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.CompareObjectCommand
Hat jemand einen Tip, wie ich das anpassen kann? Bin in PowerShell leider nicht so firm.
Na klar!
- lerne dein Werkzeug kennen
- lerne die Möglichkeiten deinses Werkzeugs kennen
- analysiere die Fehler die dir dein Werkzeug liefert
Compare-Object : Das Argument kann nicht an den Parameter "ReferenceObject" gebunden werden, da es NULL ist.
In Zeile:1 Zeichen:9
+ compare (Get-PrinterProperty -PrinterName "Drucker 123 ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidData: (:) [Compare-Object], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.CompareObjectCommand
Stelle also zuerst mal sicher ob beide Abfragen wirklich etwas liefern:
$queryA = Get-PrinterProperty -PrinterName "Drucker 123" | select *
$queryB = Get-PrinterProperty -ComputerName \\PRINTSERVER01 -PrinterName "Drucker 123" | select *
Danach kannst du beide Objects miteinander vergleichen
if($queryA -ne $null -and $queryB -ne $null)
{
Compare-Object $queryA $queryB
}
Kleiner Zusatz:
Z.B: liefert diese Abfrage mindestens ein weiteres Object-Array im Object. WEnn du die auch vergleichen willst, musst du dieses Object separat vergleichen:
Get-PrinterProperty -ComputerName "MeinPC" -PrinterName "Adobe PDF" | select *
Type : String
Caption :
Description :
ElementName :
InstanceID :
ComputerName : NUC
PrinterName : Adobe PDF
PropertyName : Config:InstalledMemory
Value : None
PSComputerName :
CimClass : ROOT/StandardCimv2:MSFT_PrinterProperty
#besagtes Array:
CimInstanceProperties : {Caption, Description, ElementName, InstanceID...}
CimSystemProperties : Microsoft.Management.Infrastructure.CimSystemProperties