Pergunta : adicionando a última mudança da senha ao vbscript (que exporta as estatísticas 2003 da caixa postal da troca)

pode alguém por favor ajudar-me a adicionar dois parâmetros a este grande certificado dos vbs de Paul Weterings? o

What que eu preciso adicionalmente é date

thanks da mudança da senha do date
> da criação da caixa postal do
> o último para seu help
class= > " desobstruído " do
> do " codeSnippet " do class= do
class= " lineNumbers " do
class= do
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= " do
 ' =============================================================== 
'Finalidade: Indicar cada Exchange_Mailbox encontrado para o usuário da troca, 
'e mostrar todas as propriedades no Exchange_Mailbox 
'objetos. A saída é significada ser importada em Excel. Dará a introspecção em tamanhos da caixa postal, 
'uso etc. 
'Nota: verific o Web site de SelfADSI para ver se há a grande informação sobre o objeto de usuário: http://www.selfadsi.org/ 
'Mudança: cComputerName [corda] o computador a alcançar 
'Saída: Indica o nome de cada Exchange_Mailbox e de propriedades 
'Autor: Paul Weterings 
'www.servercare.nl
'Data: fevereiro 2006 
'Rev: caixa-tipo adicionado v1.2 do fevereiro 2007 
'Rev: handeling da data da mudança do julho 2009 v1.3 e delimitação da vírgula, email adicionado e informação deficiente do usuário
'Rev: erro tipográfico pequeno fixo do agosto 2009 v1.4
'Versão 1.4
'=============================================================== 
opção explícita
'Constantes para o objeto 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

No resumo do erro em seguida 
cWMINameSpace de Const = “raiz/MicrosoftExchangeV2” 
cWMIInstance de Const = “Exchange_Mailbox” 

Corda da conexão dos strWinMgmts não ofuscantes 'para WMI 
Objeto do namespace WMI da troca do objWMIExchange não ofuscante ' 
Coleção de ExchangeLogons dos listExchange_Mailboxs não ofuscantes ' 
objExchange_Mailbox não ofuscante 'um único objeto de ExchangeLogon WMI 
strEmail não ofuscante, strUserInfo, strServerName, objUser, objTrans, strUserDN

'Ver a função de WMIDateToString
SetLocale (1043)
Ajustar o objUser = o CreateObject (“Scripting.Dictionary”) 

Se WScript.Arguments.Count > 0 então 
	strServerName = WScript.Arguments.Item (0) 
	'WScript.echo “que verific o usuário da troca: ” & strServername 
	'Criar a corda do objeto, indicando WMI (winmgmts), using 
	'credenciais atuais do usuário (impersonationLevel=impersonate), 
	'no computador especific no strServerName do variabele, e 
	'using o namespace do CIM para o fornecedor da troca. 
	strWinMgmts = “winmgmts: {impersonationLevel=impersonate}! /“&” do strServerName&/“&cWMINameSpace 
	Ajustar o objWMIExchange = o GetObject (os strWinMgmts) 
	'Verific que nós podíamos ajustar corretamente o objeto. 
	Se <> 0 de Err.Number então 
		ERRO de WScript.Echo “: Incapaz de conetar ao namespace de WMI.” & Err.Description
		Err.Clear
	Mais 
		' 
		'Os recursos que existem atualmente aparecem como uma lista de 
		'Exemplos de Exchange_Mailbox no namespace da troca. 
		Ajustar listExchange_Mailboxs = objWMIExchange.InstancesOf (o cWMIInstance) 
		' 
		'Algum exemplo de Exchange_Mailbox foi retornado? 
		Se (listExchange_Mailboxs.count > 0) então 
			'Se sim, fazer o seguinte: 
			'Imprimir o encabeçamento e iterá-lo através da lista de objetos de Exchange_Mailbox. 
			Nome usuário de WScript.echo de “; Dias não usados; Artigos; Tamanho do Mb; Loja da caixa postal; Tipo da caixa postal; O usuário incapacitou; Email preliminar” 
			Para cada objExchange_Mailbox nos listExchange_Mailboxs 
				objUser = zero
				strUserInfo = ""
				'Usar o objeto de NameTranslate para converter o nome da exposição ao 
				'Distinto nome exigido para o fornecedor de LDAP. 
				'Ver http://www.rlmueller.net/NameTranslateFAQ.htm 
				Ajustar objTrans = CreateObject (“NameTranslate”) 
				'Inicializar NameTranslate encontrando o catálogo global. 
				objTrans.Init ADS_NAME_INITTYPE_GC, "" 
				'Usar o método do jogo para especific o formato do NT do nome de objeto. 
				objTrans.Set ADS_NAME_TYPE_DISPLAY, objExchange_Mailbox.MailboxDisplayName 
				'Usar o método da obtenção para recuperar o nome distinguido do RPC 1779. 
				strUserDN = objTrans.Get (ADS_NAME_TYPE_1779) 
				'WScript.Echo “que verific: ” & objExchange_Mailbox.MailboxDisplayName
				'Ligar ao objeto de usuário no diretório ativo com o fornecedor de LDAP.				
				Ajustar o objUser = o GetObject (“LDAP: /” & strUserDN) 
				Se <> 0 de Err.Number então
					Problema de WScript.Echo “que começ o objeto” & o strUserDN & o “erro: ” & Err.Nr & “: ” & Err.Description
					Err.Clear
				Terminar se
				'Deixa agora a exposição toda a informação encontrar, anotam que somente a última linha usos a tradução. 
				'saltar os nomes de ínfima qualidade do ANÚNCIO que são cordas muito longas & não usuários mais provável
				se len (objExchange_Mailbox.MailboxDisplayName) < 40 então 
					'Construir a corda da informação de usuário
					strUserInfo = objExchange_Mailbox.MailboxDisplayName & _
					“; ” & DateValue (agora) - DateValue (WMIDateToString (objExchange_Mailbox.LastLogonTime)) &_ 
					“; ” & objExchange_Mailbox.TotalItems & _ 
					“; ” & objExchange_Mailbox.Size & _ 
					“; ” & &_ de objExchange_Mailbox.StoreName 
					“; ” & &_ de objUser.Title
					“; ” & objUser.AccountDisabled
					'Encontrar o endereço preliminar do smtp dos usuários, nós precisam de andar a disposição de endereços
					Para cada strEmail em objUser.proxyAddresses
						se (strEmail, tampões InStr do “smtp”) > 0 'são usados então para endereços preliminares
							strUserInfo = strUserinfo & “; ” & direito (strEmail, Len (strEMail) - 5)
						Terminar se
					Em seguida
					se Len (strUserInfo) > 1 então
					'strUserInfo de WScript.echo
					
					WScript.StdOut.Write objExchange_Mailbox.MailboxDisplayName
					'Não mandatário se o usuário nunca entrou
					Se Len (objExchange_Mailbox.LastLogonTime) > 0 então
						WScript.StdOut.Write “; ” & DateValue (agora) - DateValue (WMIDateToString (objExchange_Mailbox.LastLogonTime))
					Mais
						WScript.StdOut.Write “; -”
					Terminar se
					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
					Para cada strEmail em objUser.proxyAddresses
						se (strEmail, tampões InStr do “smtp”) > 0 'são usados então para endereços preliminares
							'strUserInfo = strUserinfo & “; ” & direito (strEmail, Len (strEMail) - 5)
							WScript.StdOut.Write “; ” & direito (strEmail, Len (strEMail) - 5)
						Terminar se
					Em seguida
					WScript.StdOut.WriteLine
					Terminar se
				Terminar se
			Em seguida 
		Mais 
			'Se nenhum exemplo de Exchange_Mailbox foi retornado, 
			'indicar isso. 
			WScript.Echo “que ADVERTE: Nenhum exemplo de Exchange_Mailbox foi retornado.” 
		Terminar se 
	Terminar se 
