Hey,
ich habe leider noch die "Ehre" mich mit NT4 Server auf der Arbeit quälen zu dürfen. Wie jeder sicherlich weis, sind nützliche Tools für NT4 Server sehr Rar. Da wir allerdings davon noch nicht wegkommen, muss ich wohl etwas tricksen.
Ich habe eine GUI erstellt, mit dessen Hilfe ich mehrer Benutzer anlegen lassen kann.
Der bisherige Code ist :
Spoiler anzeigen
#include <GUIConstants.au3>
#include <file.au3>
#include <GuiListView.au3>
#include <date.au3>
GUICreate("UserPad - Benutzer", 450, 500)
[/autoit] [autoit][/autoit] [autoit];///////////////////////Tab für Benutzerverwaltung///////////////////////
$Tab_UserInterface = GUICtrlCreateTab(1,1,450,500)
$Tab_UserItem = GUICtrlCreateTabItem("Benutzer anlegen")
;///////////////////////Auswahl der TXT Datei für Benutzer///////////////////////
$Tab_UserItem_Input_TXTFile = GUICtrlCreateInput("", 10, 30,250,20)
$Tab_UserItem_Btn_BrowseTXTFile = GUICtrlCreateButton("Durchsuchen", 270, 27)
$Tab_UserItem_Btn_CreateUser = GUICtrlCreateButton("Benutzer anlegen", 350, 27)
GUICtrlSetState(-1, $GUI_DISABLE)
GUICtrlCreateLabel ("Anzahl der ausgelesenen Benutzer: ", 10, 60)
$Tab_UserItem_Label_Listview_items = GUICtrlCreateLabel ("0", 190, 60, 40)
$Tab_UserItem_Label_Percent = GUICtrlCreateLabel("0",410,60,40)
$Tab_UserItem_Label_PercentSign = GUICtrlCreateLabel("%", 430, 60, 10)
$Tab_UserItem_Progressbar_UserState = GUICtrlCreateProgress(10, 80, 430, 10, $PBS_SMOOTH)
;///////////////////////Listbox mit allen in der TXT-Datei enthaltenen Benutzern///////////////////////
$Tab_UserItem_Listview_User = GUICtrlCreateListView("Benutzername |Nachname |Vorname |Passwort |Klasse", 10, 100, 430, 300)
;///////////////////////Festlegen der Spalten breiten im ListView Feld///////////////////////
_GUICtrlListViewSetColumnWidth ($Tab_UserItem_Listview_User, 0, 120);Benutzername
_GUICtrlListViewSetColumnWidth ($Tab_UserItem_Listview_User, 1, 80);Nachname
_GUICtrlListViewSetColumnWidth ($Tab_UserItem_Listview_User, 2, 80);Vorname
_GUICtrlListViewSetColumnWidth ($Tab_UserItem_Listview_User, 3, 70);Passwort
_GUICtrlListViewSetColumnWidth ($Tab_UserItem_Listview_User, 4, 70);Klasse
;///////////////////////Generieren von Tabs///////////////////////
$Tab_UserCareItem = GUICtrlCreateTabItem("Benutzerverwaltung")
$Tab_UserTemplate = GUICtrlCreateTabItem("Benutzervorlagen")
[/autoit] [autoit][/autoit] [autoit];///////////////////////Variable für Sortierfunktion///////////////////////
[/autoit] [autoit][/autoit] [autoit]Dim $B_DESCENDING[_GUICtrlListViewGetSubItemsCount ($Tab_UserItem_Listview_User) ]
[/autoit] [autoit][/autoit] [autoit]GUISetState()
[/autoit] [autoit][/autoit] [autoit]While 1
$msg = GUIGetMsg()
Switch $msg
;///////////////////////Klicken des Buttons "Durchsuchen"///////////////////////
Case $Tab_UserItem_Btn_BrowseTXTFile
$Tab_UserItem_Dest_TXTFile = FileOpenDialog("Bitte wählen Sie eine Datei aus", "", "TXT-Datei (*.txt)")
GUICtrlSetData($Tab_UserItem_Input_TXTFile, $Tab_UserItem_Dest_TXTFile)
If $Tab_UserItem_Dest_TXTFile <> "" Then
$line = 1
GUICtrlSetState($Tab_UserItem_Btn_CreateUser, $GUI_DISABLE)
GUICtrlSetState($Tab_UserItem_Btn_BrowseTXTFile, $GUI_DISABLE)
GUICtrlSetState($Tab_UserItem_Input_TXTFile, $GUI_DISABLE)
While 1
$read = FileReadLine($Tab_UserItem_Dest_TXTFile,$line)
If @error = -1 Then ExitLoop
$fill = ""
$line = $line + 1
$split = StringSplit($read,";")
for $n = 1 to 5
$fill = $fill & $split[$n] & "|"
Next
GUICtrlCreateListViewItem($fill,$Tab_UserItem_Listview_User)
$Tab_UserItem_Listview_items = _GUICtrlListViewGetItemCount($Tab_UserItem_Listview_User)
GUICtrlSetData($Tab_UserItem_Label_Listview_items, $Tab_UserItem_Listview_items)
WEnd
Else
MsgBox(64, "Fehler", "Sie haben keine Datei ausgewählt")
EndIf
GUICtrlSetState($Tab_UserItem_Btn_CreateUser, $GUI_ENABLE)
GUICtrlSetState($Tab_UserItem_Btn_BrowseTXTFile, $GUI_ENABLE)
GUICtrlSetState($Tab_UserItem_Input_TXTFile, $GUI_ENABLE)
;///////////////////////Klicken des Buttons "Benutzer anlegen"///////////////////////
Case $Tab_UserItem_Btn_CreateUser
GUICtrlSetState($Tab_UserItem_Btn_CreateUser, $GUI_DISABLE)
GUICtrlSetState($Tab_UserItem_Btn_BrowseTXTFile, $GUI_DISABLE)
GUICtrlSetState($Tab_UserItem_Input_TXTFile, $GUI_DISABLE)
;///////////////////////Alle Benutzer aus der TXT-Datei werden hier angelegt///////////////////////
$objUser = ObjGet("WinNT://VPC_NT4SRV_HH")
For $i = 0 to $Tab_UserItem_Listview_items -1
;///////////////////////Rechnung für Progressbar///////////////////////
$Tab_UserItem_Calc_Progressbar = $i/($Tab_UserItem_Listview_items-1)*100
GUICtrlSetData($Tab_UserItem_Progressbar_UserState, $Tab_UserItem_Calc_Progressbar)
$Tab_UserItem_PercentString = StringSplit($Tab_UserItem_Calc_Progressbar, ".")
GUICtrlSetData($Tab_UserItem_Label_Percent, $Tab_UserItem_PercentString[1])
$Tab_UserItem_Listview_column = _GUICtrlListViewGetItemText($Tab_UserItem_Listview_User, $i)
$Tab_UserItem_split = StringSplit($Tab_UserItem_Listview_column,"|")
$NewUser = $objUser.Create("user",$Tab_UserItem_split[1])
$NewUser.FullName = $Tab_UserItem_split[3] &" "&$Tab_UserItem_split[2]
$NewUser.Description = $Tab_UserItem_split[5]&" Schüler - angelegt am "&_NowDate()&" um "&_NowTime()
$NewUser.SetPassword($Tab_UserItem_split[4])
$NewUser.SetInfo()
Next
;///////////////////////Erfolgesmeldung wenn Benutzer fertig angelegt wurden///////////////////////
MsgBox(0,"Anzahl", "Es wurden von insgesamt "& $Tab_UserItem_Listview_items &" Benutzern "& $i &" angelegt")
;///////////////////////Nach Erfolg Buttons freigeben, alle Items aus ListView löschen und Input löschen///////////////////////
_GUICtrlListViewDeleteAllItems ($Tab_UserItem_Listview_User)
GUICtrlSetState($Tab_UserItem_Btn_CreateUser, $GUI_ENABLE)
GUICtrlSetState($Tab_UserItem_Btn_BrowseTXTFile, $GUI_ENABLE)
GUICtrlSetState($Tab_UserItem_Input_TXTFile, $GUI_ENABLE)
GUICtrlSetData($Tab_UserItem_Input_TXTFile, "")
GUICtrlSetData($Tab_UserItem_Label_Listview_items, "0")
GUICtrlSetData($Tab_UserItem_Progressbar_UserState, "0")
GUICtrlSetData($Tab_UserItem_Label_Percent, "0")
;///////////////////////Sortierfunktion für ListView Feld///////////////////////
Case $Tab_UserItem_Listview_User
_GUICtrlListViewSort($Tab_UserItem_Listview_User, $B_DESCENDING, GUICtrlGetState($Tab_UserItem_Listview_User))
EndSwitch
If $msg = $GUI_EVENT_CLOSE Then ExitLoop
Wend
TO DO:
-----------------------------------------------------------
Benutzer anlegen:
- Einträge aus ListView löschen und hinzufügen ohne TXT Datei zu bearbeiten(ContextMenu und Doppelklick Action)
- Einbau Error Handle bei bereits existirenden Benutzern
- Bei Fehlern -> Erzeugen von LOG-Datei
Benutzerverwalten:
- Gruppen Zugehörigkeit ändern
- Passwort zurücksetzen
- Benutzer(-gruppen) löschen
- Benutzer editieren
Benutzervorlagen:
Dieser Punkt soll dazu dienen, dass ich eine Möglickeit habe ein "Template" anzulegen.
Was ich damit meine ist folgendes:
ein "Normaler"-Benutzer in einer Firma sieht meistens immer gleich aus. Er hat ein Loginscript, Homelaufwerk, Profilpfad etc.. Diese Einstellungen möchte ich definieren können, also quasi ein Benutzer aus der Abteilung X hat immer das Loginscript "AbteilungX.bat" und hat sein Homelaufwerk auf dem Pfad XYZ mit den Berechtigungen ZYX usw. Diese Einstellungen werden dann gespeichert (Speicherung in INI-Datei sehr wahrscheinlich). Beim anlegen neuer Benutzer, wähle ich dann das Template aus, was für den User gelten soll.
Zurzeit versuche ich mich an dem ListView Feld und verzweifle mal wieder. Vielleicht ergeht es auch einigen Admins wie mir und ihr habt noch Spaß mit NT4. Ich würde mich freuen über Vorschläge und über eure Unterstützung
Also dann Helft mir :]
Danke wie immer an alle.
Gruß
Marc