damien84
Goto Top

Powershell Script Drucker IP to DNS (Hostname)

Hallo liebe Community,

ich brauche dringend eure Hilfe. Ich brauche ein Powershell Script (um später per AD zu pushen) für alle meine Clients (ca. 200) bei dem der Druckername (IP Adresse) sich zu DNS Name ändert. Der Hintergrund dazu, ist dass die Clients samt Drucker von einem Subnetz zum anderen Umgezogen werden und die IPs ändern sich bei allen Geräten. Allerdings Treiber und die DNS Namen bleiben. Ich möchte nicht zu jedem PC rennen und bei jedem Gerät in Druckereigenschaften den Anschluss von IP zu DNS Namen ändern. Es wäre schön ein Paar Impulse von euch zu bekommen, bzw. einen Tipp zu einem fertigen Script.

VG und danke

Content-ID: 670994

Url: https://administrator.de/forum/powershell-script-drucker-ip-to-dns-hostname-670994.html

Ausgedruckt am: 30.01.2025 um 05:01 Uhr

pebcak7123
pebcak7123 28.01.2025 um 11:52:01 Uhr
Goto Top
Moin,
wenn ich mich richtig erinnere kann man den Druckerport über Powershell nicht ändern.
Also sollte das Script:
- Druckernamen auslesen
- Port anlegen mit neuem Hostname
- alten Drucker löschen
- alten Port löschen
- Drucker mit altem Namen und neuem Port neu anlegen
Starmanager
Starmanager 28.01.2025 um 12:11:27 Uhr
Goto Top
Hast Du denn keinen Printserver?
DivideByZero
DivideByZero 28.01.2025 um 12:16:28 Uhr
Goto Top
Zitat von @pebcak7123:
wenn ich mich richtig erinnere kann man den Druckerport über Powershell nicht ändern.
Also sollte das Script:
- Druckernamen auslesen
- Port anlegen mit neuem Hostname
- alten Drucker löschen
- alten Port löschen
- Drucker mit altem Namen und neuem Port neu anlegen

So ist es. Mal nach Skripten googlen und anpassen.
TomTomBon
TomTomBon 28.01.2025 um 13:52:38 Uhr
Goto Top
Kleine Hilfestellung :-p

https://learn.microsoft.com/en-us/powershell/module/printmanagement/?vie ...

Man KANN über die Powershell die Ports tauschen.

Empfehlenswerter weise mit einer Auflistung in einer CSV face-smile
TomTomBon
TomTomBon 28.01.2025 aktualisiert um 14:10:52 Uhr
Goto Top
Da es MICH interessiert face-wink

Hier der Weg um die CSV zu erstellen:
Get-Printer | export-csv -LiteralPath "c:\PRINTERS-LOKAL.csv"  

Das Ergebnis hat bei mir den Header
"RenderingMode","PrinterStatus","Type","DeviceType","Caption","Description","ElementName","InstanceID","CommunicationStatus","DetailedStatus","HealthState","InstallDate","Name","OperatingStatus","OperationalStatus","PrimaryStatus","Status","StatusDescriptions","BranchOfficeOfflineLogSizeMB","Comment","ComputerName","Datatype","DefaultJobPriority","DisableBranchOfficeLogging","DriverName","JobCount","KeepPrintedJobs","Location","PermissionSDDL","PortName","PrintProcessor","Priority","Published","SeparatorPageFile","Shared","ShareName","StartTime","UntilTime","WorkflowPolicy","PSComputerName"  

Und dann schaut man sich mal um und findet zB dies:
https://community.spiceworks.com/t/need-script-to-bulk-change-printer-po ...

Man nimmt die CSV und bearbeitet die.
Konkret braucht man bestehende Daten und trägt was nach:


Assuming you had a CSV with the properties:
PrinterName
OldPortName
NewPortName
NewPortIPAddress

then you should be able to do something like this:


$IPAddresses = Import-Csv c:\PRINTERS-LOKAL.csv

Foreach ($IP in $IPAddresses){

Add-PrinterPort -PrinterHostAddress $IP.NewIP -SNMP 1 -SNMPCommunity public -Name $IP.NewIP
Set-Printer -name $IP.Name -PortName $IP.NewIP
Remove-PrinterPort -Name $IP.OldIP
}
DivideByZero
DivideByZero 28.01.2025 um 14:35:03 Uhr
Goto Top
Nur zur Klarstellung: eine Änderung ist das nicht, sondern eben "neu hinzufügen" und "alt löschen". Dadurch im Ergebnis natürlich ein Tausch, nichts anderes, was auch oben schon stand.