Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

PowerShell - Überprüfen ob Drucker vorhanden ist, wenn ja vorhanden löschen und neuen Installieren

Frage Entwicklung Batch & Shell

Mitglied: daniel46220

daniel46220 (Level 1) - Jetzt verbinden

26.02.2014 um 14:49 Uhr, 3100 Aufrufe, 5 Kommentare, 2 Danke

Hallo Zusammen,

da demnächst ein Drucker austausch bei uns ansteht, bin ich auf der Suche nach einen PowerShell Script, dass vorher prüft ob der \\Server01\Drucker01 auf den Client installiert ist:

- Wenn ja dann soll der jetzige \\Server01\Drucker01 gelöscht werden und der neue \\Server01\Drucker02 dafür installiert werden
- Wenn der \\Server01\Drucker01 nicht gefunden wurde, dann sollte das Script sich beenden.

Ideal wäre natürlich wenn es in eine Excel Datei geschrieben wird.

Ich hab bisher nur Scripte gefunden die vom jetzigen Print Server auf einen anderen Print Server umgezogen werden.
Siehe hier z.B. http://learn-powershell.net/2012/11/15/use-powershell-logon-script-to-u ...

Ich hoffe ihr könnt mir weiterhelfen.

Vielen Dank!

Grüße Daniel
Mitglied: colinardo
26.02.2014, aktualisiert um 15:54 Uhr
Hallo Daniel,
könntest du so machen: (Variablen in Zeile 1-3)
01.
$oldPrinterName = "\\Server01\Drucker01"  
02.
$newPrinterName = "\\Server01\Drucker02" 
03.
$logfile = "\\SERVER\FREIGABE\logfile.txt" 
04.
$comNetwork = New-Object -ComObject "Wscript.Network" 
05.
$printer = gwmi -Class Win32_Printer | ?{$_.Network -eq $true -and $_.ServerName -eq "\\$($oldprinterName.Split("\")[2])" -and $_.ShareName -eq $oldprinterName.Split("\")[3]} 
06.
if ($printer) { 
07.
    $printer | %{$comNetwork.RemovePrinterConnection($_.Name)} 
08.
    ([WMIClass]"\\.\root\cimv2:Win32_Printer").AddPrinterConnection($newPrinterName) | out-null 
09.
    echo "$(get-date) - Drucker '$oldPrinterName' wurde auf '$($env:COMPUTERNAME)' entfernt, und Drucker '$newPrinterName' hinzugefügt." |  out-file $logfile -Append -Force 
10.
}else{ 
11.
    echo "Keinen entsprechenden Drucker gefunden. Script beendet." 
12.
}
Grüße Uwe
Bitte warten ..
Mitglied: daniel46220
26.02.2014 um 16:29 Uhr
Servus Uwe,

vielen vielen Dank für deine schnelle Hilfe! Das Script funktioniert super!!!!!

Jetzt ist mir dabei natürlich noch etwas eingefallen . Gibt es auch die Möglichkeit einen .txt auszulesen mit Rechner namen die er abarbeiten soll?!
Btw. könnt Ihr Seiten oder Bücher empfehlen sich selbst PowerShell beizubringen, das Thema wird jetzt doch immer interessanter.....

Grüße Dani
Bitte warten ..
Mitglied: colinardo
26.02.2014, aktualisiert um 17:16 Uhr
Zitat von daniel46220:
Jetzt ist mir dabei natürlich noch etwas eingefallen . Gibt es auch die Möglichkeit einen .txt auszulesen mit Rechner
namen die er abarbeiten soll?!
klar...dazu müssen aber bestimmte Voraussetzungen bei den Clients für Remote WMI-Abfragen vorhanden sein (Firewall). Ich würde das ganze besser als Logon-Script laufen lassen ...
Btw. könnt Ihr Seiten oder Bücher empfehlen sich selbst PowerShell beizubringen, das Thema wird jetzt doch immer
interessanter.....
Gute Fundstellen sind z.B. diese:
Grundlagen und Praxisvermittlung:

Grüße Uwe
Bitte warten ..
Mitglied: colinardo
26.02.2014, aktualisiert um 17:40 Uhr
Zitat von daniel46220:
Jetzt ist mir dabei natürlich noch etwas eingefallen . Gibt es auch die Möglichkeit einen .txt auszulesen mit Rechner
namen die er abarbeiten soll?!

Ab Powershell 4.0 und Server 2012 R2 bzw. Windows 8.1 kannst du dazu folgendes Script verwenden (Firewall-Regeln der Clients müssen für Remote WMI-Abfragen entsprechend konfiguriert sein):
01.
$computers = gc "c:\temp\computers.txt" 
02.
$oldPrinterName = "\\UWE-W7\lj1320"  
03.
$newPrinterName = "\\UWE-W7\lj1320" 
04.
$logfile = "C:\logfile.txt" 
05.
 
06.
foreach($computer in $computers){ 
07.
  $printer = Get-Printer -ComputerName $computer | ?{$_.Network -eq $true -and $_.ServerName -eq "\\$($oldprinterName.Split("\")[2])" -and $_.ShareName -eq $oldprinterName.Split("\")[3]} 
08.
  if ($printer) { 
09.
      $printer | %{Remove-Printer -Computername $computer} 
10.
      Add-Printer -ConnectionName $newPrinterName -ComputerName $computer | out-null 
11.
      echo "$(get-date) - Drucker '$oldPrinterName' wurde auf '$computer' entfernt, und Drucker '$newPrinterName' hinzugefügt." |  out-file $logfile -Append -Force 
12.
  }else{ 
13.
    echo "Keinen entsprechenden Drucker gefunden. Script beendet." 
14.
15.
 
16.
}
Die verwendeten CMD-Lets gibt es nur auf den o.g. Systemen ! Auf anderen Systemen mach es besser mit einem Logon-Script... (Grund: http://social.technet.microsoft.com/Forums/de-DE/4a791d85-98e5-401f-bf6 ...)

Grüße Uwe
Bitte warten ..
Mitglied: daniel46220
27.02.2014 um 11:09 Uhr
Vielen Dank Uwe!

Auf meinen Test System mit Windows 8.1 funktioniert es. Leider haben wir aber Produktiv noch Windows 7 im Einsatz, somit komme ich mit den 2ten besseren Script nicht viel weiter.

Jetzt muss ich mal schauen wie ich das mit den Logon Script am besten umsetze.....
Bitte warten ..
Ähnliche Inhalte
Windows Server
GPO vorhandene Drucker löschen
Frage von smartinoWindows Server4 Kommentare

Hallo zusammen, ich habe hier eine Terminalserverfarm und Roaming Profiles. Drucker weise ich per GPO bzw. Citrix-Richtlinie zu. Grundsätzlich ...

Microsoft
Drucker Über Powershell installieren
gelöst Frage von Asker06Microsoft13 Kommentare

Guten Tag, Ich würde gerne ein Netzwerkdrucker über PowerShell Installieren, leider kenn ich mich darin nicht gut aus. Vorhanden ...

Windows Netzwerk
Powershell Drucker remote löschen
gelöst Frage von Rabauke84Windows Netzwerk4 Kommentare

Hallo zusammen, ich möchte gerne einen Netzwerkdrucker, remote an einem Win7-Client entfernen bzw. löschen. Folgendes habe ich mir schon ...

Batch & Shell
Powershell - Datei prüfen ob vorhanden, dann löschen
gelöst Frage von BuggerBatch & Shell9 Kommentare

Hallo, ich habe glaube ich eine einfache Frage. Folgenden Code ausschnitt habe ich: Wenn ich jetzt bei jedem $var ...

Neue Wissensbeiträge
Erkennung und -Abwehr

Necur-Botnet soll Erpressungstrojaner Scarab massenhaft verbreiten

Information von BassFishFox vor 10 StundenErkennung und -Abwehr

12,5 Millionen Spam-Mails aus einem Bot-Netz mit 6 Millionen Computern? Eigentlich eine schwache Leistung. Die Erpresser setzen dabei auf ...

Microsoft

Nadeldrucker-Problem unter Windows - Microsoft liefert Updates

Information von BassFishFox vor 10 StundenMicrosoft

Hat ja nicht lange gedauert. Nachdem die November-Updates für Windows 7, 8.1 und 10 zahlreiche Nadeldrucker lahmgelegt hatten, stellt ...

Linux

Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde

Information von Frank vor 18 StundenLinux14 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...

Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 1 TagBatch & Shell9 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Heiß diskutierte Inhalte
Windows Server
Kann man im KMS nachschauen , wieviele Clients den Key in Anspruch genommen haben
gelöst Frage von rainergugusWindows Server15 Kommentare

Hallo, wir haben einen KMS Windows 10 Key. Dieser ist ja W7 kompatibel. Aber unser Windows 7 Pool registriert ...

Linux
Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde
Information von FrankLinux14 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...

Router & Routing
Zwei Netzwerke erstellen
Frage von bunteblumeRouter & Routing14 Kommentare

Hallo Zusammen, Ich möchte gerne ein backup von einem bestimmten Folder welcher auf dem Server regelmässig synchronisiert wird auf ...

Off Topic
Fachkräftemangel in Deutschland? - Talentschmiede schreibt alle 2 Tage die gleichen Stellen aus
Frage von Penny.CilinOff Topic12 Kommentare

Hallo, haben wir in Deutschland Fachkräftemangel? Die Talentschmiede schreibt gefühlt alle zwei Tage dieselben Stellen aus. Und das schon ...