Frage : letzte Kennwortänderung am vbscript hinzufügen (Austauschbriefkastenstatistiken 2003 exportierend)

kann jemand mir bitte helfen, zwei Parameter diesem großen vbs Index von Paul Weterings hinzuzufügen?

What, das ich zusätzlich benötige, ist
> Briefkastenkreation date
> letztes Kennwort-Änderung date

thanks für Ihr help
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
6:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
 ' =============================================================== 
'Zweck: Jedes Exchange_Mailbox anzeigen, das für Austauschbediener gefunden wird, 
'und alle Eigenschaften auf dem Exchange_Mailbox zeigen 
'Gegenstände. Ausgang wird bedeutet, in Excel importiert zu werden. Er gibt Einblick in den Briefkastengrößen, 
'Verbrauch etc. 
'Anmerkung: die SelfADSI Web site auf großem Info über den Benutzergegenstand überprüfen: http://www.selfadsi.org/ 
'Änderung: cComputerName [Schnur] der Computer zum zurückzugreifen 
'Ausgang: Zeigt den Namen von jedem Exchange_Mailbox und von Eigenschaften an 
'Autor: Paul Weterings 
'www.servercare.nl
'Datum: Februar 2006 
'Rev: Februar 2007 v1.2 addierte Briefkastenart 
'Rev: Änderungs-Datum des Juli 2009 v1.3 Handeling und Kommabegrenzung, addierte eMail und Benutzer arbeitsunfähiges Info
'Rev: August 2009 v1.4 örtlich festgelegter kleiner Typo
'Version 1.4
'=============================================================== 
Wahl ausdrücklich
'Konstanten für den NameTranslate Gegenstand. 
Const ADS_NAME_INITTYPE_GC = 3 
Const ADS_NAME_TYPE_NT4 = 3 
Const ADS_NAME_TYPE_1779 = 1 
Const ADS_NAME_TYPE_DISPLAY = 4

Auf Störungs-Zusammenfassung zunächst 
Const cWMINameSpace = „Wurzel/MicrosoftExchangeV2“ 
Const cWMIInstance = „Exchange_Mailbox“ 

Schwache strWinMgmts 'Anschlussschnur für WMI 
Schwaches objWMIExchange 'Gegenstand Austausch-namespace-WMI 
Schwache listExchange_Mailboxs 'ExchangeLogons Ansammlung 
Schwaches objExchange_Mailbox 'ein einzelner ExchangeLogon WMI Gegenstand 
Schwaches strEmail, strUserInfo, strServerName, objUser, objTrans, strUserDN

'WMIDateToString Funktion sehen
SetLocale (1043)
objUser = CreateObject („Scripting.Dictionary“) einstellen 

