Es gibt sicher elegantere Lösungen dafür, aber weil ich mit ereignisgesteuerten Aufgaben unter Windows Vista ein wenig "experimentieren" wollte, habe ich eine solche Aufgabe erstellt, die immer aufgerufen wird, wenn mein Laptop sich mit einem Netzwerk verbindet.
Handelt es sich um mein Firmennetzwerk, wird das Skript Printers.vbs mit dem Parameter "Minolta" ausgeführt, handelt es sich um mein Heimnetzwerk, mit dem Parameter "Brother HL-1430", handelt es sich um ein anderes Netzwerk wird die Aufgabe abgebrochen.
Was macht das VBS Skript? Es ändert den Standarddrucker!
Ohne Parameter gibt es die verfügbaren Drucker aus:
C:\>cscript printers.vbs
Microsoft XPS Document Writer
Microsoft Office Live Meeting 2007 Document Writer
Fax
Brother HL-1430
Default Printer Set to 'Brother HL-1430'
An OneNote 2007 senden
Adobe PDF
\\phoenix\Fax
Mit Parameter ändert es den Standarddrucker:
C:\>cscript printers.vbs "Brother HL-1430"
Microsoft XPS Document Writer
Microsoft Office Live Meeting 2007 Document Writer
Fax
Brother HL-1430
-> Default Printer Set to 'Brother HL-1430'
An OneNote 2007 senden
Adobe PDF
\\phoenix\Fax
printers.vbs
strComputer = "."
Dim Arg
Dim PrinterName
For Each Arg In Wscript.Arguments
PrinterName = Arg
Exit For
Next
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colInstalledPrinters = objWMIService.ExecQuery ("Select * from Win32_Printer")
For Each objPrinter in colInstalledPrinters
WScript.Echo objPrinter.name
If objPrinter.name = PrinterName then
objPrinter.SetDefaultPrinter()
WScript.Echo " -> Default Printer Set to '"& PrinterName &"'"
End if
Next
Was muss man nun tun um so eine "ereignisgesteuerte" Aufgabe zu erstellen?
Zunächst ist es wichtig, zu wissen, welches Ereignis die Aufgabe auslösen ("triggern") soll.
In dem Fall ist das:
Protokollname: System
Quelle: Tcpip
Ereignis-ID: 4201
Dieses Ereignis bedeutet "Netzwerkverbindung hergestellt" und tritt eben dann auf, egal ob mittels WLAN, Lan, VPN oder UMTS.
Los geht's:
Aufgabenplanung starten, neue Aufgabe erstellen...
 |
Neue Aufgabe erstellen, unabhängig von der Benutzeranmeldung, mit höchsten Privilegien. |
 |
Auf der Registerkarte "Trigger" einen neuen Trigger hinzufügen |
 |
Dieser soll "Bei einem Ereignis" ausgelöst werden und zwar "System", "Tcpip", "4201"
Verzögerung um 1 Minute stellt sicher, dass dann schon das Netzwerk erkannt wurde (DHCP etc.) |
 |
Trigger wurde angelegt - man sieht hier sehr schön, dass theoretisch auch mehrere Trigger möglich wären |
 |
Auf der Registerkarte Aktionen eine neue Aktion anlegen - auch hier könnten mehrere Aktionen ausgelöst werden |
 |
Die Aktion ist cscript.exe mit unserem Skript "printers.vbs" und dem Namen des neuen Standarddruckers als Parameter. |
 |
Neue Aktion überprüfen, dann weiter zu den Bedingungen |
 |
Dort geben wir unter "Netzwerk" an, dass die Aufgabe nur starten soll, wenn die Verbindung zu einem bestimmten Netzwerk besteht.
Für jede weitere Kombination aus Drucker und Netzwerk einfach eine weitere solche Aufgabe erstellen (von vorne beginnen) |