Question : ajoutant le dernier changement de mot de passe au vbscript (exportant statistiques 2003 de boîte aux lettres d'échange)

est-ce que quelqu'un peut svp m'aider à ajouter deux paramètres à ce grand manuscrit de vbs de Paul Weterings ? le

What que j'ai besoin en plus est date
> de création de boîte aux lettres du
> le dernier/>
thanks pour votre help
class= > " clair " de
> de " codeSnippet " de class= de
class= " lineNumbers " de
class= de
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 :
id= " codeSnippet795354 " class= " de
 ' =============================================================== 
'But : Montrer chaque Exchange_Mailbox trouvé pour le serveur d'échange, 
'et montrer toutes les propriétés sur l'Exchange_Mailbox 
'objets. Le rendement est censé pour être importé dans Excel. Il donnera la perspicacité dans des tailles de boîte aux lettres, 
'utilisation etc. 
'Note : examiner le site Web de SelfADSI pour assurer la grande information au sujet de l'objet d'utilisateur : http://www.selfadsi.org/ 
'Changement : cComputerName [corde] l'ordinateur à accéder 
'Rendement : Montre le nom de chaque Exchange_Mailbox et de propriétés 
'Auteur : Paul Weterings 
'www.servercare.nl
'Date : février 2006 
'Rev : boîte aux lettres-type supplémentaire par v1.2 du février 2007 
'Rev : handeling de date de changement du juillet 2009 v1.3 et délimitation de virgule, email supplémentaire et information handicapée par utilisateur
'Rev : typo fixe de l'août 2009 v1.4 petit
'Version 1.4
'=============================================================== 
option explicite
'Constantes pour l'objet de 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

Sur le résumé d'erreur après 
cWMINameSpace de Const = « racine/MicrosoftExchangeV2 » 
cWMIInstance de Const = « Exchange_Mailbox » 

Corde de raccordement de faibles strWinMgmts 'pour WMI 
Objet de namespace WMI d'échange de faible objWMIExchange ' 
Collection d'ExchangeLogons de faibles listExchange_Mailboxs ' 
Faible objExchange_Mailbox 'un objet simple d'ExchangeLogon WMI 
Faible strEmail, strUserInfo, strServerName, objUser, objTrans, strUserDN

'Voir la fonction de WMIDateToString
SetLocale (1043)
Placer l'objUser = le CreateObject (« Scripting.Dictionary ») 

Si WScript.Arguments.Count > 0 puis 
	strServerName = WScript.Arguments.Item (0) 
	'WScript.echo « vérifiant le serveur d'échange :  » et strServername 
	'Créer la corde d'objet, indiquant WMI (winmgmts), using 
	'qualifications courantes d'utilisateur (impersonationLevel=impersonate), 
	'sur l'ordinateur spécifique dans le strServerName de variabele, et 
	'using le namespace de Productique pour le fournisseur d'échange. 
	strWinMgmts = « winmgmts : {impersonationLevel=impersonate} ! /« et » de strServerName&/« &cWMINameSpace 
	Placer l'objWMIExchange = le GetObject (les strWinMgmts) 
	'Vérifier que nous pouvions placer correctement l'objet. 
	Si <> 0 d'Err.Number puis 
		ERREUR de WScript.Echo « : Incapable de se relier au namespace de WMI. » Et Err.Description
		Err.Clear
	Autrement 
		' 
		'Les ressources qui existent actuellement apparaissent comme liste de 
		'Exemples d'Exchange_Mailbox dans le namespace d'échange. 
		Placer les listExchange_Mailboxs = l'objWMIExchange.InstancesOf (le cWMIInstance) 
		' 
		Est-ce que 'des exemples d'Exchange_Mailbox ont été retournés ? 
		Si (listExchange_Mailboxs.count > 0) puis 
			'Si oui, faire ce qui suit : 
			'Imprimer l'en-tête et le réitérer par la liste d'objets d'Exchange_Mailbox. 
			Nom d'utilisateur de WScript.echo « ; Jours non utilisés ; Articles ; Taille de mi-bande ; Magasin de boîte aux lettres ; Type de boîte aux lettres ; L'utilisateur a désactivé ; Email primaire » 
			Pour chaque objExchange_Mailbox dans les listExchange_Mailboxs 
				objUser = nulle
				strUserInfo = ""
				'Employer l'objet de NameTranslate pour convertir le nom d'affichage en 
				'Nom distingué requis pour le fournisseur de LDAP. 
				'Voir le http://www.rlmueller.net/NameTranslateFAQ.htm 
				Placer les objTrans = le CreateObject (« NameTranslate ») 
				'Initialiser NameTranslate en localisant le catalogue global. 
				objTrans.Init ADS_NAME_INITTYPE_GC, "" 
				'Employer la méthode d'ensemble pour spécifier le format de NT du nom d'objet. 
				objTrans.Set ADS_NAME_TYPE_DISPLAY, objExchange_Mailbox.MailboxDisplayName 
				'Employer la méthode d'obtention pour rechercher le nom distingué de RPC 1779. 
				strUserDN = objTrans.Get (ADS_NAME_TYPE_1779) 
				'WScript.Echo « vérifiant :  » et objExchange_Mailbox.MailboxDisplayName
				'Lier à l'objet d'utilisateur dans l'annuaire actif avec le fournisseur de LDAP.				
				Placer l'objUser = le GetObject (« LDAP : / » et strUserDN) 
				Si <> 0 d'Err.Number puis
					Problème de WScript.Echo « obtenant l'objet » et le strUserDN et la « erreur :  » Et Err.Nr et « :  » Et Err.Description
					Err.Clear
				Finir si
				'Laisse maintenant l'affichage toute l'information fonder, notent que seulement la dernière ligne utilisations la traduction. 
				'sauter les noms misérables d'ANNONCE qui sont les cordes très longues et pas les utilisateurs le plus susceptibles
				si len (objExchange_Mailbox.MailboxDisplayName) < 40 alors 
					'Construire la corde de l'information d'utilisateur
					strUserInfo = objExchange_Mailbox.MailboxDisplayName et _
					« ;  » Et DateValue (maintenant) - DateValue (WMIDateToString (objExchange_Mailbox.LastLogonTime)) &_ 
					« ;  » et objExchange_Mailbox.TotalItems et _ 
					« ;  » et objExchange_Mailbox.Size et _ 
					« ;  » et &_ d'objExchange_Mailbox.StoreName 
					« ;  » et &_ d'objUser.Title
					« ;  » et objUser.AccountDisabled
					'Trouver l'adresse primaire de smtp d'utilisateurs, nous doivent marcher le choix d'adresses
					Pour chaque strEmail dans objUser.proxyAddresses
						si (strEmail, chapeaux InStr de « smtp ») > 0 alors 'sont employés pour des adresses primaires
							strUserInfo = strUserinfo et « ;  » Et droit (strEmail, Len (strEMail) - 5)
						Finir si
					Après
					si Len (strUserInfo) > 1 puis
					'strUserInfo de WScript.echo
					
					WScript.StdOut.Write objExchange_Mailbox.MailboxDisplayName
					'Pas obligatoire si l'utilisateur n'ouvrait jamais une session
					Si Len (objExchange_Mailbox.LastLogonTime) > 0 puis
						WScript.StdOut.Write « ;  » Et DateValue (maintenant) - DateValue (WMIDateToString (objExchange_Mailbox.LastLogonTime))
					Autrement
						WScript.StdOut.Write « ; - »
					Finir si
					WScript.StdOut.Write « ;  » et objExchange_Mailbox.TotalItems
					WScript.StdOut.Write « ;  » et objExchange_Mailbox.Size
					WScript.StdOut.Write « ;  » et objExchange_Mailbox.StoreName
					WScript.StdOut.Write « ;  » et objUser.Title
					WScript.StdOut.Write « ;  » et objUser.AccountDisabled
					Pour chaque strEmail dans objUser.proxyAddresses
						si (strEmail, chapeaux InStr de « smtp ») > 0 alors 'sont employés pour des adresses primaires
							'strUserInfo = strUserinfo et « ;  » Et droit (strEmail, Len (strEMail) - 5)
							WScript.StdOut.Write « ;  » Et droit (strEmail, Len (strEMail) - 5)
						Finir si
					Après
					WScript.StdOut.WriteLine
					Finir si
				Finir si
			Après 
		Autrement 
			'Si aucun exemple d'Exchange_Mailbox n'était retourné, 
			'montrer cela. 
			WScript.Echo « AVERTISSANT : Aucun exemple d'Exchange_Mailbox n'a été retourné. » 
		Finir si 
	Finir si 
Autrement 
	Argument de WScript.echo « : Servername » 
	WScript.echo « où Servername est le nom de NetBIOS du serveur d'échange que vous voulez énumérer » 
Finir si 
'****************************************************************************** 
Fonction WMIDateToString (dtmDate)
	'Noter que les routines de conversion de corde jusqu'ici dans VBScript ont l'habitude ennuyante d'être « individu guérissant »
	'signification : si vous employez la notation des USA le mois et le jour n un endroit différent (mois-jour-année pour les USA, jour-mois-année pour l'EUR)
	le 'lieu est employé pour vérifier quel format de date est preferred, mais VBScript vérifiera également les jours/mois pour voir s'il dépasse 12
	's'il qui, parce que qui datent jour est présumé. Cependant, quand vous convertissez une rangée de cordes ceci mène au rendement embrouillant : quelques dates sont correctes
	'mais pendant des dates avec des jours plus moins de 12 choses seront vissées vers le haut.
	'Puisque je suis en Europe, j'emploie le jour-mois (7.2 et 5.2) que vous pouvez vouloir changer ceci pour les USA date (5.2 et 7.2 positions)
	'en plus je force le lieu pour employer (les 1043) arrangements hollandais dans le manuscrit, parce que les USA ceci sont 1033 (voir l'en-tête)
	WMIDateToString = mi (dtmDate, 7, 2) et « / » et _ 	
	Mi (dtmDate, 5, 2) et « / » et _ 					
	Gauche (dtmDate, 4) et « «   			
	'Heure sautante pour maintenant, car je n'ai pas besoin de lui.	
