class= " lineNumbers " 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:
|
class= do
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
|