class= " lineNumbers " del
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= del
id= " codeSnippet795354 " class= " del ' ===============================================================
'Propósito: Exhibir cada Exchange_Mailbox encontrado para el servidor del intercambio,
'y demostrar todas las características en el Exchange_Mailbox
'objetos. La salida se significa para ser importada en Excel. Dará la penetración de tamaños de la caja,
'uso etc.
'Nota: comprobar el Web site de SelfADSI para saber si hay el gran Info sobre el objeto de usuario: http://www.selfadsi.org/
'Cambio: cComputerName [secuencia] la computadora a tener acceso
'Salida: Exhibe el nombre de cada Exchange_Mailbox y de características
'Autor: Paul Weterings
'www.servercare.nl
'Fecha: febrero de 2006
'Rev: caja-tipo agregado v1.2 de febrero de 2007
'Rev: el handeling de la fecha del cambio de julio de 2009 v1.3 y delimitación de la coma, email agregado e Info inhabilitado usuario
'Rev: error tipográfico fijo de agosto de 2009 v1.4 pequeño
'Versión 1.4
'===============================================================
opción explícita
'Constantes para el 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
En curriculum vitae del error después
cWMINameSpace de Const = “raíz/MicrosoftExchangeV2”
cWMIInstance de Const = “Exchange_Mailbox”
Secuencia de la conexión de los strWinMgmts déviles 'para WMI
Objeto del namespace WMI del intercambio del objWMIExchange dévil '
Colección de ExchangeLogons de los listExchange_Mailboxs déviles '
objExchange_Mailbox dévil 'un solo objeto de ExchangeLogon WMI
strEmail dévil, strUserInfo, strServerName, objUser, objTrans, strUserDN
'Ver la función de WMIDateToString
SetLocale (1043)
Fijar el objUser = CreateObject (“Scripting.Dictionary”)
Si WScript.Arguments.Count > 0 entonces
strServerName = WScript.Arguments.Item (0)
'WScript.echo el “que comprueba servidor del intercambio: ” y strServername
'Crear la secuencia del objeto, indicando WMI (winmgmts), usar
'credenciales actuales del usuario (impersonationLevel=impersonate),
'en la computadora especificada en el strServerName del variabele, y
'usar el namespace del CIM para el abastecedor del intercambio.
strWinMgmts = “winmgmts: ¡{impersonationLevel=impersonate}! /“y”/“del strServerName& &cWMINameSpace
Fijar el objWMIExchange = GetObject (los strWinMgmts)
'Verificar que pudiéramos fijar correctamente el objeto.
Si <> 0 de Err.Number entonces
ERROR de WScript.Echo “: Incapaz de conectar con el namespace de WMI.” Y Err.Description
Err.Clear
'
'Los recursos que existen actual aparecen como lista de
'Casos de Exchange_Mailbox en el namespace del intercambio.
Fijar los listExchange_Mailboxs = objWMIExchange.InstancesOf (el cWMIInstance)
'
¿'Casos de Exchange_Mailbox fueron vueltos?
Si (listExchange_Mailboxs.count > 0) entonces
'Si sí, hacer el siguiente:
'Imprimir el jefe e iterarlo a través de la lista de objetos de Exchange_Mailbox.
Nombre de usuario de WScript.echo “; Días no usados; Artículos; Tamaño del Mb; Almacén de la caja; Tipo de la caja; El usuario inhabilitó; Email primario”
Para cada objExchange_Mailbox en listExchange_Mailboxs
objUser = falta de información
strUserInfo = ""
'Utilizar el objeto de NameTranslate para convertir el nombre de la exhibición a
'Nombre distinguido requerido para el abastecedor de LDAP.
'Ver http://www.rlmueller.net/NameTranslateFAQ.htm
Fijar los objTrans = CreateObject (“NameTranslate”)
'Inicializar NameTranslate localizando el catálogo global.
objTrans.Init ADS_NAME_INITTYPE_GC, ""
'Utilizar el método del sistema para especificar el formato del NT del nombre de objeto.
objTrans.Set ADS_NAME_TYPE_DISPLAY, objExchange_Mailbox.MailboxDisplayName
'Utilizar el método del conseguir para recuperar el nombre distinguido del RPC 1779.
strUserDN = objTrans.Get (ADS_NAME_TYPE_1779)
'WScript.Echo “que comprueba: ” y objExchange_Mailbox.MailboxDisplayName
'Atar al objeto de usuario en directorio activo con el abastecedor de LDAP.
Fijar el objUser = GetObject (“LDAP: /” y strUserDN)
Si <> 0 de Err.Number entonces
Problema de WScript.Echo “que consigue objeto” y strUserDN y “error: ” Y Err.Nr y “: ” Y Err.Description
Err.Clear
Terminar si
'Ahora deja la exhibición toda la información encontrar, observan que solamente usos en línea pasado la traducción.
'saltar los nombres malos del ANUNCIO que son secuencias muy largas y no usuarios más probable
si entonces len (objExchange_Mailbox.MailboxDisplayName) < 40
'Construir la secuencia de la información de usuario
strUserInfo = objExchange_Mailbox.MailboxDisplayName y _
“; ” Y DateValue (ahora) - DateValue (WMIDateToString (objExchange_Mailbox.LastLogonTime)) &_
“; ” y objExchange_Mailbox.TotalItems y _
“; ” y objExchange_Mailbox.Size y _
“; ” y &_ de objExchange_Mailbox.StoreName
“; ” y &_ de objUser.Title
“; ” y objUser.AccountDisabled
'Encontrar la dirección primaria del smtp de los usuarios, nosotros necesitan caminar el arsenal de direcciones
Para cada strEmail en objUser.proxyAddresses
si (strEmail, los casquillos InStr del “smtp”) > 0 entonces 'se utilizan para las direcciones primarias
strUserInfo = strUserinfo y “; ” Y derecho (strEmail, Len (strEMail) - 5)
Terminar si
Después
si Len (strUserInfo) > 1 entonces
'strUserInfo de WScript.echo
WScript.StdOut.Write objExchange_Mailbox.MailboxDisplayName
'No mandatario si el usuario nunca abrió una sesión
Si Len (objExchange_Mailbox.LastLogonTime) > 0 entonces
WScript.StdOut.Write “; ” Y DateValue (ahora) - DateValue (WMIDateToString (objExchange_Mailbox.LastLogonTime))
WScript.StdOut.Write “; -”
Terminar si
WScript.StdOut.Write “; ” y objExchange_Mailbox.TotalItems
WScript.StdOut.Write “; ” y objExchange_Mailbox.Size
WScript.StdOut.Write “; ” y objExchange_Mailbox.StoreName
WScript.StdOut.Write “; ” y objUser.Title
WScript.StdOut.Write “; ” y objUser.AccountDisabled
Para cada strEmail en objUser.proxyAddresses
si (strEmail, los casquillos InStr del “smtp”) > 0 entonces 'se utilizan para las direcciones primarias
'strUserInfo = strUserinfo y “; ” Y derecho (strEmail, Len (strEMail) - 5)
WScript.StdOut.Write “; ” Y derecho (strEmail, Len (strEMail) - 5)
Terminar si
Después
WScript.StdOut.WriteLine
Terminar si
Terminar si
Después
'Si no se volvió ningunos casos de Exchange_Mailbox,
'exhibir eso.
WScript.Echo “QUE ADVIERTE: No se volvió ningunos casos de Exchange_Mailbox.”
Terminar si
Terminar si
Discusión de WScript.echo “: Servername”
WScript.echo “donde está el nombre Servername de NetBIOS del servidor del intercambio que usted quiere enumerar”
Terminar si
'******************************************************************************
Función WMIDateToString (dtmDate)
'Observar que las rutinas de conversión de la secuencia hasta la fecha en VBScript tienen el hábito molesto de ser “uno mismo que cura”
'significado: si usted está utilizando la notación de los E.E.U.U. el mes y el día n una diversa localización (mes-día-año para los E.E.U.U., día-mes-año para el EUR)
la 'escena se está utilizando para comprobar qué formato de fecha es preferred, pero VBScript también comprobará los días/los meses para ver si va más allá de 12
'si él se presume que, porque que fecha día. Sin embargo, cuando usted convierte un arsenal de secuencias esto lleva a la salida confusa: algunas fechas están correctas
'pero por fechas con días menos de 12 cosas serán estropeadas.
'Puesto que estoy en Europa, estoy utilizando día-mes (7.2 y 5.2) que usted puede querer cambiar esto para los E.E.U.U. fecha (5.2 y 7.2 posiciones)
'estoy forzando además la escena para utilizar (los 1043) ajustes holandeses dentro de la escritura, porque los E.E.U.U. esto son 1033 (véase el jefe)
WMIDateToString = mediados de (dtmDate, 7, 2) y “/” y _
Mediados de (dtmDate, 5, 2) y “/” y _
Izquierda (dtmDate, 4) y ““
'Hora que salta para ahora, pues no lo necesito.
'Mediados de (dtmDate, 9, 2) y “: ” y _
'Mediados de (dtmDate, 11, 2) y “: ” y _
'Mediados de (dtmDate, 13, 2)
WMIDateToString = CDate (WMIDateToString)
Función del final
|