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
GELÖST

AD-Scripting

Frage Microsoft Windows Server

Mitglied: SarekHL

SarekHL (Level 3) - Jetzt verbinden

01.06.2009, aktualisiert 06:53 Uhr, 4160 Aufrufe, 3 Kommentare

Hallo zusammen,

weiß jemand, wie ich folgende Aufgaben bei Windows Server 2000 / 2003 / 2008 per Script lösen kann:

  1. Bei allen Benutzern, bei denen das Kennwort leer ist (die sich also noch kein Kennwort gegeben haben), soll die Option "Benutzer muß Kennwort bei der nächsten Anmeldung ändern" gesetzt werden.
  2. Bei allen Benutzern, bei denen "Benutzer muß Kennwort bei der nächsten Anmeldung ändern" NICHT gesetzt ist, soll "Kennwort läuft nie ab" aktiviert werden.


Danke im Voraus,
André


P.S.: Gibt es im Netz irgendwo eine Vernünftige Anleitung zum AD-Scripting?
Mitglied: bastla
01.06.2009 um 13:27 Uhr
Hallo SarekHL!

Sollte sich ("inspiriert" durch zB http://www.nabble.com/Query-for-blank-passwords-in-Active-Directory-td9 ..., http://techtasks.com/code/viewbookcode/1596 oder http://groups.google.com/group/microsoft.public.scripting.vbscript/brow ... ) mit
01.
On Error Resume Next 
02.
strAdsPath = "dc=fabrikam,dc=com" 
03.
 
04.
Const ADS_SCOPE_SUBTREE = 2 
05.
strPassword = "" 
06.
 
07.
Set objConnection = CreateObject("ADODB.Connection") 
08.
Set objCommand =   CreateObject("ADODB.Command") 
09.
objConnection.Provider = "ADsDSOObject" 
10.
objConnection.Open "Active Directory Provider" 
11.
Set objCommand.ActiveConnection = objConnection 
12.
 
13.
objCommand.Properties("Page Size") = 1000 
14.
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE 
15.
 
16.
objCommand.CommandText = _ 
17.
    "SELECT AdsPath FROM 'LDAP://" & strAdsPath & "' WHERE objectCategory='user'" 
18.
Set objRecordSet = objCommand.Execute 
19.
 
20.
objRecordSet.MoveFirst 
21.
Do Until objRecordSet.EOF 
22.
    strPath = objRecordSet.Fields("AdsPath").Value 
23.
    Set objUser = GetObject(strPath) 
24.
    objUser.ChangePassword strPassword, strPassword 
25.
    If Err= 0 or Err = -2147023569 Then 
26.
        objUser.Put "pwdLastSet", 0 
27.
        objUser.SetInfo 
28.
        WScript.Echo objUser.CN 
29.
    End If 
30.
    Err.Clear 
31.
    objRecordSet.MoveNext 
32.
Loop
bzw
01.
On Error Resume Next 
02.
strAdsPath = "dc=fabrikam,dc=com" 
03.
 
04.
Const ADS_SCOPE_SUBTREE = 2 
05.
Const ADS_UF_DONT_EXPIRE_PASSWD = &H10000 
06.
 
07.
Set objConnection = CreateObject("ADODB.Connection") 
08.
Set objCommand =   CreateObject("ADODB.Command") 
09.
objConnection.Provider = "ADsDSOObject" 
10.
objConnection.Open "Active Directory Provider" 
11.
Set objCommand.ActiveConnection = objConnection 
12.
 
13.
objCommand.Properties("Page Size") = 1000 
14.
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE 
15.
 
16.
objCommand.CommandText = _ 
17.
    "SELECT AdsPath FROM 'LDAP://" & strAdsPath & "' WHERE objectCategory='user'" 
18.
Set objRecordSet = objCommand.Execute 
19.
 
20.
objRecordSet.MoveFirst 
21.
Do Until objRecordSet.EOF 
22.
    strPath = objRecordSet.Fields("AdsPath").Value 
23.
    Set objUser = GetObject(strPath) 
24.
WScript.Echo strPath 
25.
    Set objPwdLastSet = objUser.pwdLastSet 
26.
    If (objPwdLastSet.HighPart <> 0) Or (objPwdLastSet.LowPart <> 0) Then 
27.
        lngFlag = objUser.userAccountControl 
28.
WScript.Echo lngFlag 
29.
        If (lngFlag And ADS_UF_DONT_EXPIRE_PASSWD) = 0 Then 
30.
            lngFlag = lngFlag Or ADS_UF_DONT_EXPIRE_PASSWD 
31.
            objUser.userAccountControl = lngFlag 
32.
            objUser.SetInfo 
33.
        End If 
34.
    End If  
35.
    objRecordSet.MoveNext 
36.
Loop
machen lassen.

Grüße
bastla
Bitte warten ..
Mitglied: Biber
13.06.2009 um 13:45 Uhr
Moin SarekHL,

danke für Dein schnelles und ausführliches Feedback zu bastlas Antwort.
Könntest Du Deine Rückmeldung noch dahingehend vervollständigen, dass

  • Du entweder zurückmeldest "Danke, funktioniert." und den Beitrag auf "Erledigt" setzt oder
  • schreibst "Danke, aber ich bekomm es nicht zu Fliegen. Folgender Fehler tritt auf:..."
  • oder zurückmeldest : "Meine Tante Klara hat mir ein Hotel auf dem Malediven vererbt. Ich klink mich aus" und den Beitrag auf gelöst setzt.
  • oder zurückmeldest: "bastlas Lösungen sind immer so schwer verständlich, ich warte auf Alternativen..."


Ohne Rückmeldung nützt eine Frage mit einer Antwort wenig.

Grüße
Biber
Bitte warten ..
Mitglied: SarekHL
13.06.2009 um 18:15 Uhr
Lieber Biber,

da hast Du natürlich völlig Recht. Der Grund für das fehlende Feedback ist ganz einfach: Ich bin noch nicht dazu gekommen, es zu testen. Bevor ich das mache, muß ich erst mal das AD sichern, damit ich es wiederherstellen kann, falls das Script eben funktioniert und irgendwelche Sachen passieren, die nicht passieren sollen. Und genau dazu bin ich noch nicht gekommen. Momentan ist bei uns Hochbetrieb ...


Schöne Grüße,
André
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

Windows Server
AD-Berechtigungen von zwei Servern miteinander vergleichen (3)

Frage von s0m3ting zum Thema Windows Server ...

Windows Server
AD Replikation zwischen untergeordneten Domäne zwingend? (4)

Frage von Gien-app zum Thema Windows Server ...

Windows Server
AD DC Failover zeitintensiv und DHCP repliziert nicht (5)

Frage von JiggyLee zum Thema Windows Server ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (32)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...