Wenn WScript.Arguments.Count > 0 dann 
	strServerName = WScript.Arguments.Item (0) 
	'WScript.echo „, das Austauschbediener überprüft: “ u. strServername 
	'Die Gegenstandschnur herstellen und WMI (winmgmts), using anzeigen 
	'gegenwärtige Benutzerbescheinigungen (impersonationLevel=impersonate), 
	'auf dem Computer spezifiziert im variabele strServerName und 
	'using das CIM-namespace für den Austauschversorger. 
	strWinMgmts = „winmgmts: {impersonationLevel=impersonate}! /„u. strServerName&“/„&cWMINameSpace 
	objWMIExchange = GetObject (strWinMgmts) einstellen 
	'Überprüfen, dass wir in der Lage waren, den Gegenstand richtig einzustellen. 
	Wenn Err.Number <> 0 dann 
		WScript.Echo „STÖRUNG: Nicht imstande, an das WMI namespace anzuschließen.“ U. Err.Description
		Err.Clear
	Sonst 
		' 
		'Die Betriebsmittel, die z.Z. existieren, erscheinen als Liste von 
		'Exchange_Mailbox Fälle im Austauschnamespace. 
		listExchange_Mailboxs = objWMIExchange.InstancesOf (cWMIInstance) einstellen 
		' 
		'Wurden irgendwelche Exchange_Mailbox Fälle zurückgebracht? 
		Wenn (listExchange_Mailboxs.count > 0) dann 
			'Wenn ja, das folgende tun: 
			'Überschrift drucken und durch die Liste der Exchange_Mailbox Gegenstände wiederholen. 
			WScript.echo „Benutzername; Tage nicht verwendet; Einzelteile; Bandmitten-Größe; Briefkastenspeicher; Briefkasten-Art; Benutzer sperrte; Primär-eMail“ 
			Für jedes objExchange_Mailbox in den listExchange_Mailboxs 
				objUser = Null
				strUserInfo = ""
				'Den NameTranslate Gegenstand benutzen, um den Anzeigen-Namen in umzuwandeln 
				'Bemerkenswerter Name erfordert für den LDAP Versorger. 
				'http://www.rlmueller.net/NameTranslateFAQ.htm sehen 
				objTrans = CreateObject („NameTranslate“) einstellen 
				'NameTranslate initialisieren, indem Sie den globalen Katalog lokalisieren. 
				objTrans.Init ADS_NAME_INITTYPE_GC, "" 
				'Die Satzmethode anwenden, um das NT-Format des Gegenstandnamens zu spezifizieren. 
				objTrans.Set ADS_NAME_TYPE_DISPLAY, objExchange_Mailbox.MailboxDisplayName 
				'Die erhaltenmethode anwenden, um den unterschiedenen Namen RPC-1779 zurückzuholen. 
				strUserDN = objTrans.Get (ADS_NAME_TYPE_1779) 
				'Überprüfendes WScript.Echo „: “ u. objExchange_Mailbox.MailboxDisplayName
				'An den Benutzergegenstand im aktiven Verzeichnis mit dem LDAP Versorger binden.				
				objUser = GetObject einstellen („LDAP: /“ u. strUserDN) 
				Wenn Err.Number <> 0 dann
					WScript.Echo „Problem, das Gegenstand“ u. strUserDN u. „Störung erhält: “ U. Err.Nr u. „: “ U. Err.Description
					Err.Clear
				Beenden wenn
				'Lässt jetzt Anzeige alle Informationen finden, merken dass nur letzte Liniengebrauch die Übersetzung. 
				'die crappy ANZEIGEN-Namen überspringen, die sehr lange Schnüre u. höchstwahrscheinliche nicht Benutzer sind
				wenn (objExchange_Mailbox.MailboxDisplayName) < 40 dann len 
					'Benutzerinformationsschnur errichten
					strUserInfo = objExchange_Mailbox.MailboxDisplayName u. _
					„; “ U. DateValue (jetzt) - DateValue (WMIDateToString (objExchange_Mailbox.LastLogonTime)) &_ 
					„; “ u. objExchange_Mailbox.TotalItems u. _ 
					„; “ u. objExchange_Mailbox.Size u. _ 
					„; “ u. objExchange_Mailbox.StoreName &_ 
					„; “ u. objUser.Title &_
					„; “ u. objUser.AccountDisabled
					'Die Benutzer Primär-smtp-Adresse finden, wir müssen gehen die Reihe von Adressen
					Für jedes strEmail in objUser.proxyAddresses
						wenn (strEmail, „smtp-“) > 0 dann 'Kappen InStr für Primäradressen verwendet werden
							strUserInfo = strUserinfo u. „; “ U. recht (strEmail, Len (strEMail) - 5)
						Beenden wenn
					Zunächst
					wenn Len (strUserInfo) > 1 dann
					'WScript.echo strUserInfo
					
					WScript.StdOut.Write objExchange_Mailbox.MailboxDisplayName
					'Nicht Vorschreiben, wenn Benutzer nie anmeldete
					Wenn Len (objExchange_Mailbox.LastLogonTime) > 0 dann
						WScript.StdOut.Write „; “ U. DateValue (jetzt) - DateValue (WMIDateToString (objExchange_Mailbox.LastLogonTime))
					Sonst
						WScript.StdOut.Write „; -“
					Beenden wenn
					WScript.StdOut.Write „; “ u. objExchange_Mailbox.TotalItems
					WScript.StdOut.Write „; “ u. objExchange_Mailbox.Size
					WScript.StdOut.Write „; “ u. objExchange_Mailbox.StoreName
					WScript.StdOut.Write „; “ u. objUser.Title
					WScript.StdOut.Write „; “ u. objUser.AccountDisabled
					Für jedes strEmail in objUser.proxyAddresses
						wenn (strEmail, „smtp-“) > 0 dann 'Kappen InStr für Primäradressen verwendet werden
							'strUserInfo = strUserinfo u. „; “ U. recht (strEmail, Len (strEMail) - 5)
							WScript.StdOut.Write „; “ U. recht (strEmail, Len (strEMail) - 5)
						Beenden wenn
					Zunächst
					WScript.StdOut.WriteLine
					Beenden wenn
				Beenden wenn
			Zunächst 
		Sonst 
			'Wenn keine Exchange_Mailbox Fälle zurückgebracht wurden, 
			'das anzeigen. 
			WARNENDES WScript.Echo „: Keine Exchange_Mailbox Fälle wurden zurückgebracht.“ 
		Beenden wenn 
	Beenden wenn 
