Windows 2003 Shell Scripting

Scripting-Hilfe für ActiveDirectory

Benutzer-Account (de)aktivieren

Dieses Script ist wieder ein Goodie für alle Administratoren, die noch Windows-2000-Systeme betreuen, aber auch eine schöne Demonstration, wie viel Komfort die neuen Kommandos der Shell unter Windows Server 2003 bringen. Nachdem wir das Script vorgestellt haben, verraten wir Ihnen weiter unten, was Sie unter Windows Server 2003 für das gleiche Ergebnis tun müssen.

Parameter

  • %1 = der Text „enable“ oder „disable“

  • %2 = ADSI-Pfad zum Benutzerobjekt

Code

@echo off
if /i !%1 == !enable goto enable
if /i !%1 == !disable goto disable
echo Unbekanntes Kommando "%1", Abbruch.
exit /b

:enable
set mask= ^& 0x8FFFFFD
goto getdata

:disable
set mask= ^| 0x2
goto getdata

:notfound
echo Could not find object "%2" in AD, exiting.
goto :eof
:getdata
ldifde -f output.ldf -d %2 -r "(objectClass=user)" –l
userAccountControl > log.txt
type log.txt | find /i "no entries found" > nul
if not %errorlevel% == 1 goto notfound

:cont
for /F "tokens=1,2" %%f in (output.ldf) do if /i !%%f ==
!userAccountControl: set value=%%g

set /A value="%value% %mask%"
echo Changing userAccountControl to: %value%

:: now build new ldif file
type output.ldf | find /i "dn:" > input.ldf
echo changetype: modify>> input.ldf
echo replace: userAccountControl>> input.ldf
echo userAccountControl: %value%>> input.ldf
echo ->> input.ldf

ldifde -i -f input.ldf

Funktion

Aufgerufen wird das Script beispielsweise so:

account.bat disable "CN=Franz
Testhuber,cn=users,dc=shellbook,dc=com"

Windows Server 2003

Und hier die versprochene Kommandozeile für Windows Server 2003:

:: aktivieren eines kontos:
dsmod user "cn=User,ou=ouname,dc=domain,dc=com" -
disabled no

:: deaktivieren eines kontos
dsmod user "cn=User,ou=ouname,dc=domain,dc=com" -
disabled yes

Wie Sie sehen, ist die Shell mittlerweile durchaus brauchbar, und Sie müssen nicht für jede Kleinigkeit WSH-Programmierung lernen (wenn Sie etwas Zeit haben, sollten Sie dies natürlich trotzdem tun, um Ihr Wissen zu erweitern).

Damit haben wir auch gleich elegant den Übergang zu den neuen ds*-Kommandos von Windows Server 2003geschaffen, welche die Verwaltung des AD wesentlich erleichtern.