Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

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 Script zur Migration auf einen neuen Druckserver (Printserver-Migration)

Anleitung Microsoft Windows Server

Mitglied: rzlbrnft

rzlbrnft (Level 2) - Jetzt verbinden

06.05.2014 um 14:57 Uhr, 5281 Aufrufe

Wir sind gerade bei der Umstellung auf Server 2012 und haben mittlerweile alle XP Kisten aus unserem Netzwerk entfernt.
Da alle Server neue Namen bekommen stellte sich mir die Aufgabe eine Lösung zu finden um den jeweiligen Druckserver Namen möglichst einfach zu ändern.
Da viele User aufgrund von wechselnden Standorten individuelle Einstellungen nutzen verwenden wir keine per GPO bereitgestellten Drucker.

Wir hatten bereits einige Male VBScript verwendet, funktionierte manchmal gut manchmal nicht so, daher haben wir es jetzt mal mit Powershell versucht.
Heraus kam ein relativ einfaches übersichtliches Script was mit Parametern aus einer Batch heraus aufgerufen werden kann.
Vielleicht nützt es ja jemandem etwas der sowas sucht.

Hier das Script.

01.
# Script changeprinters.ps1 by finzlbrother aka rzlbrnft 
02.
$ErrorActionPreference = "SilentlyContinue" 
03.
 
04.
# Read print server from the arguments 
05.
$OldPrintserver = $args[0]  
06.
$NewPrintserver = $args[1]  
07.
 
08.
# Script ends here if no arguments present 
09.
if($OldPrintserver -and $NewPrintserver) 
10.
{  
11.
	# Read all existing printers on the old server 
12.
	$Printers = Get-WMIObject Win32_Printer -Filter "Name LIKE '%$OldPrintserver%' "  
13.
 
14.
	# Create empty array for list of old printers 
15.
	$oldPrinters = @()  
16.
 
17.
	if($Printers)  
18.
	{  
19.
		  # Define network object 
20.
		  $global:net = new-Object -com WScript.Network  
21.
 
22.
		  # Path to new printer connection is generated and connected, if printer is default the new printer is also set to default 
23.
		  foreach ($Printer in $Printers)  
24.
		  {  
25.
 
26.
			$newPrinter = "\\" + $NewPrintserver + "\" + $Printer.Sharename 
27.
 
28.
			$global:net.AddWindowsPrinterConnection($newPrinter)  
29.
			if ($Printer.Default) {	$global:net.SetDefaultPrinter($newPrinter) }  
30.
			 
31.
			$newPrinter = ""  
32.
			$oldPrinters += $Printer.Name 
33.
 
34.
		  }  
35.
 
36.
		  #Old printers are deleted 
37.
		  foreach ($oldPrinter in $oldPrinters) 
38.
39.
			$global:net.RemovePrinterConnection($oldPrinter)  
40.
41.
	}  
42.
}
Dieses Script kann man jetzt als *.ps1 im Netlogon Ordner ablegen.
Aus einer Batchdatei heraus wird das Script folgendermaßen aufgerufen:

01.
powershell Set-ExecutionPolicy RemoteSigned 
02.
powershell "\\domain.local\NETLOGON\PS\changeprinters.ps1 druckserver1 druckserver2"
druckserver1 wäre hier der alte Server, druckserver2 der neue.
Voraussetzung ist, das der Druckername auf beiden Servern gleich bleibt und sowohl Treiber für 32bit als auch für 64bit Systeme vorhanden sind.

Auf Windows 7 ist das ausführen von unsignierten Scripts per default deaktiviert.
Macht hier natürlich wenig Sinn, heißt es muss entweder per Powershell die Policy auf RemoteSigned gesetzt werden oder in der GPO unter "Computerverwaltung\Administrative Vorlagen\Windows-Komponenten\Windows PowerShell" das Skripting für alle aktiviert werden. Wenn man mehr mit Powershell machen will macht der Weg über die GPO mehr Sinn.
Ähnliche Inhalte
Exchange Server
gelöst Exchange 2007 Migration auf Exchange 2016 (3)

Frage von obliterator zum Thema Exchange Server ...

Windows Server
Migration SBS 2008 zu Server 2016 (2)

Frage von ellinho zum Thema Windows Server ...

Neue Wissensbeiträge
Ubuntu

Ubuntu 17.10 steht zum Download bereit

(3)

Information von Frank zum Thema Ubuntu ...

Datenschutz

Autofahrer-Pranger - Bewertungsportal illegal

(8)

Information von BassFishFox zum Thema Datenschutz ...

Windows 10

Neues Win10 Funktionsupdate verbuggt RemoteApp

(8)

Information von thomasreischer zum Thema Windows 10 ...

Microsoft

Die neuen RSAT-Tools für Win10 1709 sind da

(2)

Information von DerWoWusste zum Thema Microsoft ...

Heiß diskutierte Inhalte
Monitoring
Netzwerk-Monitoring Software (18)

Frage von Ghost108 zum Thema Monitoring ...

Windows 10
Seekrank bei Windows 10 (17)

Frage von zauberer123 zum Thema Windows 10 ...

Windows Server
gelöst Kopiervorgang schlägt fehl, weil Datei- und Ordnername zu lang sind (14)

Frage von Schroedi zum Thema Windows Server ...

Windows 10
Windows 10 Fall Creators Update Fehler (13)

Frage von ZeroCool23 zum Thema Windows 10 ...