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 ' ===============================================================
'Scopo: Visualizzare ogni Exchange_Mailbox trovato per l'assistente di scambio,
'e mostrare tutte le proprietà sul Exchange_Mailbox
'oggetti. L'uscita è destinata per essere importata in Excel. Darà la comprensione nei formati della cassetta postale,
'uso ecc.
'Nota: controllare il Web site di SelfADSI per vedere se c'è la grande Info circa l'oggetto di utente: http://www.selfadsi.org/
'Cambiamento: cComputerName [stringa] il calcolatore da accedere a
'Uscita: Visualizza il nome di ogni Exchange_Mailbox e delle proprietà
'Autore: Paul Weterings
'www.servercare.nl
'Data: febbraio 2006
'Rev: cassetta-tipo aggiunto v1.2 del febbraio 2007
'Rev: handeling della data del cambiamento del luglio 2009 v1.3 e delimitazione di virgola, email aggiunto ed utente Info disabile
'Rev: typo fisso dell'agosto 2009 v1.4 piccolo
'Versione 1.4
'===============================================================
opzione esplicita
'Costanti per l'oggetto di 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
Sul riassunto di errore dopo
cWMINameSpace di Const = “radice/MicrosoftExchangeV2„
cWMIInstance di Const = “Exchange_Mailbox„
Stringa del collegamento degli strWinMgmts fiochi 'per WMI
Oggetto del namespace WMI di scambio del objWMIExchange fioco '
Accumulazione di ExchangeLogons dei listExchange_Mailboxs fiochi '
objExchange_Mailbox fioco 'un singolo oggetto di ExchangeLogon WMI
strEmail fioco, strUserInfo, strServerName, objUser, objTrans, strUserDN
'Vedere la funzione di WMIDateToString
SetLocale (1043)
Regolare il objUser = CreateObject (“Scripting.Dictionary„)
Se WScript.Arguments.Count > 0 allora
strServerName = WScript.Arguments.Item (0)
'WScript.echo “che controlla l'assistente di scambio: „ & strServername
'Generare la stringa dell'oggetto, indicante WMI (winmgmts), using
'credenziali correnti dell'utente (impersonationLevel=impersonate),
'sul calcolatore specificato nello strServerName del variabele e
'using il namespace di CIM per il fornitore di scambio.
strWinMgmts = “winmgmts: {impersonationLevel=impersonate}! /“&„/“dello strServerName& &cWMINameSpace
Regolare il objWMIExchange = GetObject (strWinMgmts)
'Verificare che abbiamo potuti regolare correttamente l'oggetto.
Se <> 0 di Err.Number allora
ERRORE di WScript.Echo “: Incapace di collegarsi al namespace di WMI.„ & Err.Description
Err.Clear
Altrimenti
'
'Le risorse che attualmente esistono compaiono come lista di
'Casi di Exchange_Mailbox nel namespace di scambio.
Regolare i listExchange_Mailboxs = objWMIExchange.InstancesOf (cWMIInstance)
'
'Dei casi di Exchange_Mailbox sono stati restituiti?
Se (listExchange_Mailboxs.count > 0) allora
'Se sì, fare quanto segue:
'Stampare l'intestazione e ripetere attraverso la lista degli oggetti di Exchange_Mailbox.
Nome di utente di WScript.echo “; Giorni usati; Articoli; Formato di Mb; Deposito della cassetta postale; Tipo della cassetta postale; L'utente ha reso invalido; Email primario„
Per ogni objExchange_Mailbox nei listExchange_Mailboxs
objUser = posizione di segnale minimo
strUserInfo = ""
'Usare l'oggetto di NameTranslate per convertire il nome dell'esposizione in
'Nome distinto richiesto per il fornitore di LDAP.
'Vedere http://www.rlmueller.net/NameTranslateFAQ.htm
Regolare i objTrans = CreateObject (“NameTranslate„)
'Inizializzare NameTranslate individuando il catalogo globale.
objTrans.Init ADS_NAME_INITTYPE_GC, ""
'Usare il metodo dell'insieme per specificare la disposizione del NT del nome di oggetto.
objTrans.Set ADS_NAME_TYPE_DISPLAY, objExchange_Mailbox.MailboxDisplayName
'Usare il metodo di ottenere per richiamare il nome distinto del RPC 1779.
strUserDN = objTrans.Get (ADS_NAME_TYPE_1779)
'WScript.Echo “che controlla: „ & objExchange_Mailbox.MailboxDisplayName
'Legare all'oggetto di utente nell'indice attivo con il fornitore di LDAP.
Regolare il objUser = GetObject (“LDAP: /„ & strUserDN)
Se <> 0 di Err.Number allora
Problema di WScript.Echo “che ottiene oggetto„ & strUserDN & “errore: „ & Err.Nr & “: „ & Err.Description
Err.Clear
Concluder se
'Ora lascia l'esposizione tutte le informazioni trovare, notano che soltanto l'ultima linea usi la traduzione.
'saltare i nomi disgustosi dell'ANNUNCIO che sono stringhe molto lunghe & non utenti più probabili
se allora len (objExchange_Mailbox.MailboxDisplayName) < 40
'Costruire la stringa di informazioni di utente
strUserInfo = objExchange_Mailbox.MailboxDisplayName & _
“; „ & DateValue (ora) - DateValue (WMIDateToString (objExchange_Mailbox.LastLogonTime)) &_
“; „ & objExchange_Mailbox.TotalItems & _
“; „ & objExchange_Mailbox.Size & _
“; „ & &_ di objExchange_Mailbox.StoreName
“; „ & &_ di objUser.Title
“; „ & objUser.AccountDisabled
'Trovare l'indirizzo primario dello smtp degli utenti, noi devono camminare l'allineamento degli indirizzi
Per ogni strEmail in objUser.proxyAddresses
se InStr (strEmail, protezioni “dello smtp„) > 0 allora 'sono usati per gli indirizzi primari
strUserInfo = strUserinfo & “; „ & di destra (strEmail, Len (strEMail) - 5)
Concluder se
Dopo
se Len (strUserInfo) > 1 allora
'strUserInfo di WScript.echo
WScript.StdOut.Write objExchange_Mailbox.MailboxDisplayName
'Non mandatario se l'utente non entrasse mai
Se Len (objExchange_Mailbox.LastLogonTime) > 0 allora
WScript.StdOut.Write “; „ & DateValue (ora) - DateValue (WMIDateToString (objExchange_Mailbox.LastLogonTime))
Altrimenti
WScript.StdOut.Write “; -„
Concluder 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
Per ogni strEmail in objUser.proxyAddresses
se InStr (strEmail, protezioni “dello smtp„) > 0 allora 'sono usati per gli indirizzi primari
'strUserInfo = strUserinfo & “; „ & di destra (strEmail, Len (strEMail) - 5)
WScript.StdOut.Write “; „ & di destra (strEmail, Len (strEMail) - 5)
Concluder se
Dopo
WScript.StdOut.WriteLine
Concluder se
Concluder se
Dopo
Altrimenti
'Se nessun caso di Exchange_Mailbox sia restituito,
'visualizzare quello.
WScript.Echo “che AVVERTE: Nessun caso di Exchange_Mailbox è stato restituito.„
Concluder se
Concluder se
Altrimenti
Discussione di WScript.echo “: Servername„
WScript.echo “dove Servername è il nome di Netbios dell'assistente che di scambio volete elencare„
Concluder se
'******************************************************************************
Funzione WMIDateToString (dtmDate)
'Notare che le procedure di conversione della stringa fin qui in VBScript hanno l'abitudine fastidiosa di essere “auto che guarisce„
'significato: se stiate usando la notazione degli Stati Uniti il mese ed il giorno n una posizione differente (mese-giorno-anno per gli Stati Uniti, giorno-mese-anno per EUR)
'la scena sta usanda per controllare che disposizione di data è preferred, ma VBScript inoltre controllerà i giorni/mesi per vedere se va oltre 12
'se esso che, dato che che data il giorno è presunto. Tuttavia, quando convertite un allineamento delle stringhe questo conduce ad uscita confusionaria: determinate date sono corrette
'ma per le date con i giorni meno di 12 cose saranno avvitate in su.
'Poiché sono in Europa, sto usando il giorno-mese (7.2 e 5.2) che potete volere cambiare questo per gli Stati Uniti datate (5.2 e 7.2 posizioni)
'sto forzando ulteriormente la scena per usare (le 1043) regolazioni olandesi all'interno dello scritto, dato che gli Stati Uniti questo sono 1033 (vedere l'intestazione)
WMIDateToString = metà di (dtmDate, 7, 2) & “/„ & _
Metà di (dtmDate, 5, 2) & “/„ & _
Parte di sinistra (dtmDate, 4) & ““
'Tempo di salto per ora, poichè non lo ho bisogno.
'Metà di (dtmDate, 9, 2) & “: „ & _
'Metà di (dtmDate, 11, 2) & “: „ & _
'Metà di (dtmDate, 13, 2)
WMIDateToString = CDate (WMIDateToString)
Funzione di conclusione
|