'Mi (dtmDate, 9, 2) et « :  » et _ 
'Mi (dtmDate, 11, 2) et « :  » et _ 
'Mi (dtmDate, 13, 2)
	WMIDateToString = CDate (WMIDateToString)
Fonction de fin
class= de

Réponse : ajoutant le dernier changement de mot de passe au vbscript (exportant statistiques 2003 de boîte aux lettres d'échange)

Il ne semble y avoir aucune propriété spécifique de la classe d'objExchange_Mailbox qui contient que la date de création de boîte aux lettres. Cependant, j'ai trouvé un manuscrit qui semble faire ce que vous recherchez :
http://community.spiceworks.com/how_to/show/739

Quant à quand les utilisateurs ont pour la dernière fois changé leurs mots de passe :
Vous devriez saisir les propriétés de l'objUser, pas objExchange_Mailbox :

Placer l'objUser = le GetObject (« LDAP : //CN=myerken, OU=management, DC=Fabrikam, DC=com »)
dtmValue = objUser.PasswordLastChanged
pwdLastSet de WScript.echo le « est :  » et dtmValue

De sorte que signifie vous devriez trouver l'utilisateur lié à la boîte aux lettres que vous regardez et retirer alors l'information de l'utilisateur.
http://www.activxperts.com/activmonitor/windowsmanagement/adminscripts/usersgroups/users/#DetPasswSet.htm
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us