Batch: Abfrage ob Benutzer in AD-Gruppe bzw. gruppenspezifische Aufrufe

Problem:
Wer kennt das Problem nicht, man möchte enweder prüfen ob ein Benutzerin einer AD-Gruppe ist oder man möchte Gruppenabhängige Skripte schreiben um bestimmten Benutzer in bestimmten Gruppen bestimmte Abläufe zuzuordnen. Dabei soll auch keine Fremdsoftware zum Einsatz kommen und unter Win XP/Vista/7/2003/2008 (R2) laufen

Lösung:
Ich habe das ganze mit dem "net user"- und dem "find"-Befehl verwirklicht, da diese Befehle als Bordmittel vorhanden sind.
Folgendes Skript prüft, ob der Benutzer in der Gruppe "Mobil" ist und entsprechend wird eine Ausgabe gemacht.
Es ist genauso denkbar, dass man anstatt des "echo"-Befehls eine Anwendung startet oder einen anderen Befehl auszuführen.
@echo off
net user %username% /DOMAIN |find "Mobil"
if not errorlevel = 1 (GOTO MOBIL)

:DEFAULT
echo Benutze ist NICHT in der Gruppe Mobil
goto ENDE

:MOBIL
echo Benutzer ist in der Gruppe Mobil

:ENDE
Kategorien: Batch
Tags für diesen Artikel:

VBS / WSH Funktion um Array zu füllen

Problem :
Man möchte ein Array erstellen und das mehrmals im Skript mit einer ReDim Anweisung

Lösung :
Um den ganzen Code nicht immer in die Länge zu ziehen hier eine Funktion

Aufruf :
Davor muss ein Array definiert sein dann kann man die Funktion mit einer Textdatei als Parameter starten.
Die Textdatei wird dann zeilenweise eingelesen und das Array wird erstellt.

Dim TestArray : TestArray = Array()
TestArray = FillArray(Beispieldatei)


Funktion :

Function FillArray(CFG)
Dim ARRCnt : ARRCnt = 0
Dim ARR	   : ARR = Array()
If ObjFso.FileExists(CFG) Then
Set Dummy = ObjFso.OpenTextFile(CFG)
Do Until Dummy.AtEndOfStream
Zeile = Trim(Dummy.ReadLine)
If Not Left(Zeile,1) = "#" Then
ReDim Preserve ARR(UBound(ARR)+1)
ARR(ARRCnt) = Zeile
ARRCnt = ARRCnt + 1
End If
Loop
End If
FillArray = ARR
Set Dummy = Nothing
Erase ARR
End Function

“Das einzig sichere System müsste ausgeschaltet, in einem versiegelten und von Stahlbeton ummantelten Raum und von bewaffneten Schutztruppen umstellt sein.”
Gene Spafford (Sicherheitsexperte)