maffinity
Goto Top

Admin-Passwort über VB-Script festlegen

Hallo zusammen,

ich habe hier im Forum bereits ein Script gefunden für das festlegen des Administrator-Passwortes auf einem bestimmten Rechner. Meine Frage wäre dazu folgende. Da wir probieren bei jedem Rechner ein anderes PW festzulegen, haben wir es bisher so gehandhabt, dass wir eine Zusammensetzung aus einem PW mit dem Rechnernamen als Passwort nehmen. Ist es über ein VB-Script auch möglich den entsprechenden Rechnernamen auszulesen und mit der von uns festgelegten Zeichenfolge zu einem Administratorpasswort zu kombinieren?

Sprich:

Rechner1 soll das Passwort : "PassRechner1"
Rechner2 soll das Passwort : "PassRechner2"

automatisch durch das Script zugewiesen bekommen ohne das wir jedes Mal das vorher abwandeln müssen.

Ich wäre über einen Tipp von euch sehr dankbar.

Gruß
Maffinity

Content-Key: 142370

Url: https://administrator.de/contentid/142370

Printed on: April 16, 2024 at 19:04 o'clock

Mitglied: 77559
77559 May 07, 2010 at 08:46:26 (UTC)
Goto Top
Hallo Maffinity,

klar ist das möglich. Aber ohne jetzt das Script zu kennen kann man dir schlecht sagen welche Änderungen du vornehmen sollst.

Wenn das Script eine Liste der Computer abarbeitet oder beim Login läuft, hast du doch den Computernamen, wo ist das Problem?

Gruß
LotPings
Member: Maffinity
Maffinity May 07, 2010 at 10:43:26 (UTC)
Goto Top
'vbscript  
strComputer = "."  
Set objUser = GetObject("WinNT://" & strComputer & "/Administratör, user")  

objUser.SetPassword "Pass_Rechnername"  
objUser.SetInfo



Das ist das Script, das wir zur Zeit nutzen um das Passwort mit Hilfe von Altiris für den Admin festzulegen. (Administratör, da es eine schwedische Firma ist) und bei dem Punkt:


objUser.SetPassword "Pass_Rechnername"

müssen halt zur Zeit jedes Mal, bevor das Script an den Rechner schicken, den Rechnernamen anpassen.

Lässt sich das umgehen?
Mitglied: 77559
77559 May 07, 2010 at 11:55:54 (UTC)
Goto Top
Zitat von @Maffinity:
Hallo,
Bitte formatiere deine Code zur besseren Les-/Referenzier-barkeit unbedingt mit den dafür vorgesehenen aus der Formatierungshilfe

Lässt sich das umgehen?
Klar, ein Weg wäre über die Environmentvariable. Computername (ungetestet)
'vbscript  
Set oShell = CreateObject( "WScript.Shell" )  
strComputer = oShell.ExpandEnvironmentStrings("%ComputerName%")  
Set objUser = GetObject("WinNT://" & strComputer & "/Administratör, user")  

objUser.SetPassword "Pass_" & strComputer  
objUser.SetInfo

Gruß
LotPings
Member: Maffinity
Maffinity May 07, 2010 at 12:57:37 (UTC)
Goto Top
Danke dir vielmals... das wird uns auf jeden Fall jetzt ein paar minuten pro Arbeitsplatz einsparen.

PS: Habe den Code entsprechend angepasst und werde das beim nächsten Mal beachten.
Member: DerWoWusste
DerWoWusste May 07, 2010 at 17:27:54 (UTC)
Goto Top
Moin.
Ginge natürlich auch mit einem Startskript (.bat) und dem Befehl
net user administratör %computername%password
vorher noch die codepage ändern: chcp 1252
wegen des Ös und danach wieder chcp 850.

Achtung: Bei mir wurde der Computername komplett in Großbuchstaben in's Kennwort gepackt.

Ich würde von dem Kennwortansatz absehen. Hat ein Angreifer eins, hat er alle, genau so, wie wenn man das selbe Kennwort für alle verwendet - die Methode ist zu durchsichtig.
Am besten kein lokales aktives Adminkonto lassen, nur Domänenadmins.
Mitglied: 77559
77559 May 07, 2010 at 17:54:22 (UTC)
Goto Top
Zitat von @DerWoWusste:
Achtung: Bei mir wurde der Computername komplett in Großbuchstaben in's Kennwort gepackt.

Ich würde von dem Kennwortansatz absehen. Hat ein Angreifer eins, hat er alle, genau so, wie wenn man das selbe Kennwort
für alle verwendet - die Methode ist zu durchsichtig.
Am besten kein lokales aktives Adminkonto lassen, nur Domänenadmins.

Da stimme ich zu, um zumindest eine definierte Groß-/Kleinschreibung zu haben und etwas obfuscation zu betreiben schlage ich z.Bsp. vor:
Set oShell = CreateObject( "WScript.Shell" )  
strComputer = oShell.ExpandEnvironmentStrings("%ComputerName%")  
Set objUser = GetObject("WinNT://" & strComputer & "/Administratör, user")  

if Len(strComputer) > 2 Then
  strPass = "Pass_" & _  
    Lower(Left(strComputer,1) & _
    Upper(Mid(strComputer,1,Len(strComputer-2) & _
    Lower(Right(strComputer,1)
else
  strPass = "Pass_" & _  
  Lower(strComputer)
end if

objUser.SetPassword  strPass
objUser.SetInfo

Wenn mahr als 2 Zeichen im Computername 1. und letzter Klein (falls es keine Ziffer ist) / Rest groß sonst alles klein.

Oder jedes beliebige ander Schema.
Bringt bei brute force Angriffen kaum etwas, aber potentiellen Zuschauern wird es etwas schwerer gemacht.

Gruß
LotPings
Member: Maffinity
Maffinity May 11, 2010 at 15:01:14 (UTC)
Goto Top
Danke nochmal für die Hilfe...

Hätte da aber noch eine Frage: Ich wollte eigentlich nur einen Teil des Computernamen für das Passwort nutzen.

Beispiel: Rechner: ABC123 -> Soll das Passwort : "Pass_123" zugewiesen bekommen. Habe schon überlegt einen Teil des des Strings wegzuschneiden sprich die ersten 3 Zeichen, doch weiß ich leider nicht mehr ob bzw. wie ma dass in das Script eingebaut bekommt.

Ich wäre sehr erfreut, wenn ihr mir da auf die Sprünge helfen hellfen könntet mit welchen Befehl man das tun könnte.

Danke und Gruß
Maffinity
Mitglied: 77559
77559 May 11, 2010 at 15:12:00 (UTC)
Goto Top
Hallo Maffinity,

die Funktionen
in den Zeilen 7-9 oben sind doch eigentlich selbsterklärend, oder nicht?

Gruß
LotPings
Member: DerWoWusste
DerWoWusste May 11, 2010 at 21:05:33 (UTC)
Goto Top
Darf ich fragen, warum Du diese lokalen Admins nutzen willst?