Mais 
	Argumento de WScript.echo “: Servername” 
	WScript.echo “onde Servername é o nome de NetBIOS do usuário que da troca você quer alistar” 
Terminar se 
'****************************************************************************** 
Função WMIDateToString (dtmDate)
	'Anotar que as rotinas de conversão da corda até agora em VBScript têm o hábito irritante de ser do “cura auto”
	'significado: se você está usando a notação dos E.U. o mês e o dia n uma posição diferente (mês-dia-ano para E.U., dia-mês-ano para EUR)
	'o lugar está sendo usado para verific que formato de data é preferred, mas VBScript igualmente verific os dias/meses para ver se vai após 12
	'se ele que, porque que data dia é presumido. Entretanto, quando você converte uma disposição de cordas isto conduz a saída desconcertante: certas datas estão corretas
	'mas por datas com dias menos de 12 coisas serão parafusadas acima.
	'Desde que eu estou em Europa, eu estou usando o dia-mês (7.2 e 5.2) que você pode querer mudar este para E.U. data (5.2 e 7.2 posições)
	'adicionalmente eu estou forçando o lugar para usar (os 1043) ajustes holandeses dentro do certificado, porque os E.U. isto são 1033 (ver o encabeçamento)
	WMIDateToString = meados de (dtmDate, 7, 2) & “/” & _ 	
	Meados de (dtmDate, 5, 2) & “/” & _ 					
	Esquerda (dtmDate, 4) & ““  			
	'Hora de salto para agora, porque eu não o preciso.	
'Meados de (dtmDate, 9, 2) & “: ” & _ 
'Meados de (dtmDate, 11, 2) & “: ” & _ 
'Meados de (dtmDate, 13, 2)
	WMIDateToString = CDate (WMIDateToString)
Função do fim
class= do

Resposta : adicionando a última mudança da senha ao vbscript (que exporta as estatísticas 2003 da caixa postal da troca)

Não parece haver nenhuma propriedade específica da classe do objExchange_Mailbox que contem que a data de criação da caixa postal. Entretanto, eu encontrei um certificado que parecesse fazer o que você está procurando:
http://community.spiceworks.com/how_to/show/739

Quanto para a quando os usuários mudaram por último suas senhas:
Você precisaria de agarrar as propriedades do objUser, não objExchange_Mailbox:

Ajustar o objUser = o GetObject (“LDAP: //CN=myerken, OU=management, DC=Fabrikam, DC=com”)
dtmValue = objUser.PasswordLastChanged
pwdLastSet de WScript.echo o “é: ” & dtmValue

De modo que significasse você teria que encontrar o usuário associado com a caixa postal que você está olhando e para retirar então a informação do usuário.
http://www.activxperts.com/activmonitor/windowsmanagement/adminscripts/usersgroups/users/#DetPasswSet.htm
Outras soluções  
 
programming4us programming4us