Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

VBScript für PW änderung der Lokalen Admins im Netzwerk

Anleitung Netzwerke Netzwerkmanagement

Mitglied: novae7

novae7 (Level 1) - Jetzt verbinden

01.08.2007, aktualisiert 07.09.2007, 17610 Aufrufe, 6 Kommentare

Inhalt


Nachdem ich sowas bisher nicht im Internet bzw hier im Forum gefunden hatte,
hab ich mit einem Kollegen ein Script gebastelt welches die Passwörter der Lokalen Adminacc`s im Netzwerk ändert.

Das Script besteht aus einer Access Datenbank+VBScript.

Die Datenbank

Die Datenbank beinhaltet die Rechnernamen und wann die Rechnerpasswörter das letzte mal geändert wurden.

Die Datenbank hat eine Tabelle und 4 Spalten.

DBName: computer.mdb
Tabellenname: Computer
Spaltennamen Typ
"Computer" Text
"pw" Datum/Uhreit
"Funktion" Text
"change" Zahl

  • Bei "Computer" steht der Computername
  • Bei "pw" wann das Passwort zuletzt geändert wurde
  • Bei "Funktion" kann man sich Notizen zum Rechner eintragen (z.B.: ChefRechner o.ä.)
  • Über "change" prüft er ob er das Passwort neu setzten muss bzw. ob es bereits gesetzt wurde.

Das Script


Das Script zieht sich aus der Datenbank alle Computernamen wo change auf "0" steht.
Dann wird Geprüft ob der Computer Online ist.
Falls der Computer Online ist ändert das Script das Lokale Administratorpasswort auf der Wert der im Script Angegeben ist, dann trägt es bei Datum das aktuelle Datum ein und ändert den change Wert auf "1"

Durch den Changewert wird verhindert das das Passwort bei jedem durchlaufen des Scriptes auf allen Computern neu gesetzt wird obwohl es schon gesetzt wurde.

01.
'#######################SCRIPT BEGINN########################### 
02.
 
03.
'Setzen von Lokalen Administratorpasswörtern bei PC`s die in der Datenbank angegeben sind 
04.
' ============================== 
05.
Option Explicit 
06.
'Deklarieren der Variablen 
07.
Dim DBConnection, SqlString, Ergebnismenge, Benutzer, Tabelle, computer, SqlString2, SqlString3 
08.
' Erstellen eines Connection-Objektes 
09.
Set DBConnection = CreateObject("ADODB.Connection") 
10.
' Öffnen der Verbindung zur Datenbank 
11.
' Die MDB-Datei muss im selben Verzeichnis liegen wie das Skript 
12.
DBConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=.computer.MDB;" 
13.
' Abfrage der Tabelle Computer 
14.
Set Tabelle = CreateObject("ADODB.Recordset") 
15.
	' Verwendete Connection festlegen 
16.
	Tabelle.ActiveConnection = DBConnection 
17.
	' Zugriffsart festlegen 
18.
	Tabelle.CursorType = 2 
19.
	' Sperrart festlegen 
20.
	Tabelle.LockType = 3 
21.
	' Verwendete Quelle angeben 
22.
	Tabelle.Source="Computer" 
23.
	' Tabelle öffnen 
24.
	Tabelle.Open 
25.
' Abfragen der Computer auf den das Passwort geändert werden soll 
26.
SqlString="SELECT * FROM computer WHERE change = 0" 
27.
' Ausführen der Abfrage und Rückgabe eines Recordsets 
28.
Set Ergebnismenge = DBConnection.Execute(SqlString) 
29.
' An den Anfang des Recordsets springen 
30.
Ergebnismenge.MoveFirst 
31.
' Durchlaufe gesamtes Ergebnis 
32.
Do While Not Ergebnismenge.eof 
33.
    If isOnline(Ergebnismenge("Computer"))= "Wahr" then 
34.
	   Set Benutzer = GetObject("WinNT://" & Ergebnismenge("Computer") & "/Administrator,user") 
35.
   	    
36.
' Hier wird das zu setztende Passwort eingestellt 
37.
Benutzer.SetPassword "hier pw eintragen" 
38.
 
39.
	   ' Echo zum Debuggen 
40.
	   ' wscript.echo Ergebnismenge("Computer") & " pw gesetzt" 
41.
	   SqlString2="UPDATE computer set pw=date() WHERE computer=" & "'" & Ergebnismenge("Computer") & "'" 
42.
	   ' Eintragen des Datums 
43.
	   SqlString3="UPDATE computer set change=1 WHERE computer=" & "'" & Ergebnismenge("Computer") & "'" 
44.
	   DBConnection.Execute(SqlString2) 
45.
	   ' Eintragen des Changewertes 
46.
	   DBConnection.Execute(SqlString3) 
47.
	Else 
48.
	   ' Echo zum Debuggen 
49.
	   'wscript.echo Ergebnismenge("Computer") & " pw nicht gesetzt" 
50.
	End If 
51.
	'Datensatzzeiger auf den nächsten Datensatz positionieren 
