Så er jeg tilbage igen og har leget lidt videre med tingene.
Husk at samlet.txt hele tiden skal indeholde alle ansatte. Når en dag nogen holder op af den enne eller anden grund skal du blot slette navnet fra filen og derfter køre filen slet.vbs. Du skal blot angive vedkommendes login. Den sletter brugeren fra OU'et og vedkommendes personlige mappe med indhold. Filer i fællesområder slettes ikke.
Slet.vbs:
' Whs-script til brugeroprettelser på Windows 2000 Server og Server 2003 ud fra tekstfil
' Søren Aagaard
' August 2004
' Version 1.4
dim dicini, aItems, aKeys, i
set dicini = parseINI("c:\administration\bruger\server.ini")
aItems = dicini.items
aKeys = dicini.keys
root = replace(aItems(0) & "",chr(34),"")
rod_drev_e=replace(aItems(1) & "",chr(34),"")
bruger_rod_e=replace(aItems(2) & "",chr(34),"")
sDomain=replace(aItems(3) & "",chr(34),"")
sServer=replace(aItems(4) & "",chr(34),"")
share_navn=replace(aItems(5) & "",chr(34),"")
pwlength=replace(aItems(6) & "",chr(34),"")
profiltype=replace(aItems(7) & "",chr(34),"")
profilmappe=replace(aItems(8) & "",chr(34),"")
root = replace(root & "",chr(32),"")
rod_drev_e=replace(rod_drev_e & "",chr(32),"")
bruger_rod_e=replace(bruger_rod_e & "",chr(32),"")
sDomain=replace(sDomain & "",chr(32),"")
sServer=replace(sServer & "",chr(32),"")
share_navn=replace(share_navn & "",chr(32),"")
pwlength=replace(pwlength & "",chr(32),"")
profiltype=replace(profiltype & "",chr(32),"")
profilmappe=replace(profilmappe & "",chr(32),"")
on error resume next
Set oDomain = GetObject("
WinNT://" & sDomain)
oDomain.Filter = Array("User")
Dim filesys
Set filesys = WScript.CreateObject("Scripting.FileSystemObject")
Set WshShell = WScript.CreateObject("WScript.Shell")
hvemsp=""
hvem = InputBox("Hvem skal slettes?" & vbcrlf & vbcrlf & "Brugerens personlige filer og eventuelle profilmappe slettes ", "Sletning af enkeltbruger på et Windows 2000/03 server.","")
if isempty(hvem) then
wscript.quit
end if
hvemsp = rod_drev_e & bruger_rod_e & "\" & hvem
Set User = GetObject("
WinNT://" & sDomain & "/" & hvem )
Call oDomain.Delete("User", hvem)
txt = hvem & " blev slettet fra domænet " & sDomain & vbcrlf
if filesys.FolderExists(hvemsp) Then
filesys.DeleteFolder hvemsp, TRUE
txt = txt & "Mappen " & hvemsp & " blev slettet." & vbcrlf
end if
if len(profilmappe) >1 then
profilmappe = profilmappe & "\" & hvem
filesys.DeleteFolder profilmappe, TRUE
txt = txt & "Profilmappen " & profilmappe & " blev slettet." & vbcrlf
end if
if len(tsprofilmappe) >1 then
tsprofilmappe = tsprofilmappe & "\" & hvem
filesys.DeleteFolder tsprofilmappe, TRUE
txt = txt & "TS profilmappen " & tsprofilmappe & " blev slettet." & vbcrlf
end if
if len(pershare) >1 then
if uCase(btype) = "P" then
pershareu = pershare & "\" & hvem & "-udbakke"
filesys.DeleteFolder pershareu, TRUE
persharei = pershare & "\" & hvem & "-indbakke"
filesys.DeleteFolder persharei, TRUE
txt = txt & "Mapperne " & pershareu & " og " & persharei & " blev slettet." & vbcrlf
end if
end if
wscript.echo txt
Function parseINI(sIniFilename)
on error resume next
Dim fso, tsIni, iEquals, sKey, sVal
Set parseINI = Wscript.CreateObject("Scripting.Dictionary")
Set fso = Wscript.CreateObject("Scripting.FileSystemObject")
Set tsIni = fso.openTextFile(sIniFilename)
Do while not tsIni.AtEndOfStream
sLine = Trim(tsIni.ReadLine)
If sLine <> "" Then
If Left(sLine, 1) = "'" Then
Else
iEquals = InStr(1, sLine, "=")
If (iEquals <=1) Then
Wscript.Echo "Ugyldig linie: " & sLine
Else
sKey = Left(sLine, iEquals - 1)
sVal = Right(sLine, Len(sLine) - iEquals)
parseINI.Add sKey, sVal
End if
End if
End if
Loop
End Function