(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:
|
' ===============================================================
'Purpose: Wystawiać serwer Exchange_Mailbox znajdować dla Wekslowy serwer,
'i pokazywać wszystkie własność na the Exchange_Mailbox
'przedmiot. Wydajność znaczyć importować w Przodować. Ono dawać wgląd w skrzynka pocztowa rozmiar,
'użycie Etc.
'Notatka: sprawdzać the SelfADSI strona internetowa dla wielki info o the użytkownik przedmiot: http://www.selfadsi.org/
'Zmiana: cComputerName [sznurek] the komputer
'Wydajność: Wystawiać the imię własność Exchange_Mailbox i własność
'Autor: Paul Weterings
'www.servercare.nl
'Data: feb 2006
'Rev: feb 2007 v1.2 dodawać skrzynka pocztowa-typ
'Rev: jul 2009 v1.3 zmiana daktylowy handeling i przecinek delimitacja, dodawać email i użytkownik niepełnosprawny info
'Rev: aug 2009 v1.4 niezmienny mały literówka
'Wersja 1.4
'===============================================================
opcja wyraźny
'Konstanta dla the NameTranslate przedmiot.
Const ADS_NAME_INITTYPE_GC = 3
Const ADS_NAME_TYPE_NT4 = 3
Const ADS_NAME_TYPE_1779 = (1)
Const ADS_NAME_TYPE_DISPLAY = 4
Na Błąd Życiorys Następnie
Const cWMINameSpace = "korzeń/MicrosoftExchangeV2"
Const cWMIInstance = "Exchange_Mailbox"
Ciemnawy strWinMgmts 'Związek sznurek dla WMI
Ciemnawy objWMIExchange 'Wymiana Namespace WMI przedmiot
Ciemnawy listExchange_Mailboxs 'ExchangeLogons kolekcja
Ciemnawy objExchange_Mailbox 'Pojedynczy ExchangeLogon WMI przedmiot
Ciemnawy strEmail, strUserInfo, strServerName, objUser, objTrans, strUserDN
'Widzieć WMIDateToString funkcja
SetLocale (1043)
Ustalony objUser = CreateObject ("Scripting.Dictionary")
Jeżeli WScript.Arguments.Count > (0) Wtedy
strServerName = WScript.Arguments.Item ((0))
'WScript.echo "Wekslowy serwer: " & strServername
'Tworzyć the przedmiot sznurek, wskazujący WMI (winmgmts), using the
'aktualny użytkownik referencje (impersonationLevel=impersonate),
'na the komputer precyzować w the variabele strServerName, i
'using the CIM namespace dla the Wekslowy dostawca.
strWinMgmts = "winmgmts: {impersonationLevel=impersonate}! /"& strServerName&"/"&cWMINameSpace
Ustalony objWMIExchange = GetObject (strWinMgmts)
'Weryfikować my być sprawnie prawidłowo the przedmiot.
Jeżeli Err.Number <> (0) Wtedy
WScript.Echo "BŁĄD: Niezdolny the WMI namespace." & Err.Description
Err.Clear
Inny
'
'The Zasoby który obecnie istnieć pojawiać się jako lista
'Exchange_Mailbox przykład w the Wymiana namespace.
Ustalony listExchange_Mailboxs = objWMIExchange.InstancesOf (cWMIInstance)
'
'Jakaś Exchange_Mailbox Przykład wracać?
Jeżeli (listExchange_Mailboxs.count > (0)) Wtedy
'Jeżeli tak, robić the następujący:
'Drukować chodnikowiec i Iterate przez the lista Exchange_Mailbox przedmiot.
WScript.echo "Użytkownik imię; Dzień używać; Rzecz; Mb Rozmiar; Skrzynka pocztowa sklep; Skrzynka pocztowa Typ; Użytkownik Obezwładniać; Początkowy Email"
Dla ListExchange_Mailboxs objExchange_Mailbox w listExchange_Mailboxs
objUser = null
strUserInfo = ""
'Używać the NameTranslate przedmiot the Pokaz Imię the
'Odróżniać Imię wymagać dla the LDAP dostawca.
'Widzieć http://www.rlmueller.net/NameTranslateFAQ.htm
Ustawiać objTrans = CreateObject ("NameTranslate")
'Initialize NameTranslate the Globalny Katalog.
objTrans.Init ADS_NAME_INITTYPE_GC, ""
'Używać the Ustalony metoda the NT format the przedmiot imię.
objTrans.Set ADS_NAME_TYPE_DISPLAY, objExchange_Mailbox.MailboxDisplayName
'Używać the Dostawać metoda the RPC 1779 Odróżniać Imię.
strUserDN = objTrans.Get (ADS_NAME_TYPE_1779)
'WScript.Echo ": " & objExchange_Mailbox.MailboxDisplayName
'Oprawiać the użytkownik przedmiot w Aktywny Książka telefoniczna z the LDAP dostawca.
Ustawiać objUser = GetObject ("LDAP: /" & strUserDN)
Jeżeli Err.Number <> (0) Wtedy
WScript.Echo "Problemowy przedmiot" & strUserDN & "Błąd: " & Err.Nr & ": " & Err.Description
Err.Clear
Kończyć Jeżeli
'Teraz pozwalać pokaz wszystkie the informacja, zauważać że tylko the ostatni kreskowy uses the przekład.
'omijać the użytkownik REKLAMA imię który być bardzo długi sznurek & najprawdopodobniejszy nie użytkownik
jeżeli len (objExchange_Mailbox.MailboxDisplayName) < 40 Wtedy
'Budować użytkownik informacja sznurek
strUserInfo = objExchange_Mailbox.MailboxDisplayName & _
"; " & DateValue (Teraz) - DateValue (WMIDateToString (objExchange_Mailbox.LastLogonTime)) &_
"; " & objExchange_Mailbox.TotalItems & _
"; " & objExchange_Mailbox.Size & _
"; " & objExchange_Mailbox.StoreName &_
"; " & objUser.Title &_
"; " & objUser.AccountDisabled
'Znajdować the użytkownik prasmoła SMTP adres, my potrzebować the szyk adres
Dla ObjUser.proxyAddresses strEmail w objUser.proxyAddresses
jeżeli InStr (strEmail, "SMTP") > (0) wtedy 'nakrętka używać dla początkowy adres
strUserInfo = strUserinfo & "; " & Prawy (strEmail, Len (strEMail) - 5)
Kończyć Jeżeli
Następnie
jeżeli Len (strUserInfo) > (1) Wtedy
'WScript.echo strUserInfo
WScript.StdOut.Write objExchange_Mailbox.MailboxDisplayName
'Nie mandatariusz jeżeli użytkownik nigdy notować dalej
Jeżeli Len (objExchange_Mailbox.LastLogonTime) > (0) Wtedy
WScript.StdOut.Write "; " & DateValue (Teraz) - DateValue (WMIDateToString (objExchange_Mailbox.LastLogonTime))
Inny
WScript.StdOut.Write "; -"
Kończyć Jeżeli
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
Dla ObjUser.proxyAddresses strEmail w objUser.proxyAddresses
jeżeli InStr (strEmail, "SMTP") > (0) wtedy 'nakrętka używać dla początkowy adres
'strUserInfo = strUserinfo & "; " & Prawy (strEmail, Len (strEMail) - 5)
WScript.StdOut.Write "; " & Prawy (strEmail, Len (strEMail) - 5)
Kończyć Jeżeli
Następnie
WScript.StdOut.WriteLine
Kończyć Jeżeli
Kończyć jeżeli
Następnie
Inny
'Jeżeli żadny Exchange_Mailbox przykład wracać,
'wystawiać to.
WScript.Echo ": Żadny Exchange_Mailbox przykład wracać."
Kończyć Jeżeli
Kończyć Jeżeli
Inny
WScript.echo "Argument: Servername"
WScript.echo "Dokąd Servername być the NetBIOS imię the Wekslowy serwer ty chcieć"
Kończyć Jeżeli
'******************************************************************************
Funkcja WMIDateToString (dtmDate)
'Zauważać że the sznurek do teraz zamiana rutyna w VBScript mieć the rozzłościć przyzwyczajenie "jaźń gojenie"
'znaczenie: jeżeli ty używać USA notacja the miesiąc i dzień n różny lokacja (miesiąc-dzień-rok dla USA, dzień-miesiąc-rok dla EUR)
'miejsce akcji używać jaki daktylowy format woleć, ale VBScript także sprawdzać the dzień/miesiąc jeżeli ono iść za 12
'jeżeli ono który, dato che który daktylowy dzień przypuszczać. , Gdy ty nawracać szyk sznurek nawracać prowadzenie bałamutny wydajność: niektóre data być poprawny
'ale dla data z dzień śrubować niż 12 rzecz śrubować niż.
'Ponieważ I być w Europa, I używać dzień-miesiąc (7,2 i 5,2) ty móc móc dla USA datować (5,2 i 7,2 pozycja)
'dodatkowo I zmuszać miejsce akcji the holenderski (1043) położenie wśród the pismo, dato che USA ) być 1033 (widzieć chodnikowiec)
WMIDateToString = W połowie (dtmDate, 7, 2) & "/" & _
W połowie (dtmDate, 5, 2) & "/" & _
Lewica (dtmDate, 4) & ""
'Czas na razie, gdy I potrzebować ono.
'W połowie (dtmDate, 9, 2) & ": " & _
'W połowie (dtmDate, 11, 2) & ": " & _
'W połowie (dtmDate, 13, 2)
WMIDateToString = CDate (WMIDateToString)
Końcówka Funkcja
|