AD SiteName für Anmeldescript abfragen
Hallo Leute,
leider habe ich noch nichts brachbares gefunden. Wir haben eine AD mit unterschiedlichen DomainControllern. Es fängt beim 2003er R1 an geht über den 2008er (32/64bit) bis 2008R2 64bit. Mein Problem ist nun folgendes. Das Unternehmen wächst und wächst und wir haben einen zentralen AD Account mit dem wir Software installieren. Unsere CD-Ablage replizieren wir an die verschiedenen AD Sites, so dass Sie lokal vorliegen. Nun muss ich unsere Anmeldescript für den Installationaccount anpassen. Dazu soll bei der Anmeldung die AD Site abgefragt werden. Je nachdem soll dann das Laufwerk x auf Server 1 ein verweisen und wenn sich ein Kollege an einem anderen Standort anmeldet soll Laufwerk x auf Server 2 verweisen. Ich weiß das man den Sitename mit dsquery abfragen kann, aber das funktioniert auf normalen WinXP Clients nicht. Deshalb meine Frage, ob Ihr noch eine Alternative kennt?
Gruß
derhoeppi
leider habe ich noch nichts brachbares gefunden. Wir haben eine AD mit unterschiedlichen DomainControllern. Es fängt beim 2003er R1 an geht über den 2008er (32/64bit) bis 2008R2 64bit. Mein Problem ist nun folgendes. Das Unternehmen wächst und wächst und wir haben einen zentralen AD Account mit dem wir Software installieren. Unsere CD-Ablage replizieren wir an die verschiedenen AD Sites, so dass Sie lokal vorliegen. Nun muss ich unsere Anmeldescript für den Installationaccount anpassen. Dazu soll bei der Anmeldung die AD Site abgefragt werden. Je nachdem soll dann das Laufwerk x auf Server 1 ein verweisen und wenn sich ein Kollege an einem anderen Standort anmeldet soll Laufwerk x auf Server 2 verweisen. Ich weiß das man den Sitename mit dsquery abfragen kann, aber das funktioniert auf normalen WinXP Clients nicht. Deshalb meine Frage, ob Ihr noch eine Alternative kennt?
Gruß
derhoeppi
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 147671
Url: https://administrator.de/forum/ad-sitename-fuer-anmeldescript-abfragen-147671.html
Ausgedruckt am: 11.04.2025 um 14:04 Uhr
12 Kommentare
Neuester Kommentar

Es funktioniert auf normalen XP-Clients nicht, weil's dort nicht installiert ist. Haben die Rechner oder DCs an den verschiedenen Standorten ein eigenes System für Computernamen? Wenn ja, könntest du %COMPUTERNAME% oder %LOGONSERVER% abfragen.

IF "%LOGONSERVER%"=="DEINDC" (
)
)

Moin,
Wobei - wenn der dc im einen standort ausfällt und dann die Scripte nicht laufen sollen, muß man anders reagieren.
Also eine Kombination aus den beiden Wegen.
Gruß
Zitat von @48507:
IF "%LOGONSERVER%"=="\\DEINDC" (
)
oderIF "%LOGONSERVER%"=="\\DEINDC" (
)
ping %computername% -n 1 |find "192.168.10" && goto 10ernetz
ping %computername% -n 1 |find "192.168.20" && goto 20ernetz
rem usw.
Also eine Kombination aus den beiden Wegen.
Gruß

You are damn rite 
es gibt nur eine OU in der sich die Rechner befinden
Und wo ist da das Problem? Du sollst das GPO ja nicht auf eine OU verknüpfen sondern auf einen Standort. Wenn im AD alles stimmt und korrekt konfiguriert ist, wird das jeweilige GPO nur angewandt, wenn sich ein Client am jeweiligen Standort befindet. Damit kann der Client dann das Script ausführen, dass für den jeweiligen Standort gedacht ist.
Noch besser (es geht doch um Softwareverteilung?!) erstellt man die Verteilungs-GPOs getrennt für jeden Standort und kann damit die verschiedenen lokalen Quellen angeben. Geschickter geht es eigentlich nicht.
Wenn es komplizierter sein muss kann man auch noch bspw. mit WMI-Filtern arbeiten und darüber dann die IP-Adresse abfragen und entsprechende Reaktionen konfigurieren. Das wäre aber m.E. schon wieder unnötig kompliziert.
Manuel

Moin,
*hmm* also das ist keine vbs sonder eine cmd.
vbs als Loginscript ist eher nicht mein Fall
Und logonscripte mit Messageboxen schon zweimal nicht
den Unterschied von bat/cmd und einem vbs erkennt man doch auf den ersten Blick - bei vbs läuft nix - was vorher nicht definiert wurde.
Gruß
derhoeppi
Zitat von @derhoeppi:
Wenn ich das:
IF "%LOGONSERVER%"=="\\DEINDC" (
)
in eine vbs Datei packe, dann gibt er mir nichts aus. Nun wollte ich einfach nur eine msgbox haben, die mir den Logonserver
ausgibt. Leider gibt er mir da schon keinen Wert aus.
Wenn ich das:
IF "%LOGONSERVER%"=="\\DEINDC" (
)
in eine vbs Datei packe, dann gibt er mir nichts aus. Nun wollte ich einfach nur eine msgbox haben, die mir den Logonserver
ausgibt. Leider gibt er mir da schon keinen Wert aus.
*hmm* also das ist keine vbs sonder eine cmd.
vbs als Loginscript ist eher nicht mein Fall
Und logonscripte mit Messageboxen schon zweimal nicht
den Unterschied von bat/cmd und einem vbs erkennt man doch auf den ersten Blick - bei vbs läuft nix - was vorher nicht definiert wurde.
Gruß
derhoeppi

Select Case kann man mit vielen IFs umgehen
Wie dem auch sei:
dim WshShell
dim dc
set WshShell = CreateObject("WScript.Shell")
dc = WshShell.ExpandEnvironmentStrings("%LOGONSERVER%")
if dc = "\\DEINDC01" then
tu dies, tu jenes...
end if

Moin,
? sagt wer -jemand der vbs und vba nicht von Batch unterscheiden kann? 

Und in Batch bzw. Shell ist das auch nix dolles.
Gruß
? sagt wer -
sondern auf die Kommandozeile schwörst,
- lese bitte genauer - vbs als Loginscript ist eher nicht mein Fall
dann kannst du mir vielleicht ein Konstrukt verraten mit dem ich select case in der Kommandozeile abbilde.
- kommt auf den case an...
In vba ist es relativ einfach, aber in einer batch habe ich davon noch nie etwas gesehen.
VBA ist das VB für Applications, also "Office"Und in Batch bzw. Shell ist das auch nix dolles.
Gruß