Vraag : het toevoegen van laatste wachtwoordverandering in vbscript (het uitvoeren Uitwisseling 2003 brievenbusstatistieken)

kan iemand me om twee parameters aan dit grote vbsmanuscript van Paul Weterings toe te voegen alstublieft helpen? bovendien de behoefte

What I is
> laatste het wachtwoordverandering date

thanks van de brievenbusverwezenlijking date
> voor uw help
" codeBody "
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:
36:
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:
" notpretty "
 ' =============================================================== 
'Doel: Toon elke die Exchange_Mailbox voor de server van de Uitwisseling wordt gevonden, 
'en toon alle eigenschappen op Exchange_Mailbox 
'voorwerpen. De output moet in Excel worden ingevoerd. Het zal inzicht in brievenbusgrootte geven, 
'gebruik enz. 
'Nota: controleer de website SelfADSI grote info over het gebruikersvoorwerp: http://www.selfadsi.org/ 
'Verandering: cComputerName [koord] de computer aan toegang 
'Output: Toont de naam van elke Exchange_Mailbox en eigenschappen 
'Auteur: Paul Weterings 
'www.servercare.nl
'Datum: februari 2006 
'Omwenteling: februari 2007 v1.2 toegevoegd brievenbus-type 
'Omwenteling: de datum van de juli 2009 v1.3 verandering het handeling en kommaafbakening, toegevoegde e-mail en gebruiker gehandicapte info
'Omwenteling: augustus 2009 v1.4 vaste kleine typo
'Versie 1.4
'=============================================================== 
expliciete optie
'Constanten voor het voorwerp NameTranslate. 
Const ADS_NAME_INITTYPE_GC = 3 
Const ADS_NAME_TYPE_NT4 = 3 
Const ADS_NAME_TYPE_1779 = 1 
Const ADS_NAME_TYPE_DISPLAY = 4

Op Fout hervat daarna 
Const cWMINameSpace = „schiet/MicrosoftExchangeV2“ wortel 
cWMIInstance van Const = „Exchange_Mailbox“ 

Koord van de schemerige strWinMgmts het 'Verbinding voor WMI 
Voorwerp van Namespace WMI van de schemerige objWMIExchange het 'Uitwisseling 
Inzameling van schemerige listExchange_Mailboxs de 'ExchangeLogons 
Schemerige objExchange_Mailbox 'één enkel voorwerp van ExchangeLogon WMI 
Schemerige strEmail, strUserInfo, strServerName, objUser, objTrans, strUserDN

'Zie functie WMIDateToString
SetLocale (1043)
Reeks objUser = CreateObject („Scripting.Dictionary“) 

