Logo faq-o-matic.net
Logo faq-o-matic.net

“An Taskleiste anheften” per Gruppenrichtlinie

von veröffentlicht am20. Dezember 2010, 07:40 Uhr Kurzlink und Zitatlink einblenden
Kategorie Kategorie: Gruppenrichtlinien, VBScript, Windows 7, Windows Server 2008 R2   Translate with Google Translate Translate EN   Die angezeigte Seite drucken

Seit Windows 7 und Windows Server 2008 R2 gibt es bekanntlich keine Schnellstart-Leiste (Quicklaunch) mehr. Die neue Taskleiste wurde komplett überarbeitet und wartet mit einer Fülle neuer Funktionen auf. Dazu gehört unter Anderem das “Anheften” von Programmsymbolen bzw. Verknüpfungen, um den schnellen Zugriff auf häufig verwendete Anwendungen zu ermöglichen. Das ist schön und gleichzeitig gut, allerdings gibt es für die automatische Verteilung bzw. Einrichtung keine Gruppenrichtlinie.

Da ich aber nun auch für die aktuellen Betriebssystemversionen ebenfalls eine automatisierte Lösung (auf Basis von Gruppenrichtlinien) brauchte, habe ich ein VBS-Skript geschrieben. Ob nun bei der Anmeldung als Administrator an einem Server in der Domäne oder ob als Benutzer an einem Terminalserver 2008 R2, um manuelle Eingriffe so gering wie möglich zu halten, benötige ich eine automatische Konfiguration für Benutzer-abhängige Einstellungen des Betriebssystems.

Lösung: Das Skript PinTaskbar.zip (Download vom Blog des Autors) löst dieses Problem unkompliziert und mit einem kleinen Trick. Für die Umsetzung und Ausführung sind allerdings ein paar kleinere Vorbereitungen nötig. (Es wird kein Domänencontroller unter Windows Server 2008 R2 benötigt, diese Variante funktioniert bereits mit Windows Server 2003!)

Der Skriptcode:

'* VBS Script zum Anheften von Verknüpfungen an die Taskleiste
'* für Windows 7 und Windows Server 2008 R2 (Deutsch und Englisch)
'* (c) 2010 by B

Dim objArgs
Dim objFolder
Dim objFolderItem, objLNKItem
Dim Itemverb

Set objArgs = WScript.Arguments
Set WSHShell = WScript.CreateObject("WScript.Shell")
Set objEnv = WshShell.Environment("Process")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("Shell.Application")

If Wscript.Arguments.Count > 0 Then 

	strFolder = Wscript.Arguments(0)
	strTarget = objEnv("APPDATA") & "\Microsoft\Internet Explorer\Quick Launch\"
	If Right(strFolder,1) <> "\" Then strFolder = strFolder & "\"

	Set objFolder = objFSO.GetFolder(strFolder)
	
	For Each File In objFolder.Files
		Set objFile = objFSO.GetFile(File)
		If Lcase(objFSO.GetExtensionName(objFile)) = "lnk" Then
			objFSO.CopyFile strFolder & File.Name, strTarget, TRUE	'Zieldatei wird überschrieben!
			Set objFolder = objShell.Namespace(strTarget)
			Set objLNKItem = objFolder.ParseName(File.Name)
			For Each Itemverb In objLNKItem.Verbs
				If Replace(Itemverb.Name, "&", "") = "An Taskleiste anheften" Then Itemverb.DoIt
				If Replace(Itemverb.Name, "&", "") = "Pin to Taskbar" Then Itemverb.DoIt
			Next 		
		End If
	Next

End If

Die Umsetzung

Ich werde mich in meiner folgenden Anleitung auf zwei Beispiel-Anwendungen von Windows 7 und Server 2008 R2 beschränken – Notepad und das Snipping Tool. Das Skript entpackt man beispielsweise in einen Unterordner der NETLOGON-Ressource, in meinem Fall nach:

\\FQDN\Netlogon\Skripte\

Zu Beginn erstellt man die Verknüpfungen, die später verteilt und an die Taskleiste angeheftet werden sollen:

Diese Verknüpfungen können nun in einen zentralen Ordner für die spätere Verteilung innerhalb der Domäne verschoben werden, in meinem Beispiel nach:

\\FQDN\Netlogon\Taskbar

Wer zwischen verschiedenen Benutzergruppen unterscheiden möchte, kann entweder Unterordner (wie Administratoren und Benutzer) erstellen, oder – und das ist wesentlich eleganter – die Leseberechtigungen für jede Datei für die jeweils relevanten Gruppen setzen oder entfernen. Der Vorteil dieser zentralen Stelle ist, ich muss meine Verknüpfungen nur an einem Ort pflegen und aktualisieren, die Änderungen werden bei der nächsten Anmeldung eines Benutzers neu gesetzt.

Nun muss nur noch eine (oder mehrere, abhängig von den unterschiedlichen Verknüpfung-Sets) geeignete Gruppenrichtlinie(n) auswählen und die Ausführung des Skripts PinTaskbar.vbs konfigurieren (Benutzerkonfiguration, Windows-Einstellungen, Skripts, Anmelden):

Wichtig: Als Skript-Parameter ist das Verzeichnis (\\FQDN\Netlogon\Taskbar) anzugeben, in dem sich die Verknüpfungen befinden, ohne Parameter beendet sich das Skript ohne Aktion.

Achtung: Das Skript funktioniert nur für die Betriebssysteme Windows 7 und Windows Server 2008 R2. Für die Ausführung via Gruppenrichtlinien sollte die WMI-Filterung genutzt werden, um Fehler auf Systemen mit älteren Betriebssystemversionen zu vermeiden.  Der WMI-Filter für Windows Server 2008 R2 und Windows 7 lautet:

select * from Win32_OperatingSystem where Version like “6.1%”

Funktionsweise: Das Skript selber ist relativ simpel und klein. Wie beschrieben, erwartet es einen Übergabeparameter – nämlich das Quellverzeichnis der Verknüpfungen, in meinem Beispielfall also:

\\FQDN\Netlogon\Taskbar

Aus diesem Verzeichnis kopiert das Skript nun alle LNK-Dateien (*.lnk) in das Zielverzeichnis:

%APPDATA%\Microsoft\Internet Explorer\Quick Launch\

Dabei zeigt die Umgebungsvariable %APPDATA% auf das Benutzerverzeichnis (Profil) %SystemDrive%\Users\Benutzername\AppData\Roaming. Somit werden die Verknüpfungen immer in das richtige Benutzerprofil kopiert und von dieser Stelle an die Taskleiste angeheftet. Das Skript funktioniert dabei sowohl für die Sprache Deutsch als auch für Englisch (andere Sprachen müssen in Zeile 30 oder 31 des Skripts geändert bzw. hinzugefügt werden). Damit ist die Abarbeitung auch schon beendet.

Wer mag, kann das Skript gern ändern bzw. seinen eigenen Anforderungen anpassen.

© 2005-2019 bei faq-o-matic.net. Alle Rechte an den Texten liegen bei deren Autorinnen und Autoren.

Jede Wiederveröffentlichung der Texte oder von Auszügen daraus - egal ob kommerziell oder nicht - bedarf der ausdrücklichen Genehmigung durch die jeweiligen Urheberinnen oder Urheber.

Das Impressum findet sich unter: http://www.faq-o-matic.net/impressum/

Danke, dass du faq-o-matic.net nutzt. Du hast ein einfaches Blog sehr glücklich gemacht!