Jump to content

User auf enterntem Rechner anlegen ohne AD


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

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

Link zu diesem Kommentar

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

Link zu diesem Kommentar

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.

Link zu diesem Kommentar

 

 

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

Link zu diesem Kommentar

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...

Link zu diesem Kommentar

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?

Link zu diesem Kommentar
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

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...