Als WScript.Arguments.Count > 0 toen 
	strServerName = WScript.Arguments.Item (0) 
	'WScript.echo die de „server van de Uitwisseling controleren: “ & strServername 
	'Cre�ër het objecten koord, die op WMI (winmgmts) wijzen, gebruiken 
	'huidige gebruikersgeloofsbrieven (impersonationLevel=impersonate), 
	'op de computer in variabele wordt gespecificeerd die strServerName, en 
	'gebruikend CIM namespace voor de leverancier van de Uitwisseling. 
	strWinMgmts = „winmgmts: {impersonationLevel=impersonate}! /„& strServerName&“/„&cWMINameSpace 
	Reeks objWMIExchange = GetObject (strWinMgmts) 
	'Verifi�ër wij plaatsten correct het voorwerp konden. 
	Als Err.Number <> 0 toen 
		WScript.Echo „FOUT: Onbekwaam om met WMI te verbinden namespace.“ & Err.Description
		Err.Clear
	Anders 
		' 
		De 'middelen die momenteel bestaan verschijnen als lijst van 
		'Instanties Exchange_Mailbox in de Uitwisseling namespace. 
		Reeks listExchange_Mailboxs = objWMIExchange.InstancesOf (cWMIInstance) 
		' 
		'Waren om het even welke Instanties Exchange_Mailbox teruggekeerd? 
		Als (listExchange_Mailboxs.count > 0) Dan 
			'Als ja, doe het volgende: 
			De 'kopbal van de druk en herhaalt door de lijst van voorwerpen Exchange_Mailbox. 
			WScript.echo de „naam van de Gebruiker; Gebruikte niet dagen; Punten; Mb Grootte; De opslag van de brievenbus; Het Type van brievenbus; Gehandicapte gebruiker; Primaire E-mail“ 
			Voor Elke objExchange_Mailbox in listExchange_Mailboxs 
				objUser = verklaar nietig
				strUserInfo = ""
				'Gebruik het voorwerp NameTranslate om de Naam van de Vertoning in om te zetten 
				'Voorname die Naam voor de leverancier LDAP wordt vereist. 
				'Zie http://www.rlmueller.net/NameTranslateFAQ.htm 
				Plaats objTrans = CreateObject („NameTranslate“) 
				'Initialiseer NameTranslate door de van Globale Catalogus de plaats te bepalen. 
				objTrans.Init ADS_NAME_INITTYPE_GC, "" 
				'Gebruik de Vastgestelde methode om het formaat NT van de objecten naam te specificeren. 
				objTrans.Set ADS_NAME_TYPE_DISPLAY, objExchange_Mailbox.MailboxDisplayName 
				'Gebruik de Get methode om de Voorname Naam RPC 1779 terug te winnen. 
				strUserDN = objTrans.Get (ADS_NAME_TYPE_1779) 
				'WScript.Echo die „controleren: “ & objExchange_Mailbox.MailboxDisplayName
				'Bind aan het gebruikersvoorwerp in Actieve Folder met de leverancier LDAP.				
				Plaats objUser = GetObject („LDAP: /“ & strUserDN) 
				Als Err.Number <> 0 toen
					WScript.Echo „Probleem die voorwerp“ & strUserDN & „Fout krijgen: “ & Err.Nr & „: “ & Err.Description
					Err.Clear
				Eind als
				'Laat nu vertoning al informatie vinden, opmerken dat slechts de laatste lijn de vertaling gebruikt. 
				'sla de waardeloze namen van de ADVERTENTIE over die zeer lange koorden & most likely niet gebruikers zijn
				als len (objExchange_Mailbox.MailboxDisplayName) < 40 toen 
					'Bouw het koord van de gebruikersinformatie
					strUserInfo = objExchange_Mailbox.MailboxDisplayName & _
					„; “ & DateValue (nu) - DateValue (WMIDateToString (objExchange_Mailbox.LastLogonTime)) &_ 
					„; “ & objExchange_Mailbox.TotalItems & _ 
					„; “ & objExchange_Mailbox.Size & _ 
					„; “ & objExchange_Mailbox.StoreName &_ 
					„; “ & objUser.Title &_
					„; “ & objUser.AccountDisabled
					'Vind het gebruikers primaire adres SMTP, moeten wij de serie van adressen lopen
					Voor Elke strEmail in objUser.proxyAddresses
						als InStr (strEmail, „SMTP“) > 0 dan 'kappen voor primaire adressen wordt gebruikt
							strUserInfo = strUserinfo & „; “ & Juist (strEmail, Len (strEMail) - 5)
						Eind als
					Daarna
					als Len (strUserInfo) > 1 toen
					'strUserInfo WScript.echo
					
					WScript.StdOut.Write objExchange_Mailbox.MailboxDisplayName
					'Niet verplicht als de gebruiker nooit het programma opende
					Als Len (objExchange_Mailbox.LastLogonTime) > 0 toen
						WScript.StdOut.Write „; “ & DateValue (nu) - DateValue (WMIDateToString (objExchange_Mailbox.LastLogonTime))
					Anders
						WScript.StdOut.Write „; -“
					Eind als
					WScript.StdOut.Write „; “ & objExchange_Mailbox.TotalItems
					WScript.StdOut.Write „; “ & objExchange_Mailbox.Size
					WScript.StdOut.Write „; “ & objExchange_Mailbox.StoreName
					WScript.StdOut.Write „; “ & objUser.Title
					WScript.StdOut.Write „; “ & objUser.AccountDisabled
					Voor Elke strEmail in objUser.proxyAddresses
						als InStr (strEmail, „SMTP“) > 0 dan 'kappen voor primaire adressen wordt gebruikt
							'strUserInfo = strUserinfo & „; “ & Juist (strEmail, Len (strEMail) - 5)
							WScript.StdOut.Write „; “ & Juist (strEmail, Len (strEMail) - 5)
						Eind als
					Daarna
					WScript.StdOut.WriteLine
					Eind als
				Eind als
			Daarna 
		Anders 
			'Als geen instanties Exchange_Mailbox waren teruggekeerd, 
			'toon dat. 
			WScript.Echo „WAARSCHUWING: Geen instanties Exchange_Mailbox waren teruggekeerd.“ 
		Beëindig als 
	Beëindig als 
