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:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
|
class=
id= " codeSnippet767227 " class= " ' написано мимо
'Этот сценарий вызван своим сценарием TBCUpdate.vbs товарища и выполняет
'фактические творение, сравнение, и уточнение директории TBC потребителя.
'Директория TBC заселена от скоросшивателя директории TBC общественного. То
'скоросшиватель заселен через запланированную задачу бежит дальше
'Запланированная задача вызвана «скоросшивателем директории уточнения TBC общественным» и бежит
'
'Уточнение директории TBC \ UpdatePublicFolder \ Adfind.bat " на 12:00 am ежедневном.
'Проверка *** для того чтобы увидеть если потребитель будет член ***, то группы GPO_NoOLContacts
Тусклое objADObject, strGroup, objGroupList, objSysInfo, strUser, objUser, wshNetwork
'Свяжите к предмету потребителя в активно директории с провайдером LDAP.
Установите objSysInfo = CreateObject («ADSystemInfo»)
strUser = objSysInfo.UserName
Установите objUser = GetObject («LDAP: /» & strUser)
Установите objADObject = GetObject (objUser.AdsPath)
Установите wshNetwork = CreateObject («WScript.Network»)
'strGroup = «GPO_NoOLContacts»
'Если IsMember (strGroup) после этого
'wscript.quit
'Закончитесь если
если будний день (дата) = vbsunday после этого
moddate = -4
закончитесь если
если будний день (дата) = vbmonday после этого
moddate = -5
закончитесь если
если будний день (дата) = vbtuesday после этого
moddate = -6
закончитесь если
если будний день (дата) = vbwednesday после этого
moddate = 0
закончитесь если
если будний день (дата) = vbthursday после этого
moddate = -1
закончитесь если
если будний день (дата) = vbfriday после этого
moddate = -2
закончитесь если
если будний день (дата) = vbsaturday после этого
moddate = -3
закончитесь если
Установите wshShell = WScript.CreateObject («WScript.Shell»)
strComputerName = wshShell.ExpandEnvironmentStrings («%COMPUTERNAME%")
Установите objFSO = CreateObject («Scripting.FileSystemObject»)
filedate = DateAdd («d», moddate, дата ())
filedate = заменяет ть (filedate, «/», «-»)
filename = «директория g:\TBC - обновленная» & filedate & «.txt»
Установленное objFile = objFSO.OpenTextFile (filename, 8)
objFile.WriteLine (теперь () & «PublictoPrivate.vbs от машины: » & strComputerName)
olFolderContacts Const = 10
olPublicFoldersAllPublicFolders Const = 18
Тусклое olkApp, olkSes, olkContacts, olkPublic, olkContact, intIndex, olPV, olkPublicVersion, plkPersonalVersion
Wscript.echo «проверяя директорию TBC.»
Установите olkApp = CreateObject («Outlook.Application»)
Установите olkSes = olkApp.GetNamespace («MAPI»)
'Находите имя комплекта параметров пользователя по дефолту внешнего вида и начните внешний вид в том профиле
профиль = ReadReg («HKCU \ средство программирования \ Майкрософт \ Шиндошсо НТ \ Subsystem послания CurrentVersion \ Windows \ профили \ DefaultProfile»)
Wscript.echo «подключая к профилю внешнего вида невыполнения обязательства: » & профиль
objFile.WriteLine (теперь () & «подключающ к профилю внешнего вида невыполнения обязательства: » & профиль)
профиль olkSes.Logon
'Создайте директорию TBC если она не существует
Установите tbcFolder = olkSes.GetDefaultFolder (olFolderContacts)
На ошибке возобновьте затем
Установите myNewFolder = tbcFolder.Folders.Add («директория TBC»)
если Err.number = 0 после этого myNewFolder.ShowAsOutlookAB = True
На ошибке переход 0
'Положение скоросшивателя директории TBC потребителя
Установите olkContacts = olkSes.GetDefaultFolder (olFolderContacts). Скоросшиватели («директория TBC»)
'Положение скоросшивателя директории публики TBC
Установленное olkPublic = olkSes.GetDefaultFolder (olPublicFoldersAllPublicFolders). Скоросшиватели («директория TBC»). Скоросшиватели («директория TBC»)
'Находите вариант экземпляра потребителя личного директории TBC
'Она ищет единственный контакт с «*» в фамилии
Для intIndex = olkContacts.Items.count до 1 раздел -1
olkPV = olkContacts.items (intIndex) .lastname
если inStr, то (olkPV, «*") > 0 после этого
olkPersonalVersion = olkContacts.items (intIndex) .lastname
выходите для
закончитесь если
Затем
'Находите вариант экземпляра общественного скоросшивателя директории TBC
'Она ищет единственный контакт с «*» в фамилии
Для intIndex = 1 к разделу +1 olkPublic.Items.count
olkPV = olkPublic.items (intIndex) .lastname
если inStr, то (olkPV, «*") > 0 после этого
olkPublicVersion = olkPublic.items (intIndex) .lastname
выходите для
закончитесь если
Затем
вариант wscript.echo «личный: » & olkPersonalVersion
вариант wscript.echo «общественный: » & olkPublicVersion
objFile.WriteLine ("")
objFile.WriteLine (теперь () & «личный вариант: » & olkPersonalVersion)
objFile.WriteLine (теперь () & «общественный вариант: » & olkPublicVersion)
'Если варианты не равны
если olkPersonalVersion <> olkPublicVersion после этого
'Уничтожьте все контакты
wscript.echo «извлекая личный экземпляр директории TBC»
objFile.WriteLine (теперь () & «извлекающ личный экземпляр директории TBC»)
Для intIndex = olkContacts.Items.count до 1 раздел -1
intIndex olkContacts.Items.Remove
Затем
детали wscript.echo «полные в директории TBC: » & olkContacts.Items.count
objFile.WriteLine (теперь () & «полные детали в директории TBC: » & olkContacts.Items.count)
'Скопируйте контакты от общественного скоросшивателя к приватному скоросшивателю
Установите olkPublic = olkSes.GetDefaultFolder (olPublicFoldersAllPublicFolders). Скоросшиватели («директория TBC»). Скоросшиватели («директория TBC»)
Wscript.echo «уточняя» & директория olkPublic.Items.count & «TBC контактируют…»
objFile.WriteLine (теперь () & «уточнение» & директория olkPublic.Items.count & «TBC контактируют… ")
Для intIndex = olkPublic.Items.count до 1 раздел -1
Установите olkContact = olkPublic.Items (intIndex). Скопируйте
olkContact.Unread = «ложно»
olkContacts olkContact.Move
если Mod 100 = 0 intIndex после этого
Wscript.echo «только» & intIndex & " вышли. «
objFile.WriteLine (теперь () & «только» & intIndex & " left.")
закончитесь если
если (intIndex < 100) и (Mod 25 = 0 intIndex) после этого Wscript.echo «только» & intIndex & " вышли. «
Затем
закончитесь если
Ваша местная TBC директория Wscript.echo «содержит» & olkContacts.Items.count & «детали и последня.»
"" Wscript.echo
Wscript.echo «если кто-то пропавше от директории TBC, то пожалуйста контактируют их и спрашивают то»
Wscript.echo «они уточняют их показатель внутри. Больше информации можно найти на»
Wscript.echo «ЭТО будет страницой.»
"" Wscript.echo
Wscript.echo «это, котор окно закроет коротк. Пожалуйста ждите пока данные по сервера обновленный…»
objFile.WriteLine (теперь () & «ваша директория TBC содержит» & olkContacts.Items.count & «детали и последнее .")
objFile.WriteLine («---------------------------------------------------------------------------------------------")
objFile.WriteLine ("")
Wscript.sleep (30000)
Установите olkContacts = ничего
Установите olkPublic = ничего
Установите olkContact = ничего
olkSes.Logoff
Установите olkSes = ничего
Установите olkApp = ничего
Установите objGroupList = ничего
Установите objADObject = ничего
'Функции и вещество
Функция IsMember (strGroup)
'Функция, котор нужно испытать для группового членства.
'strGroup будет имя NT (sAMAccountName) группы, котор нужно испытать.
'objGroupList будет предметом словаря, с глобальный объемом.
'Возвращает поистине если потребитель или компьютер будут членом группы.
Если IsEmpty (objGroupList) после этого
Звонок LoadGroups
Закончитесь если
IsMember = objGroupList.Exists (strGroup)
Функция конца
Sub LoadGroups
'Подпрограмма для того чтобы заселить предмет словаря с групповыми членствами.
'objADObject будет предмет потребителя или компьютера, с глобальный объемом.
'objGroupList будет предметом словаря, с глобальный объемом.
Тусклые arrbytGroups, j
Тусклые arrstrGroupSids (), objGroup
Установите objGroupList = CreateObject («Scripting.Dictionary»)
objGroupList.CompareMode = vbTextCompare
блок objADObject.GetInfoEx («tokenGroups»), 0
arrbytGroups = objADObject.Get («tokenGroups»)
Если TypeName (arrbytGroups) = «байт ()» после этого
arrstrGroupSids ReDim (0)
arrstrGroupSids (0) = OctetToHexStr (arrbytGroups)
Установите objGroup = GetObject («LDAP: //")
objGroupList (objGroup.sAMAccountName) = True
Установите objGroup = ничего
Выходите подводная лодка
Закончитесь если
Если UBound (arrbytGroups) = -1 после этого
Выходите подводная лодка
Закончитесь если
arrstrGroupSids ReDim (UBound (arrbytGroups))
Для j = 0 к UBound (arrbytGroups)
arrstrGroupSids (j) = OctetToHexStr (arrbytGroups (j))
Установите objGroup = GetObject («LDAP: //")
objGroupList (objGroup.sAMAccountName) = True
Затем
Установите objGroup = ничего
Закончите подводную лодку
Функция OctetToHexStr (arrbytOctet)
'Действуйте для того чтобы преобразовать OctetString (блок байта) к Hex шнуру.
Затемните k
OctetToHexStr = ""
Для k = 1 к Lenb (arrbytOctet)
_ OctetToHexStr = OctetToHexStr
& право («0» & наговор (Ascb (Midb (arrbytOctet, k, 1))), 2)
Затем
Функция конца
Функция ReadReg (RegPath)
'Действуйте для того чтобы прочитать значение шнура ключа регистратуры
Затемните objRegistry, ключ
Установите objRegistry = CreateObject («Wscript.shell»)
Ключ = objRegistry.RegRead (RegPath)
ReadReg = ключ
Функция конца
|