class= " lineNumbers "
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=
id= " codeSnippet795354 " class= " ' ===============================================================
'Цель: Покажите каждое Exchange_Mailbox ое для сервера обменом,
'и покажите все свойства на Exchange_Mailbox
'предметы. Выход намеревается быть импортированным в Эксел. Он передаст проницательность в размерах почтового ящика,
'использование etc.
'Примечание: проверите вебсайт SelfADSI для большого info о предмете потребителя: http://www.selfadsi.org/
'Изменение: cComputerName [шнур] компьютер, котор нужно достигнуть
'Выход: Показывает имя каждого Exchange_Mailbox и свойств
'Автор: Паыль Weterings
'www.servercare.nl
'Дата: февраль 2006
'Rev: почтов-тип февраля 2007 добавленный v1.2
'Rev: handeling даты изменения июля 2009 v1.3 и размежевывание запятого, добавленное электронная почта и выведенный из строя потребителем info
'Rev: typo августа 2009 v1.4 фикчированный малый
'Вариант 1.4
'===============================================================
вариант точный
'Константы для предмета 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
На резюме ошибки затем
cWMINameSpace Const = «корень/MicrosoftExchangeV2»
cWMIInstance Const = «Exchange_Mailbox»
Шнур соединения тусклых strWinMgmts 'для WMI
Предмет Namespace WMI обменом тусклого objWMIExchange '
Собрание ExchangeLogons тусклых listExchange_Mailboxs '
Тусклое objExchange_Mailbox 'одиночный предмет ExchangeLogon WMI
Тусклое strEmail, strUserInfo, strServerName, objUser, objTrans, strUserDN
'См. функцию WMIDateToString
SetLocale (1043)
Установите objUser = CreateObject («Scripting.Dictionary»)
Если WScript.Arguments.Count > 0 после этого
strServerName = WScript.Arguments.Item (0)
'WScript.echo «проверяя сервера обменом: » & strServername
'Создайте шнур предмета, показывая WMI (winmgmts), using
'в настоящее время документы потребителя (impersonationLevel=impersonate),
'на компьютере определенном в strServerName variabele, и
'using namespace CIM для провайдера обменом.
strWinMgmts = «winmgmts: {impersonationLevel=impersonate}! /«&» strServerName&/«&cWMINameSpace
Установите objWMIExchange = GetObject (strWinMgmts)
'Подтвердите мы могло правильно установить предмет.
Если <> 0 Err.Number после этого
ОШИБКА WScript.Echo «: Неспособно для того чтобы соединиться к namespace WMI.» & Err.Description
Err.Clear
Еще
'
'Ресурсы в настоящее время существуют появляются как список
'Примеры Exchange_Mailbox в namespace обменом.
Установите listExchange_Mailboxs = objWMIExchange.InstancesOf (cWMIInstance)
'
'Все примеры Exchange_Mailbox были возвращены?
Если (listExchange_Mailboxs.count > 0) после этого
'Если да, сделайте следующий:, то
'Напечатайте коллектор и повторите через список предметов Exchange_Mailbox.
Имя потребителя WScript.echo «; Используемые дни; Детали; Размер Mb; Магазин почтового ящика; Тип почтового ящика; Потребитель вывел из строя; Главным образом электронная почта»
Для каждого objExchange_Mailbox в listExchange_Mailboxs
objUser = null
strUserInfo = ""
'Используйте предмет NameTranslate для того чтобы преобразовать имя индикации к
'Выдающийся имя требуемое для провайдера LDAP.
'См. http://www.rlmueller.net/NameTranslateFAQ.htm
Установите objTrans = CreateObject («NameTranslate»)
'Выступите NameTranslate с иничиативой путем обнаруживать местонахождение глобальный каталог.
objTrans.Init ADS_NAME_INITTYPE_GC, ""
'Используйте метод комплекта для того чтобы определить форму NT имени предмета.
objTrans.Set ADS_NAME_TYPE_DISPLAY, objExchange_Mailbox.MailboxDisplayName
'Используйте метод получать для того чтобы восстановить имя RPC 1779 выдающийся.
strUserDN = objTrans.Get (ADS_NAME_TYPE_1779)
'WScript.Echo «проверяя: » & objExchange_Mailbox.MailboxDisplayName
'Свяжите к предмету потребителя в активно директории с провайдером LDAP.
Установите objUser = GetObject («LDAP: /» & strUserDN)
Если <> 0 Err.Number после этого
Проблема WScript.Echo «получая предмет» & strUserDN & «ошибку: » & Err.Nr & «: » & Err.Description
Err.Clear
Закончитесь если
'Теперь препятствует индикации вся информация найти, заметьте что только последняя линия пользы перевод.
'прыгните crappy именами ОБЪЯВЛЕНИЯ будут очень длинними шнурами & большинств правоподобными не потребителями
если len (objExchange_Mailbox.MailboxDisplayName) < 40 после этого
'Построьте шнур данным по потребителя
strUserInfo = objExchange_Mailbox.MailboxDisplayName & _
«; » & DateValue (теперь) - DateValue (WMIDateToString (objExchange_Mailbox.LastLogonTime)) &_
«; » & objExchange_Mailbox.TotalItems & _
«; » & objExchange_Mailbox.Size & _
«; » & &_ objExchange_Mailbox.StoreName
«; » & &_ objUser.Title
«; » & objUser.AccountDisabled
'Находите адрес SMTP потребителей главным образом, мы нужно погулять блок адресов
Для каждого strEmail в objUser.proxyAddresses
если (strEmail, крышки InStr «SMTP») > 0 после этого 'используйте для главным образом адресов
strUserInfo = strUserinfo & «; » & право (strEmail, Len (strEMail) - 5)
Закончитесь если
Затем
если Len (strUserInfo) > 1 после этого
'strUserInfo WScript.echo
WScript.StdOut.Write objExchange_Mailbox.MailboxDisplayName
'Не мандатарий если потребитель никогда внесенный в журнал дальше
Если Len (objExchange_Mailbox.LastLogonTime) > 0 после этого
WScript.StdOut.Write «; » & DateValue (теперь) - DateValue (WMIDateToString (objExchange_Mailbox.LastLogonTime))
Еще
WScript.StdOut.Write «; -»
Закончитесь если
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
Для каждого strEmail в objUser.proxyAddresses
если (strEmail, крышки InStr «SMTP») > 0 после этого 'используйте для главным образом адресов
'strUserInfo = strUserinfo & «; » & право (strEmail, Len (strEMail) - 5)
WScript.StdOut.Write «; » & право (strEmail, Len (strEMail) - 5)
Закончитесь если
Затем
WScript.StdOut.WriteLine
Закончитесь если
Закончитесь если
Затем
Еще
'Если никакие примеры Exchange_Mailbox не были возвращены, то
'покажите то.
WScript.Echo «ПРЕДУПРЕЖДАЯ: Не были возвращены никакие примеры Exchange_Mailbox.»
Закончитесь если
Закончитесь если
Еще
Аргумент WScript.echo «: Servername»
WScript.echo «где Servername будет именем NetBIOS сервера обменом, котор вы хотите перечислить»
Закончитесь если
'******************************************************************************
Функция WMIDateToString (dtmDate)
'Заметьте что шнур для того чтобы датировать режимы преобразования в VBScript имеет досадный привычку быть «излечивать собственной личности»
'смысль: если вы используете нотацию, то США месяц и день будут n по-разному положение (месяц-дн-год для США, дн-месяц-год для EUR)
'место используется для того чтобы проверить что формат даты preferred, но VBScript также проверит дни/месяцы для того чтобы увидеть если оно идет за 12
'если оно, то, потому что который датирует день предположено. Однако, когда вы преобразовываете блок шнуров это водит к confusing выходу: некоторые даты правильно
'но на даты с днями меньш чем 12 вещи будут привинчены вверх.
'В виду того что я нахожусь в Европ, я использую дн-месяц (7.2 и 5.2), котор вы можете хотеть изменить это для США датируете (5.2 и 7.2 положения)
'дополнительн я принуждаю место для использования голландских (1043) установок внутри сценарий, потому что США это 1033 (см. коллектор)
WMIDateToString = средний (dtmDate, 7, 2) & «/» & _
Средний (dtmDate, 5, 2) & «/» & _
Левая сторона (dtmDate, 4) & ««
'Прыгая время для теперь, по мере того как мне не нужно оно.
'Средний (dtmDate, 9, 2) & «: » & _
'Средний (dtmDate, 11, 2) & «: » & _
'Средний (dtmDate, 13, 2)
WMIDateToString = CDate (WMIDateToString)
Функция конца
|