Anders 
	WScript.echo „Argument: Servername“ 
	WScript.echo „waar Servername de naam van Netbios van de server is van de Uitwisseling u wilt een lijst maken van“ 
Eind als 
'****************************************************************************** 
Functie WMIDateToString (dtmDate)
	'Merk op dat de routines van de koord tot op heden omzetting in VBScript de hebbelijkheid van het zijn „het zelf helen“ hebben
	'betekenend: als u de aantekening gebruikt van de V.S. zullen de maand en de dag n een verschillende plaats (maand-dag-jaar voor de V.S., dag-maand-jaar voor EUR)
	de 'scène wordt gebruikt om te controleren welk datumformaat de voorkeur heeft, maar VBScript zal ook de dagen/de maanden controleren om te zien of gaat het voorbij 12
	'als het dat, voor die datum de dag wordt verondersteld. Nochtans, wanneer u een serie van koorden omzet leidt dit tot het verwarren van output: sommige data zijn correct
	'maar voor data met dagen zullen minder dan 12 dingen worden verknoeid.
	'Aangezien ik in Europa ben, gebruik ik dag-maand (7.2 en 5.2) u kan dit voor de data van de V.S. willen ruilen (5.2 en 7.2 posities)
	'dwing ik bovendien scène om de Nederlandse (1043) montages binnen het manuscript, voor de V.S. te gebruiken dit 1033 (zie kopbal) is
	WMIDateToString = Medio (dtmDate, 7, 2) & „/“ & _ 	
	Medio (dtmDate, 5, 2) & „/“ & _ 					
	Linkerzijde (dtmDate, 4) & „„  			
	'Het overslaan tijd voor nu, aangezien ik het niet nodig heb.	
'Medio (dtmDate, 9, 2) & „: “ & _ 
'Medio (dtmDate, 11, 2) & „: “ & _ 
'Medio (dtmDate, 13, 2)
	WMIDateToString = CDate (WMIDateToString)
De Functie van het eind

Antwoord : het toevoegen van laatste wachtwoordverandering in vbscript (het uitvoeren Uitwisseling 2003 brievenbusstatistieken)

Er schijnen geen specifieke eigenschappen van de objExchange_Mailboxklasse te zijn die dat de datum van de brievenbusverwezenlijking bevat. Nochtans, vond ik een manuscript dat schijnt om te doen wat u zoekt:
http://community.spiceworks.com/how_to/show/739

Zoals voor wanneer de gebruikers duren veranderde hun wachtwoorden:
U zou de eigenschappen van objUser moeten grijpen, niet objExchange_Mailbox:

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

Zodat die betekenen u de gebruiker met de brievenbus wordt geassoci�ërd zou moeten vinden u bekijkt en dan de informatie van de gebruiker terugtrek.
http://www.activxperts.com/activmonitor/windowsmanagement/adminscripts/usersgroups/users/#DetPasswSet.htm
Andere oplossingen  
 
programming4us programming4us