52.
    Ergebnismenge.MoveNext 
53.
Loop 
54.
' Recordset schliessen 
55.
Ergebnismenge.Close 
56.
' Connection schliessen 
57.
DBConnection.Close 
58.
' Fertigmeldung ausgeben 
59.
wscript.echo "Fertsch" 
60.
 
61.
'Funktion zum Überprüfen ob der PC Online ist 
62.
Function isOnline(computername) 
63.
  On Error Resume Next 
64.
  Set Computer = GetObject("WinNT://" & ComputerName & ",Computer") 
65.
   isOnline = (Err.number = 0) 
66.
   On Error Goto 0 
67.
End Function 
68.
 
69.
'#######################SCRIPT ENDE#############################
Ich hoffe es ist alles verständlich.
Kritik und/oder Anregungen sind Erwünscht.

So folgende kleinere Probleme sind bekannt:

  1. Die Computernamen müssen noch per Hand eingetragen werden hab aber schon drüber nachgedacht die Daten per VBS aus dem AD auszulesen und eintragen zu lassen.
  2. Es dauert ein wenig wenn ein PC nicht online ist da hat mein Kollege schon etwas weitergearbeitet und das über Ping gelöst aber durch das Script blick ich noch nicht so ganz durch deswegen hier noch die "alte" Version.
  3. wenn man die PW`s nochmal ändern will muss man die "1" bei change wieder auf "0" per Hand setzten... naja dafür Bastel ich mir auch bald was XD hab ja 3 Monate zeit bis zum nächstem PW wechsel ;)
Mitglied: 29116
20.08.2007 um 18:16 Uhr
Hallo,

es geht auch einfacher.
Die Datei passwd.exe beim Login mit Parameter -u administrator -p oldpasswort neupasswort
erledigt das gleiche.
Eine Woche laufen lassen und fertig.
Findet die Datei das neue Passwort passiert nix.

Gruß

jkr
Bitte warten ..
Mitglied: novae7
20.08.2007 um 19:40 Uhr
Das problem an dem script/befehl ist, aus meiner sicht, aber das ich
1. nicht sehe welche Computer geändert wurden und
2. wenn jemand weiß wo das Script liegt hat er das Admin Passwort (dazu muss man nur den Logonserver kennen)
3. und bei mir sind leider nicht alle Computer innerhalb einer Woche angeschaltet da fahr ich das Script lieber manuell wenn ich weiß der Rechner ist an
bei dem VBScript ist das Passwort im Script und man kommt nur an das Passwort wenn man das Script bekommt wo es drin steht
Bitte warten ..
Mitglied: Egbert
28.08.2007 um 16:46 Uhr
hallo zusammen,

das ganze geht auch sehr einfach über eine Gruppenrichtlinienerweiterung von Microsoft selbst.
Das Produkt heisst PolicyMaker, die Firma DesktopStandard wurde von MS im letzten Jahr gekauft.
Policymaker ist im moment noch erhältlich. Es wird aber bald nur noch für Vertragskunden im MDOP erhältlich sein.
Über die Erweiterung des passwortes kann ich auf sichere Art das lokale Kennwort setzen, ändern. Benutzer in Gruppen aufnehmen, löschen usw.
Neben Kontenverwaltung für lokale Clients gibt es noch 21 weitere Client Side Extensions wie Mail Profile, Applikationseinstellungen, Drucker, Ini Files, Files, ODBC verb usw...

Logging geschieht im Eventlog, Replikation der Richtlinien wie gehabt im AD über NTFRS.

Die Kosten halten sich dabei auch in Grenzen und man hat die Chance im moment sehr günstig an komplette Firmenlizenzen zu kommen.


Gruß
Egbert
Bitte warten ..
Mitglied: TuXHunt3R
06.09.2007 um 21:21 Uhr
@ jkr

Wo befindet sich die passwd.exe? Habe ich nicht gefunden.
Bitte warten ..
Mitglied: 29116
07.09.2007 um 10:07 Uhr
Hallo, die exe kannst Du unter:

http://www.novell.com/coolsolutions/tip/15516.html

finden. Dort hat man auch mehrere Lösungen beschrieben.

Gruß

jkr
Bitte warten ..
Mitglied: TuXHunt3R
07.09.2007 um 20:45 Uhr
@ jkr

Danke, schaue ich mir mal an
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Windows Server
gelöst Powershell: Skript zum rekursiven Hinzufügen von lokalen Admins (10)

Frage von bensonhedges zum Thema Windows Server ...

Windows Userverwaltung
gelöst Lokalen Administrator über das Netzwerk verteilen (7)

Frage von M.Marz zum Thema Windows Userverwaltung ...

Heiß diskutierte Inhalte
Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows Server
Mailserver auf Windows Server 2012 (8)

Frage von StefanT81 zum Thema Windows Server ...

DSL, VDSL
DSL-Signal bewerten (8)

Frage von SarekHL zum Thema DSL, VDSL ...

Backup
Clients als Server missbrauchen? (8)

Frage von 1410640014 zum Thema Backup ...