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 ' scritto vicino
'Questo scritto è denominato dal relativo scritto TBCUpdate.vbs del compagno ed effettua
'creazione, confronto ed aggiornamento reali dell'indice di TBC dell'utente.
'L'indice di TBC è popolato dal dispositivo di piegatura pubblico dell'indice di TBC. Quello
'il dispositivo di piegatura è popolato via un'operazione preveduta che funziona sopra
'L'operazione preveduta è chiamata “dispositivo di piegatura pubblico dell'indice dell'aggiornamento TBC„ e funziona
'
'Aggiornamento dell'indice di TBC \ UpdatePublicFolder \ Adfind.bat " al 12:00 quotidiano.
'Controllo del *** per vedere se l'utente è un membro del *** del gruppo di GPO_NoOLContacts
objADObject fioco, strGroup, objGroupList, objSysInfo, strUser, objUser, wshNetwork
'Legare all'oggetto di utente nell'indice attivo con il fornitore di LDAP.
Regolare il objSysInfo = CreateObject (“ADSystemInfo„)
strUser = objSysInfo.UserName
Regolare il objUser = GetObject (“LDAP: /„ & strUser)
Regolare il objADObject = GetObject (objUser.AdsPath)
Regolare il wshNetwork = CreateObject (“WScript.Network„)
'strGroup = “GPO_NoOLContacts„
'Se IsMember (strGroup) allora
'wscript.quit
'Concluder se
se giorno della settimana (data) = vbsunday allora
moddate = -4
concluder se
se giorno della settimana (data) = vbmonday allora
moddate = -5
concluder se
se giorno della settimana (data) = vbtuesday allora
moddate = -6
concluder se
se giorno della settimana (data) = vbwednesday allora
moddate = 0
concluder se
se giorno della settimana (data) = vbthursday allora
moddate = -1
concluder se
se giorno della settimana (data) = vbfriday allora
moddate = -2
concluder se
se giorno della settimana (data) = vbsaturday allora
moddate = -3
concluder se
Regolare il wshShell = WScript.CreateObject (“WScript.Shell„)
strComputerName = wshShell.ExpandEnvironmentStrings (“%COMPUTERNAME%")
Regolare il objFSO = CreateObject (“Scripting.FileSystemObject„)
filedate = DateAdd (“d„, moddate, data ())
il filedate = sostituisce (filedate, “/„, “-„)
nome di schedario = “indice di g:\TBC - aggiornato„ & filedate & “.txt„
objFile stabilito = objFSO.OpenTextFile (nome di schedario, 8)
objFile.WriteLine (ora () & “PublictoPrivate.vbs funzionante dalla macchina: „ & strComputerName)
olFolderContacts di Const = 10
olPublicFoldersAllPublicFolders di Const = 18
olkApp fioco, olkSes, olkContacts, olkPublic, olkContact, intIndex, olPV, olkPublicVersion, plkPersonalVersion
Wscript.echo “che controllano l'indice di TBC.„
Regolare il olkApp = CreateObject (“Outlook.Application„)
Regolare i olkSes = olkApp.GetNamespace (“MAPI„)
'Trovare il nome di profilo di difetto di prospettiva ed iniziare la prospettiva in quel profilo
profilo = ReadReg (“HKCU \ software \ Microsoft \ Windows NT \ CurrentVersion \ sottosistema messaggio di Windows \ profili \ DefaultProfile„)
Wscript.echo “che si collega al profilo di prospettiva di difetto: „ & profilo
objFile.WriteLine (ora () & “collegandosi al profilo di prospettiva di difetto: „ & profilo)
profilo di olkSes.Logon
'Generare l'indice di TBC se non esiste
Regolare il tbcFolder = olkSes.GetDefaultFolder (olFolderContacts)
Sull'errore riprendere dopo
Regolare il myNewFolder = tbcFolder.Folders.Add (“indice di TBC„)
se Err.number = 0 allora myNewFolder.ShowAsOutlookAB = allineano
Sull'errore 0 di avanzamento
'Posizione del dispositivo di piegatura dell'indice di TBC dell'utente
Regolare i olkContacts = olkSes.GetDefaultFolder (olFolderContacts). Dispositivi di piegatura (“indice di TBC„)
'Posizione del dispositivo di piegatura dell'indice del pubblico TBC
olkPublic stabilito = olkSes.GetDefaultFolder (olPublicFoldersAllPublicFolders). Dispositivi di piegatura (“indice di TBC„). Dispositivi di piegatura (“indice di TBC„)
'Trovare la versione della copia personale dell'utente dell'indice di TBC
'Cerca l'unico contatto con “*„ nel cognome
Per intIndex = olkContacts.Items.count a 1 punto -1
olkPV = olkContacts.items (intIndex) .lastname
se inStr (olkPV, “*") > 0 allora
olkPersonalVersion = olkContacts.items (intIndex) .lastname
uscire per
concluder se
Dopo
'Trovare la versione della copia del dispositivo di piegatura pubblico dell'indice di TBC
'Cerca l'unico contatto con “*„ nel cognome
Per intIndex = 1 a punto +1 di olkPublic.Items.count
olkPV = olkPublic.items (intIndex) .lastname
se inStr (olkPV, “*") > 0 allora
olkPublicVersion = olkPublic.items (intIndex) .lastname
uscire per
concluder se
Dopo
versione personale di wscript.echo “: „ & olkPersonalVersion
versione pubblica di wscript.echo “: „ & olkPublicVersion
objFile.WriteLine ("")
objFile.WriteLine (ora () & “versione personale: „ & olkPersonalVersion)
objFile.WriteLine (ora () & “versione pubblica: „ & olkPublicVersion)
'Se le versioni non sono uguali
se olkPersonalVersion del <> di olkPublicVersion allora
'Cancellare tutti i contatti
wscript.echo “che rimuovono copia personale dell'indice di TBC„
objFile.WriteLine (ora () & “rimuovendo copia personale dell'indice di TBC„)
Per intIndex = olkContacts.Items.count a 1 punto -1
intIndex di olkContacts.Items.Remove
Dopo
articoli totali di wscript.echo “nell'indice di TBC: „ & olkContacts.Items.count
objFile.WriteLine (ora () & “articoli totali nell'indice di TBC: „ & olkContacts.Items.count)
'Copiare i contatti dal dispositivo di piegatura pubblico al dispositivo di piegatura riservato
Regolar olkPublic = olkSes.GetDefaultFolder (olPublicFoldersAllPublicFolders). Dispositivi di piegatura (“indice di TBC„). Dispositivi di piegatura (“indice di TBC„)
Wscript.echo “che aggiornano„ & l'indice di TBC “& di olkPublic.Items.count si mette in contatto con…„
objFile.WriteLine (ora () & “aggiornare„ & l'indice di TBC “& di olkPublic.Items.count si mettono in contatto con… ")
Per intIndex = olkPublic.Items.count a 1 punto -1
Regolare il olkContact = olkPublic.Items (intIndex). Copiare
olkContact.Unread = “falso„
olkContacts di olkContact.Move
se MOD 100 = 0 del intIndex allora
Wscript.echo “soltanto„ & il intIndex & " hanno andato. “
objFile.WriteLine (ora () & “soltanto„ & intIndex & " left.")
concluder se
se (intIndex < 100) e (MOD 25 = 0 del intIndex) allora Wscript.echo “soltanto„ & il intIndex & " vadano. “
Dopo
concluder se
Il vostro TBC indice locale di Wscript.echo “contiene„ & olkContacts.Items.count & “articoli ed è aggiornato.„
"" Di Wscript.echo
Wscript.echo “se qualcuno manca dall'indice di TBC, se li mettono in contatto con prego e chiedono quello„
Wscript.echo “aggiornano la loro annotazione dentro. Più informazioni possono essere trovate su„
Wscript.echo “è pagina.„
"" Di Wscript.echo
Wscript.echo “che questa finestra si chiuderà presto. Attendere prego mentre i dati dell'assistente sono aggiornati…„
objFile.WriteLine (ora () & “il vostro indice di TBC contiene„ & olkContacts.Items.count & “articoli ed è .") aggiornato
objFile.WriteLine (“---------------------------------------------------------------------------------------------")
objFile.WriteLine ("")
Wscript.sleep (30000)
Regolare i olkContacts = niente
Regolar olkPublic = niente
Regolare il olkContact = niente
olkSes.Logoff
Regolare i olkSes = niente
Regolare il olkApp = niente
Regolare il objGroupList = niente
Regolare il objADObject = niente
'Funzioni e roba
Funzione IsMember (strGroup)
'Funzione da provare a composizione di gruppo.
'lo strGroup è il nome del NT (sAMAccountName) del gruppo da provare.
'il objGroupList è un oggetto del dizionario, con portata globale.
'Restituisce allineare se l'utente o il calcolatore è un membro del gruppo.
Se IsEmpty (objGroupList) allora
Chiamata LoadGroups
Concluder se
IsMember = objGroupList.Exists (strGroup)
Funzione di conclusione
LoadGroups secondario
'Sottoprogramma per popolare l'oggetto del dizionario con le composizioni di gruppo.
'il objADObject è l'oggetto del calcolatore o dell'utente, con portata globale.
'il objGroupList è un oggetto del dizionario, con portata globale.
arrbytGroups fiochi, J
arrstrGroupSids fiochi (), objGroup
Regolare il objGroupList = CreateObject (“Scripting.Dictionary„)
objGroupList.CompareMode = vbTextCompare
allineamento di objADObject.GetInfoEx (“tokenGroups„), 0
arrbytGroups = objADObject.Get (“tokenGroups„)
Se TypeName (arrbytGroups) = “byte ()„ allora
arrstrGroupSids di ReDim (0)
arrstrGroupSids (0) = OctetToHexStr (arrbytGroups)
Regolare il objGroup = GetObject (“LDAP: //")
il objGroupList (objGroup.sAMAccountName) = allinea
Regolare il objGroup = niente
Uscire il sommergibile
Concluder se
Se UBound (arrbytGroups) = -1 allora
Uscire il sommergibile
Concluder se
arrstrGroupSids di ReDim (UBound (arrbytGroups))
Per J = 0 a UBound (arrbytGroups)
arrstrGroupSids (j) = OctetToHexStr (arrbytGroups (j))
Regolare il objGroup = GetObject (“LDAP: //")
il objGroupList (objGroup.sAMAccountName) = allinea
Dopo
Regolare il objGroup = niente
Concludere il sommergibile
Funzione OctetToHexStr (arrbytOctet)
'Funzionare per convertire OctetString (allineamento di byte) in stringa Hex.
Oscurare K
OctetToHexStr = ""
Per K = 1 a Lenb (arrbytOctet)
_ di OctetToHexStr = di OctetToHexStr
& di destra (“0„ & sfortuna (Ascb (Midb (arrbytOctet, K, 1))), 2)
Dopo
Funzione di conclusione
Funzione ReadReg (RegPath)
'Funzionare per leggere il valore di stringa della chiave di registrazione
Oscurare objRegistry, chiave
Regolar objRegistry = CreateObject (“Wscript.shell„)
Chiave = objRegistry.RegRead (RegPath)
ReadReg = chiave
Funzione di conclusione
|