vitalik_1984 10 Geschrieben 18. Oktober 2006 Melden Teilen Geschrieben 18. Oktober 2006 HAllo Leute das script ist wunderbar. Nun stehe ich vor einem anderem Problem. Das Script lässt sich ausführen aber leider werden die User auf der lokalen Maschine erstellt. Was muss ich machen das dieses Script auch die User die in der txt Datei stehen auf einem entferntem Rechner erstellet? Hier das Script: ' (C) 2005 by Markus Kafurke ' marka-it.net msg = "Kurzbeschreibung:" & vbCr & "Dieses Skript legt automatisiert neue Konten an und liest die dafür nötigen Angaben aus A:\user.txt ." & vbCr & vbCr & "Skript jetzt ausführen?" antwort = MsgBox(msg, vbYesNo + vbQuestion) if antwort = vbNo then MsgBox "Abbruch", vbExclamation WScript.Quit end if protokoll = "A:\protokoll.txt" ' Das WScript.Network-Objekt liefert den Namen des Computers, ' der als Vorgabe angeboten wird 'SYS: Windows Script Host Runtime Library Set net = CreateObject("WScript.Network") ComputerName = InputBox("Bitte geben Sie den Computernamen ein!",,net.ComputerName) On Error Resume Next Set computer = GetObject("WinNT://" & ComputerName & ",computer") If Err.number = 0 Then MsgBox "Verbindung hergestellt." Else MsgBox "Keine Verbindung zu " & ComputerName WScript.Quit End If On Error Goto 0 dateiname = InputBox("Wo liegen die Kontoinformationen?",,"A:\user.txt") ' Datei öffnen 'SYS: Microsoft (r) Script Runtime Set fs = CreateObject("Scripting.FileSystemObject") If Not fs.FileExists(dateiname) Then MsgBox "Die Datei existiert am angegebenen Ort nicht!" WScript.Quit End If Set infos = fs.OpenTextFile(dateiname) ' Protokolldatei öffnen Set output = fs.CreateTextFile(protokoll, True) ' Datei zeilenweise bis zum Ende (atEndOfStream) lesen: Do Until infos.AtEndOfStream ' eine Zeile einlesen zeile = infos.ReadLine ' Informationen durch Semikola splitten details = Split(zeile, ";") ' Konto anlegen Set kontoneu = computer.Create("User", Trim(details(0))) kontoneu.SetPassword Trim(details(1)) kontoneu.Description = Trim(details(2)) On Error Resume Next kontoneu.SetInfo If Err.number = 0 Then WriteLog details(0) & " angelegt." AddToGroup Trim(details(3)), kontoneu.ADsPath Else WriteLog details(0) & " konnte nicht angelegt werden!" End If Err.Clear On Error Goto 0 Loop ' Dateien schließen infos.Close output.Close ' Protokoll anzeigen: 'SYS: Microsoft (r) Script Runtime Set wshshell = CreateObject("WScript.Shell") wshshell.Run """" & protokoll & """" Sub AddToGroup(gruppenname, kontoname) On Error Resume Next Set gruppe = GetObject("WinNT://" & ComputerName & "/" & gruppenname & ",group") gruppe.Add kontoname gruppe.SetInfo If Err.number = 0 Then WriteLog "Konto ist Mitglied in Gruppe " & gruppenname Else WriteLog "Konto konnte nicht zum Mitglied in Gruppe " & gruppenname & " gemacht werden." End If Err.Clear End Sub Sub WriteLog(text) ' eine Zeile ins Protokoll schreiben output.WriteLine text End Sub Gruß lewej Zitieren Link zu diesem Kommentar
dippas 10 Geschrieben 18. Oktober 2006 Melden Teilen Geschrieben 18. Oktober 2006 Hallo Lewej, um wieviele User/Maschinen geht es denn hier? Bei sehr vielen Usern/Maschinen stellt sich mir die Frage, warum kein AD vorhanden ist, bei wenigen Usern/Maschinen stellt sich mir die Frage, warum ein Script eingesetzt wird. Um User auf einem anderen rechner einzurichten, kannst Du z.B. unter Rechte Maus-Taste auf Arbeitsplatz/Verwalten die Computerverwaltung öffnen und gleich an oberster Stelle des Baums Computerverwaltung (lokal) mit Rechte Maus "Verbindung mit anderen Computer herstellen ..." einen anderen Computer verwalten und auch User anlegen. grüße dippas Zitieren Link zu diesem Kommentar
vitalik_1984 10 Geschrieben 18. Oktober 2006 Autor Melden Teilen Geschrieben 18. Oktober 2006 Ein Script? Weil nicht jeder Kunde den wir haben eine AD hat und manchmal müssen wir 30 Schulungsrechner für 30 Verschiedene User-Gruppen erstellen. Deshalb wollen wir aus dem Netz durch einfache eingabe des Rechnernamens direkt 30 User anlegen. Gruß lewej Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 18. Oktober 2006 Melden Teilen Geschrieben 18. Oktober 2006 Nun, man könnte das Skript vom Administrator- oder Dozentenrechner aus starten auf den WS per psexec, remote oder rcmd. Man könnte das Skript beim Starten der Maschinen auch per lokale Gruppenrichtlinie in der Computerkonfiguration starten und eine Prüfung auf das Vorhandensein der Datei mit den Benutzerdaten auf der Adminkonsole prüfen. Zitieren Link zu diesem Kommentar
woiza 10 Geschrieben 18. Oktober 2006 Melden Teilen Geschrieben 18. Oktober 2006 ComputerName = InputBox("Bitte geben Sie den Computernamen ein!",,net.ComputerName) On Error Resume Next Set computer = GetObject("WinNT://" & ComputerName & ",computer") If Err.number = 0 Then MsgBox "Verbindung hergestellt." Else MsgBox "Keine Verbindung zu " & ComputerName WScript.Quit End If On Error Goto 0 Hi, da ist doch der Remotezugriff. Hier kommt doch ne Inputbox, in die du den Namen des betreffenden Rechners eingeben kannst. Funktioniert das nicht? Gruß woiza Zitieren Link zu diesem Kommentar
vitalik_1984 10 Geschrieben 18. Oktober 2006 Autor Melden Teilen Geschrieben 18. Oktober 2006 Man kann nur den Rechnernamen der lokalen Maschine eingeben!! Gibt man den entfernten rechner an stellt er keine Verbindung her!! Und schmeißt mir die Meldung konnte nicht Verbinden. Zitieren Link zu diesem Kommentar
marka 587 Geschrieben 18. Oktober 2006 Melden Teilen Geschrieben 18. Oktober 2006 Habe das im Netzwerk schon auf mehreren PCs getestet, und es klappt auch remote. Vorraussetzung ist, dass die Maschinen kein Windows NT haben, da dieses Script auf 2000/XP optimiert ist. (Auch, wenn im Script "WinNT:" auftaucht, das ist nur der sogenannte NT-Provider) Außerdem muss die Namensauflösung passen, versuch's alternativ mal mit der IP-Adresse. Es kann auch noch andere Gründe haben: Bist Du auf der Remotemaschine Administrator? Und ein Grund, den ich jetzt im Kopf habe und erst nachschlagen muss, sorry... Zitieren Link zu diesem Kommentar
vitalik_1984 10 Geschrieben 24. Oktober 2006 Autor Melden Teilen Geschrieben 24. Oktober 2006 Also bei mir geht es noch immer nicht. Ich kann mich zwar auf die Maschine verbinden aber die User können nicht erstelllt werden. UND was meinst du mit Administrator an der remote maschine. Wenn du damit meinst ob der User mit dem ich lokal am Rechner angemeldet bin auch auf der Remotemaschine vorhanden ist, nein das ist er nicht. Woran kann es liegen das ich mich zwar verbinden kann aber die User werden nicht angelegt? Zitieren Link zu diesem Kommentar
woiza 10 Geschrieben 24. Oktober 2006 Melden Teilen Geschrieben 24. Oktober 2006 Woran kann es liegen das ich mich zwar verbinden kann aber die User werden nicht angelegt? Deshalb: UND was meinst du mit Administrator an der remote maschine. Wenn du damit meinst ob der User mit dem ich lokal am Rechner angemeldet bin auch auf der Remotemaschine vorhanden ist, nein das ist er nicht. Der User, mit dem du das Skript ausführst, also im Normalfall der angemeldete, muss Adminberechtigungen auf dem entfernten Rechner haben. Es muss also der gleiche Benutzer mit gleichem Passwort auf der Remotemaschine existieren. Ist ja auch klar, sonst könnte ja jeder Dödel per Skript auf deinem Rechner sich nen Benutzer verschaffen. Erste Regel beim Skripten: Das Skript darf nur das, was der User auch so darf. Alternativ kannst du beim Skripten mit dem WinNT-Provider auch Creds übergeben: siehe auch: Technet Hier wäre folgender Codeschnipsel interessant: strComputer = "WinNT://atl-ws-01” strUser = "Administrator" strPassword = "4rTGh2#1" Set objDSO = GetObject("WinNT:") Set objComputer = objDSO.OpenDSObject _ (strComputer, strUser, strPassword, _ ADS_SECURE_AUTHENTICATION OR ADS_USE_ENCRYPTION) Falls noch Fragen sind, her damit! Gruß woiza Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.