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:
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= del
id= " codeSnippet767227 " class= " del ' escrito cerca
'Esta escritura es llamada por su escritura TBCUpdate.vbs del compañero y realiza
'creación, comparación, y puesta al día reales del directorio de TBC del usuario.
'El directorio de TBC se puebla de la carpeta pública del directorio de TBC. Eso
la 'carpeta se puebla vía una tarea programada que funcione encendido
'La tarea programada se llama “carpeta pública del directorio de la actualización TBC” y funciona
'
'Actualización del directorio de TBC \ UpdatePublicFolder \ Adfind.bat " en el 12:00 diario.
'Cheque del *** para considerar si el usuario es un miembro del *** del grupo de GPO_NoOLContacts
objADObject dévil, strGroup, objGroupList, objSysInfo, strUser, objUser, wshNetwork
'Atar al objeto de usuario en directorio activo con el abastecedor de LDAP.
Fijar el objSysInfo = CreateObject (“ADSystemInfo”)
strUser = objSysInfo.UserName
Fijar el objUser = GetObject (“LDAP: /” y strUser)
Fijar el objADObject = GetObject (objUser.AdsPath)
Fijar el wshNetwork = CreateObject (“WScript.Network”)
'strGroup = “GPO_NoOLContacts”
'Si IsMember (strGroup) entonces
'wscript.quit
'Terminar si
si día laborable (fecha) = vbsunday entonces
moddate = -4
terminar si
si día laborable (fecha) = vbmonday entonces
moddate = -5
terminar si
si día laborable (fecha) = vbtuesday entonces
moddate = -6
terminar si
si día laborable (fecha) = vbwednesday entonces
moddate = 0
terminar si
si día laborable (fecha) = vbthursday entonces
moddate = -1
terminar si
si día laborable (fecha) = vbfriday entonces
moddate = -2
terminar si
si día laborable (fecha) = vbsaturday entonces
moddate = -3
terminar si
Fijar el wshShell = WScript.CreateObject (“WScript.Shell”)
strComputerName = wshShell.ExpandEnvironmentStrings (“%COMPUTERNAME%")
Fijar el objFSO = CreateObject (“Scripting.FileSystemObject”)
filedate = DateAdd (“d”, moddate, fecha ())
el filedate = substituye (filedate, “/”, “-”)
nombre de fichero = “directorio de g:\TBC - actualizado” y filedate y “.txt”
objFile determinado = objFSO.OpenTextFile (nombre de fichero, 8)
objFile.WriteLine (ahora () y de “PublictoPrivate.vbs funcionamiento de la máquina: ” y strComputerName)
olFolderContacts de Const = 10
olPublicFoldersAllPublicFolders de Const = 18
olkApp dévil, olkSes, olkContacts, olkPublic, olkContact, intIndex, olPV, olkPublicVersion, plkPersonalVersion
Wscript.echo el “que comprueban directorio de TBC.”
Fijar el olkApp = CreateObject (“Outlook.Application”)
Fijar los olkSes = olkApp.GetNamespace (“MAPI”)
'Encontrar el nombre de perfil de defecto de la perspectiva y comenzar la perspectiva en ese perfil
perfil = ReadReg (“HKCU \ software \ Microsoft \ Windows NT \ CurrentVersion \ subsistema de la mensajería de Windows \ perfiles \ DefaultProfile”)
Wscript.echo “que conecta con el perfil de la perspectiva del defecto: ” y perfil
objFile.WriteLine (ahora () y “conectando con el perfil de la perspectiva del defecto: ” y perfil)
perfil de olkSes.Logon
'Crear el directorio de TBC si no existe
Fijar el tbcFolder = olkSes.GetDefaultFolder (los olFolderContacts)
En error reasumir después
Fijar el myNewFolder = tbcFolder.Folders.Add (el “directorio de TBC”)
si Err.number = 0 entonces myNewFolder.ShowAsOutlookAB = verdad
En el error 0 indicado
'Localización de la carpeta del directorio de TBC del usuario
Fijar los olkContacts = olkSes.GetDefaultFolder (olFolderContacts). Carpetas (“directorio de TBC”)
'Localización de la carpeta del directorio del público TBC
olkPublic determinado = olkSes.GetDefaultFolder (olPublicFoldersAllPublicFolders). Carpetas (“directorio de TBC”). Carpetas (“directorio de TBC”)
'Encontrar la versión de la copia personal del usuario del directorio de TBC
'Busca el único contacto con “*” en el apellido
Para el intIndex = olkContacts.Items.count a 1 paso -1
olkPV = olkContacts.items (intIndex) .lastname
si inStr (olkPV, “*") > 0 entonces
olkPersonalVersion = olkContacts.items (intIndex) .lastname
salir para
terminar si
Después
'Encontrar la versión de la copia de la carpeta pública del directorio de TBC
'Busca el único contacto con “*” en el apellido
Para el intIndex = 1 al paso +1 de olkPublic.Items.count
olkPV = olkPublic.items (intIndex) .lastname
si inStr (olkPV, “*") > 0 entonces
olkPublicVersion = olkPublic.items (intIndex) .lastname
salir para
terminar si
Después
versión personal de wscript.echo “: ” y olkPersonalVersion
versión pública de wscript.echo “: ” y olkPublicVersion
objFile.WriteLine ("")
objFile.WriteLine (ahora () y “versión personal: ” y olkPersonalVersion)
objFile.WriteLine (ahora () y “versión pública: ” y olkPublicVersion)
'Si las versiones no son iguales
si olkPersonalVersion del <> del olkPublicVersion entonces
'Suprimir todos los contactos
wscript.echo la “que quitan copia personal del directorio de TBC”
objFile.WriteLine (ahora () y “quitando la copia personal del directorio de TBC”)
Para el intIndex = olkContacts.Items.count a 1 paso -1
intIndex de olkContacts.Items.Remove
Después
artículos totales de wscript.echo “en directorio de TBC: ” y olkContacts.Items.count
objFile.WriteLine (ahora () y “artículos totales en directorio de TBC: ” y olkContacts.Items.count)
'Copiar los contactos de la carpeta pública a la carpeta privada
Fijar olkPublic = olkSes.GetDefaultFolder (olPublicFoldersAllPublicFolders). Carpetas (“directorio de TBC”). Carpetas (“directorio de TBC”)
Wscript.echo “que se pone al día” y el directorio de olkPublic.Items.count y “de TBC entra en contacto con…”
objFile.WriteLine (ahora () y la “puesta al día” y el directorio de olkPublic.Items.count y “de TBC entra en contacto con… ")
Para el intIndex = olkPublic.Items.count a 1 paso -1
Fijar el olkContact = olkPublic.Items (intIndex). Copiar
olkContact.Unread = “falso”
olkContacts de olkContact.Move
si MOD 100 = 0 del intIndex entonces
Wscript.echo “solamente” y el intIndex y " se fueron. “
objFile.WriteLine (ahora () y “solamente” y intIndex y " left.")
terminar si
si (intIndex < 100) y (MOD 25 = 0 del intIndex) entonces Wscript.echo “solamente” y el intIndex y " se fueron. “
Después
terminar si
Su TBC directorio local de Wscript.echo “contiene” y olkContacts.Items.count y los “artículos y es hasta la fecha.”
"" De Wscript.echo
Wscript.echo “si alguien falta del directorio de TBC, los entra en contacto con por favor y pide eso”
Wscript.echo “ponen al día su expediente adentro. Más información se puede encontrar en”
Wscript.echo “es página.”
"" De Wscript.echo
Wscript.echo “que esta ventana se cerrará pronto. Esperar por favor mientras que los datos del servidor son actualizados…”
objFile.WriteLine (ahora () y “su directorio de TBC contiene” y olkContacts.Items.count y los “artículos y es .") hasta la fecha
objFile.WriteLine (“---------------------------------------------------------------------------------------------")
objFile.WriteLine ("")
Wscript.sleep (30000)
Fijar los olkContacts = nada
Fijar olkPublic = nada
Fijar el olkContact = nada
olkSes.Logoff
Fijar los olkSes = nada
Fijar el olkApp = nada
Fijar el objGroupList = nada
Fijar el objADObject = nada
'Funciones y materia
Función IsMember (strGroup)
'Función a probar para la calidad de miembro de grupo.
el 'strGroup es el nombre del NT (sAMAccountName) del grupo a probar.
el 'objGroupList es un objeto del diccionario, con alcance global.
'Vuelve verdad si el usuario o la computadora es un miembro del grupo.
Si IsEmpty (objGroupList) entonces
Llamada LoadGroups
Terminar si
IsMember = objGroupList.Exists (strGroup)
Función del final
LoadGroups secundario
'Subrutina para poblar el objeto del diccionario con calidades de miembro de grupo.
el 'objADObject es el objeto del usuario o de la computadora, con alcance global.
el 'objGroupList es un objeto del diccionario, con alcance global.
arrbytGroups déviles, j
arrstrGroupSids déviles (), objGroup
Fijar el objGroupList = CreateObject (“Scripting.Dictionary”)
objGroupList.CompareMode = vbTextCompare
arsenal de objADObject.GetInfoEx (“tokenGroups”), 0
arrbytGroups = objADObject.Get (“tokenGroups”)
Si TypeName (arrbytGroups) = “octeto ()” entonces
arrstrGroupSids de ReDim (0)
arrstrGroupSids (0) = OctetToHexStr (arrbytGroups)
Fijar el objGroup = GetObject (“LDAP: //")
el objGroupList (objGroup.sAMAccountName) = verdad
Fijar el objGroup = nada
Salir el submarino
Terminar si
Si UBound (arrbytGroups) = -1 entonces
Salir el submarino
Terminar si
arrstrGroupSids de ReDim (UBound (arrbytGroups))
Para j = 0 a UBound (arrbytGroups)
arrstrGroupSids (j) = OctetToHexStr (arrbytGroups (j))
Fijar el objGroup = GetObject (“LDAP: //")
el objGroupList (objGroup.sAMAccountName) = verdad
Después
Fijar el objGroup = nada
Terminar el submarino
Función OctetToHexStr (arrbytOctet)
'Funcionar para convertir OctetString (arsenal del octeto) a la secuencia Hex.
Amortiguar k
OctetToHexStr = ""
Para k = 1 a Lenb (arrbytOctet)
_ de OctetToHexStr = de OctetToHexStr
Y derecho (“0” y maleficio (Ascb (Midb (arrbytOctet, k, 1))), 2)
Después
Función del final
Función ReadReg (RegPath)
'Funcionar para leer el valor de secuencia de la llave del registro
Amortiguar objRegistry, llave
Fijar objRegistry = CreateObject (“Wscript.shell”)
Llave = objRegistry.RegRead (RegPath)
ReadReg = llave
Función del final
|