# "Benutzer darf Kennwort nicht ändern" und anderes via WSH?



## JohnDoe (11. Oktober 2006)

Hallo Leute,

ich soll ein Script entwickeln, welches an einem lokalen Nutzer, welcher auf mehreren Rechner (peer to peer) existiert, die Option "Benutzer kann Kennwort nicht ändern" setzen. Leider finde ich bisher nur Lösungen für AD oder LDAP. Wir haben aber nur ein peer to peer.
Im Prinzip soll ich folgendes Umsetzen:
1. Script von einem PC im Netz starten mit einer Liste von Rechnernamen
2. Auf jedem PC ein Registryeintrag ändern oder hinzufügen
3. Einem lokalen Benutzer die Option "Benutzer kann Kennwort nicht ändern" aufdrücken
4. Wenn möglich, die Arbeitsgruppe ändern
5. Scheiben wischen und Öl nachsehen

Am besten wäre natürlcih, die Änderungen danach via zweitem Script noch zu überprüfen.

Ich hangel mich da grad stück für Stück durch und will erstmal die einzelnen Module schreiben. Nur, wie schon gesagt, finde ich kaum was...

Danke im voraus...


----------



## Security (11. Oktober 2006)

Ich kann mir nicht helfen, aber ich werde den Verdacht nicht los, das du damit nichts guten im Sinn hast. Ohne zustimmung des RemoteComputers wird dies wohl ohne, ausnutzung von Sicherheitslücken nicht möglich, Was du verlanngst ist fällt unter die Kategorie Hacken, oder schlimmer.
Egal 
Auf jeden fall wirst du bei Windows mit einigen Sicherheitsupdates kaum eine Möglichkeit finden ohne das der Remoteclient deine Anfrage bestätigen muss.

Wenn du vorher jedoch ein Backdoorprogramm (Trojaner), oder nennen wir es besser Remotecontroler, installierst, ist das kein Problem.

Der Code von BackOrfice ist für jeden offen, falls du solche änderungen häufiger vornehmen möchtest.

Allerdings rate ich dir von dieser Methode irgendwie, da es irgendwie nicht so "stielfoll" ist.
Guck doch mal ob du mit Hilfename, vom Windows Installer weiter kommst.


----------



## JohnDoe (11. Oktober 2006)

Was soll das denn heißen? Ich bin der verdammte Admin dieses Netzes. Außerdem kann man mit dem WSH nur Dinge ändern, welche man mit seinem Account auch per Hand machen kann.
Ich hab nur keinen Bock, die Einstellungen bei 200 Rechnern von Hand vorzunehmen.
Ich habe auch schon etwas gefunden, um neue User anzulegen. Und ich kenne schon die Option, welche gesetzt werden muss.
Nur leider weiß ich nicht, wie ich die Option setze und wie die Funktion des Computerobjektes zum bearbeiten eines Nutzeraccounts ist...


```
Const Computername = "."
SET Computer= GetObject("WinNT://"&Computername&",computer")
Computer.Filter = Array("user")

UserName = "testuser"
Password = "testuser"
FullName = "Test User"
Description = "Das ist ein Test."

CreateUser = True
For Each UserObject In Computer
If UCASE(UserObject.name) = UCASE(UserName) Then
CreateUser = False
End If
Next

If CreateUser Then
Set User = Computer.create("user", UserName)
'User.SetPassword Password
User.Fullname = Fullname
User.SetInfo
wsh.echo UserName & " angelegt."
Else
wsh.echo UserName & " existiert bereits."
End If
```

Der Parameter für das Konto ist:


```
Const UF_PASSWD_CANT_CHANGE = &H40
```

Möglicherweise hat doch noch jemand eine Idee...


----------



## Security (12. Oktober 2006)

Dann würde ich mir auf dauer vielleicht wirklich eine Einfachere Methode ausdenken. Obwohl wenn man überall nen Port zsätzlich nen Port offen hält und einen Server wenn auch schlafend laufen hat, zieht das zusätzliche Resource, allerdings macht sich dann auch eine Überwachung leichter. Du könntest so sorgar jeden Tastenanschlag mitziechnen. Zusätzlich könnte man auch alle Remotes gleichzeitig aktivieren und Commandstrings oder Files an alle senden.

Naja welche Sprache haben wir da überhaupt. Sieht mir auf den ersten Blick nach VBS, oder lieg ich da auf dem Holzweg?
Dein Sript kommt mir irgendwie komisch vor. Bei deinem Object Computer, must du doch erst in die Domain, bevor du an den Account kannst. Also WinNT://Domain/Account.
Abgesehen davon, kann man doch die Passworteinstellungen für ne Domain verwalten, oder?
Ich hab da grad mal gegooglet, und nen spannenden Link zu deinem Thema gefunden.
http://www.gfi.com/nsm/scripting/adsi/
Unter Samples findeste noch gute Beispiele. Viel glück, und sag bescheid wenn du weiter bist oder auch wenn nicht.


----------



## JohnDoe (12. Oktober 2006)

Ja, das ist VBS. Im Prinzip geht jede Sprache, welche das WSH unterstützt.
Eine Domäne ist nicht zwingend erforderlich, da es bei mir schon in einer Arbeitsgruppe geklappt hat.
Eine Extraport braucht man dazu nicht.
Es muss gehen, da ich wie schon gesagt, einen User bereits angelegt habe.


----------



## Security (12. Oktober 2006)

Nein nen extra Port, brauchst du nur bei ner Backdoorsolution, mit vbs ist das so schon in Ordnung.

Scnhick doch einfach mal das ganze Script.


----------



## JohnDoe (12. Oktober 2006)

Das ist das ganze Script


----------