Sonst 
	WScript.echo „Argument: Servername“ 
	WScript.echo „, wo Servername der NetBIOS-Name des Austauschbedieners ist, den Sie verzeichnen möchten“ 
Beenden wenn 
'****************************************************************************** 
Funktion WMIDateToString (dtmDate)
	'Merken, dass die Umwandlungsprogramme der Schnur bis jetzt in VBScript haben die ärgerliche Gewohnheit des Seins „das heilende Selbst“
	'Bedeutung: wenn Sie US-Darstellung benutzen, werden der Monat und der Tag n eine andere Position (Monat-Tagjahr für US, Tag-Monatjahr für Eur)
	'Schauplatz wird benutzt, um zu überprüfen, welches Datumformat bevorzugt ist, aber VBScript überprüft auch die Tage/die Monate, um zu sehen, wenn es hinter 12 geht
	'wenn es, das, denn, das datieren, Tag vorausgesetzt wird. Jedoch wenn Sie eine Reihe Schnüre umwandeln, führt dieses zu verwirrenden Ausgang: einige Daten sind korrekt
	'aber für Daten mit Tagen werden weniger als 12 Sachen oben geschraubt.
	'Da ich in Europa bin, verwende ich Tagmonat (7.2 und 5.2), das Sie dieses für US ändern wünschen können datieren (5.2 und 7.2 Positionen)
	'zusätzlich zwinge ich Schauplatz, um die holländischen (1043) Einstellungen innerhalb des Indexes zu benutzen, denn US dieses sind 1033 (Überschrift sehen)
	WMIDateToString = mittler (dtmDate, 7, 2) u. „/“ u. _ 	
	Mittler (dtmDate, 5, 2) u. „/“ u. _ 					
	Links (dtmDate, 4) u. „„  			
	'Überspringende Zeit fürs Erste, da ich es nicht benötige.	
'Mittler (dtmDate, 9, 2) u. „: “ u. _ 
'Mittler (dtmDate, 11, 2) u. „: “ u. _ 
'Mittler (dtmDate, 13, 2)
	WMIDateToString = CDate (WMIDateToString)
Enden-Funktion

Antwort : letzte Kennwortänderung am vbscript hinzufügen (Austauschbriefkastenstatistiken 2003 exportierend)

Es scheint, keine spezifischen Eigenschaften von der objExchange_Mailbox Kategorie geben, die dass das BriefkastenErstellungsdatum enthält. Jedoch fand ich einen Index, der scheint, zu tun, nach was Sie suchen:
http://community.spiceworks.com/how_to/show/739

Wie was, als die Benutzer zuletzt ihre Kennwörter änderten:
Sie müssen die Eigenschaften vom objUser, nicht objExchange_Mailbox ergreifen:

objUser = GetObject einstellen („LDAP: //CN=myerken, OU=management, DC=Fabrikam, DC=com“)
dtmValue = objUser.PasswordLastChanged
WScript.echo „pwdLastSet ist: “ u. dtmValue

Damit bedeuten, müssen Sie den Benutzer finden verbunden mit dem Briefkasten, den Sie und die Informationen vom Benutzer dann auszuziehen betrachten.
http://www.activxperts.com/activmonitor/windowsmanagement/adminscripts/usersgroups/users/#DetPasswSet.htm
Weitere Lösungen  
 
programming4us programming4us