Ausfuehren des User Objekt Logon Scripts schlaegt mit Windows 2008 DCs fehl

Hallo, hier nochmal Rol mit einem Thema zum User Objekt Logon Script. Ein Team Kollege hatte eine Anfrage mit der Problemstellung, daß das Logon Script auf einem Windows 2003 Terminal Server nicht mehr ausgeführt wurde, nachdem die DCs größtenteils auf Windows 2008 (R2) migriert waren.

Konfiguration in der MMC “Active Directory Users and Computers” > Doppel-Klick Users > Properties > Tab Profile > Eingabefeld "Logon script: "

Beispiel:

user_logonscript

Ohne weitere Fehlermeldung oder Events wurde das LogonScript immer dann nicht ausgeführt, wenn die User Variable %LOGONSERVER% auf einen Windows 2008 Domain Controller gezeigt hat. Wurde ein Windows Server 2003 DC verwendet, gab es das Problem nicht.
Prüfen, welchen Anmeldeserver er hat, kann der Users ja recht schnell im Command Prompt mittels:
SET LOGONSERVER

Wie kommt das jetzt und warum erst ab Windows Server 2008 als DC?
Nun, aus dem obigen Property Beispiel kann man sehen, daß unter “Logon Script: ” nur der Scriptname eingetragen ist. Der Userinit Prozess muß daher beim Logon erst selbst den Pfad dorthin zusammenbauen. Dazu ließt er die User Variable %LOGONSERVER% ein, welche jedoch nur den NetBios Namen des authentifizierenden DCs wiedergibt. Dazu kommt dann das default DC Share NETLOGON und der Scriptname. Der Netzwerkpfad wird so zu: \\NetBios_DCName\Netlogon\LogonScript.cmd 
Im Anschluß versucht Userinit dann den NetBios_DCName eben auch nur über NetBios Namensauflösung zu verwenden – und genau das ist der Haken.

Per Default ist ab Windows Server 2008 der WINS Client nicht aktiviert. Selbst wenn WINS Server implementiert sind, registrieren sich die Windows 2008 DCs so nicht automatisch und die NetBios Namensauflösung schlägt fehl.

Lösungen:

  • Clientseitig kann man bei Windows XP und ab Vista auf die Einstellung Allow-LogonScript-NetbiosDisabled=1 zurückgreifen, als GPO "Computer Configuration\Administrative Templates\System\Scripts\Allow LogonScripts with NetBIOS disabled" , siehe Artikel 918495 “When you try to log on interactively to Windows, the user object logon script does not run”, https://support.microsoft.com/default.aspx?scid=kb;EN-US;918495 , welche jedoch nicht für Windows Server 2003 zu Verfügung steht.
  • Alternativ Scripts im User Objekt mit kompletten FQDN Domain DFSN Pfaden definieren, also z.B. \\CONTOSO.COM\Netlogon\LogonScript.cmd, oder am besten aber gleich per Group Policy GPO Logon Script. Allerdings muß man zu ersterem die Benutzerattribute im Active Directory anpassen.
  • Letzte Alternative wegen NetBios Abhängigkeit - DC-seitig für Windows Server 2008 den WINS Client aktivieren und damit die WINS Namensauflösung für die Clients, bzw. Userinit, wieder ermöglichen.

Zu welcher Lösung man greift ist schon fast Geschmackssache. Funktionieren sollten sie alle.

Damit gutes Gelingen!
Euer Rol