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:
6:
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:
|
' vorbei geschrieben
'Dieser Index benannt durch seinen Begleiterindex TBCUpdate.vbs und durchführt hrt
'tatsächliche Kreation, Vergleich und Aktualisierung des Verzeichnisses TBC des Benutzers.
'Das TBC Verzeichnis bevölkert vom allgemeinen Faltblatt des TBC Verzeichnisses. Das
'Faltblatt bevölkert über eine zeitlich geplante Aufgabe, die an läuft
'Die zeitlich geplante Aufgabe genannt „Verzeichnis-allgemeines Faltblatt des Update-TBC“ und läuft
'
'TBC Verzeichnis-Update \ UpdatePublicFolder \ Adfind.bat " am 12:00 morgens täglich.
'*** Überprüfung, zum zu sehen, wenn der Benutzer ist ein Mitglied des GPO_NoOLContacts Gruppe ***
Schwaches objADObject, strGroup, objGroupList, objSysInfo, strUser, objUser, wshNetwork
'An den Benutzergegenstand im aktiven Verzeichnis mit dem LDAP Versorger binden.
objSysInfo = CreateObject („ADSystemInfo“) einstellen
strUser = objSysInfo.UserName
objUser = GetObject einstellen („LDAP: /“ u. strUser)
objADObject = GetObject (objUser.AdsPath) einstellen
wshNetwork = CreateObject („WScript.Network“) einstellen
'strGroup = „GPO_NoOLContacts“
'Wenn IsMember (strGroup) dann
'wscript.quit
'Beenden wenn
wenn Wochentag (Datum) = vbsunday dann
moddate = -4
beenden wenn
wenn Wochentag (Datum) = vbmonday dann
moddate = -5
beenden wenn
wenn Wochentag (Datum) = vbtuesday dann
moddate = -6
beenden wenn
wenn Wochentag (Datum) = vbwednesday dann
moddate = 0
beenden wenn
wenn Wochentag (Datum) = vbthursday dann
moddate = -1
beenden wenn
wenn Wochentag (Datum) = vbfriday dann
moddate = -2
beenden wenn
wenn Wochentag (Datum) = vbsaturday dann
moddate = -3
beenden wenn
wshShell = WScript.CreateObject („WScript.Shell“) einstellen
strComputerName = wshShell.ExpandEnvironmentStrings („%COMPUTERNAME%")
objFSO = CreateObject („Scripting.FileSystemObject“) einstellen
filedate = DateAdd („d“, moddate, Datum ())
filedate = ersetzen (filedate, „/“, „-“)
Dateiname = „g:\TBC-Verzeichnis - modernisiert“ u. filedate u. „.txt“
Gesetztes objFile = objFSO.OpenTextFile (Dateiname, 8)
objFile.WriteLine (jetzt () u. „laufendes PublictoPrivate.vbs von der Maschine: “ u. strComputerName)
Const olFolderContacts = 10
Const olPublicFoldersAllPublicFolders = 18
Schwaches olkApp, olkSes, olkContacts, olkPublic, olkContact, intIndex, olPV, olkPublicVersion, plkPersonalVersion
Wscript.echo „, die überprüfen TBC Verzeichnis.“
olkApp = CreateObject („Outlook.Application“) einstellen
olkSes = olkApp.GetNamespace („MAPI“) einstellen
'AussichtAusgangsprofilnamen finden und Aussicht in diesem Profil beginnen
Profil = ReadReg („HKCU \ Software \ Microsoft \ Windows NT \ CurrentVersion \ Windows-Mitteilung-Subsystem \ Profile \ DefaultProfile“)
Wscript.echo „, das an Rückstellung Aussichtprofil anschließt: “ u. Profil
objFile.WriteLine (jetzt () u. „, anschließend an Rückstellung Aussichtprofil: “ u. Profil)
olkSes.Logon Profil
'Das TBC Verzeichnis verursachen, wenn es nicht existiert
tbcFolder = olkSes.GetDefaultFolder (olFolderContacts) einstellen
Auf Störung zunächst wieder.aufnehmen
myNewFolder = tbcFolder.Folders.Add („TBC Verzeichnis“) einstellen
wenn Err.number = 0 dann myNewFolder.ShowAsOutlookAB = ausrichten
Auf Störung Goto- 0
'Position des Verzeichnisfaltblatts TBC des Benutzers
olkContacts = olkSes.GetDefaultFolder (olFolderContacts) einstellen. Faltblätter („TBC Verzeichnis“)
'Position des Verzeichnisfaltblatts der Öffentlichkeits-TBC
Gesetztes olkPublic = olkSes.GetDefaultFolder (olPublicFoldersAllPublicFolders). Faltblätter („TBC Verzeichnis“). Faltblätter („TBC Verzeichnis“)
'Die Version der persönlichen Kopie des Benutzers des TBC Verzeichnisses finden
'Es sucht nach dem einzigen Kontakt mit „*“ in den Nachnamen
Für intIndex = olkContacts.Items.count zu 1 Schritt -1
olkPV = olkContacts.items (intIndex) .lastname
wenn inStr (olkPV, „*") > 0 dann
olkPersonalVersion = olkContacts.items (intIndex) .lastname
für herausnehmen
beenden wenn
Zunächst
'Die Version der Kopie des allgemeinen Faltblatts des TBC Verzeichnisses finden
'Es sucht nach dem einzigen Kontakt mit „*“ in den Nachnamen
Für intIndex = 1 zu olkPublic.Items.count Schritt +1
olkPV = olkPublic.items (intIndex) .lastname
wenn inStr (olkPV, „*") > 0 dann
olkPublicVersion = olkPublic.items (intIndex) .lastname
für herausnehmen
beenden wenn
Zunächst
wscript.echo „persönliche Version: “ u. olkPersonalVersion
wscript.echo „allgemeine Version: “ u. olkPublicVersion
objFile.WriteLine ("")
objFile.WriteLine (jetzt () u. „persönliche Version: “ u. olkPersonalVersion)
objFile.WriteLine (jetzt () u. „allgemeine Version: “ u. olkPublicVersion)
'Wenn die Versionen nicht gleich sind
wenn olkPublicVersion <> olkPersonalVersion dann
'Alle Kontakte löschen
wscript.echo „, die entfernen persönliche Kopie des TBC Verzeichnisses“
objFile.WriteLine (jetzt () u. „, persönliche Kopie des TBC Verzeichnisses entfernend“)
Für intIndex = olkContacts.Items.count zu 1 Schritt -1
olkContacts.Items.Remove intIndex
Zunächst
wscript.echo „Gesamteinzelteile im TBC Verzeichnis: “ u. olkContacts.Items.count
objFile.WriteLine (jetzt () u. „Gesamteinzelteile im TBC Verzeichnis: “ u. olkContacts.Items.count)
'Kontakte vom allgemeinen Faltblatt zum privaten Faltblatt kopieren
olkPublic einstellen = olkSes.GetDefaultFolder (olPublicFoldersAllPublicFolders). Faltblätter („TBC Verzeichnis“). Faltblätter („TBC Verzeichnis“)
„Aktualisierendes“ Wscript.echo u. olkPublic.Items.count u. „TBC Verzeichnis in Verbindung tritt…“
objFile.WriteLine (jetzt () u. „die Aktualisierung“ u. olkPublic.Items.count u. „TBC das Verzeichnis in Verbindung tritt… ")
Für intIndex = olkPublic.Items.count zu 1 Schritt -1
olkContact = olkPublic.Items (intIndex) einstellen. Kopieren
olkContact.Unread = „falsch“
olkContact.Move olkContacts
wenn intIndex Umb. 100 = 0 dann
Wscript.echo „nur“ u. intIndex u. " verließen. „
objFile.WriteLine (jetzt () u. „nur“ u. intIndex u. " left.")
beenden wenn
wenn (intIndex < 100) und (intIndex Umb. 25 = 0) dann Wscript.echo „nur“ u. intIndex u. " verließen. „
Zunächst
beenden wenn
Wscript.echo „Ihr lokales TBC Verzeichnis enthält“ u. olkContacts.Items.count u. „Einzelteile und ist aktuell.“
Wscript.echo ""
Wscript.echo „, wenn jemand vom TBC Verzeichnis fehlt, mit ihnen bitte in Verbindung tritt und bittet um um das“
Wscript.echo „sie aktualisieren ihre Aufzeichnung innen. Mehr Informationen können auf gefunden werden“
Wscript.echo „ES ist Seite.“
Wscript.echo ""
Wscript.echo, „, das dieses Fenster kurz schließt. Bitte warten, während die Bedienerdaten sind modernisiert…“
objFile.WriteLine (jetzt () u. „Ihr TBC Verzeichnis enthält“ u. olkContacts.Items.count u. „Einzelteile und ist aktuelles .")
objFile.WriteLine („---------------------------------------------------------------------------------------------")
objFile.WriteLine ("")
Wscript.sleep (30000)
olkContacts einstellen = nichts
olkPublic einstellen = nichts
olkContact einstellen = nichts
olkSes.Logoff
olkSes einstellen = nichts
olkApp einstellen = nichts
objGroupList einstellen = nichts
objADObject einstellen = nichts
'Funktionen und Material
Funktion IsMember (strGroup)
'Funktion, zum auf Gruppenmitgliedschaft zu prüfen.
'strGroup ist der NT-Name (sAMAccountName) der Gruppe, zum zu prüfen.
'objGroupList ist ein Wörterbuchgegenstand, mit globalem Bereich.
'Zurückbringt zutreffendes bringt, wenn der Benutzer oder der Computer ein Mitglied der Gruppe ist.
Wenn IsEmpty (objGroupList) dann
Anruf LoadGroups
Beenden wenn
IsMember = objGroupList.Exists (strGroup)
Enden-Funktion
VorLoadGroups
'Subroutine, zum des Wörterbuchgegenstandes mit Gruppenmitgliedschaft zu bevölkern.
'objADObject ist der Benutzer- oder Computergegenstand, mit globalem Bereich.
'objGroupList ist ein Wörterbuchgegenstand, mit globalem Bereich.
Schwache arrbytGroups, J
Schwache arrstrGroupSids (), objGroup
objGroupList = CreateObject („Scripting.Dictionary“) einstellen
objGroupList.CompareMode = vbTextCompare
objADObject.GetInfoEx Reihe („tokenGroups“), 0
arrbytGroups = objADObject.Get („tokenGroups“)
Wenn TypeName (arrbytGroups) = „Byte ()“ dann
ReDim arrstrGroupSids (0)
arrstrGroupSids (0) = OctetToHexStr (arrbytGroups)
objGroup = GetObject einstellen („LDAP: //")
objGroupList (objGroup.sAMAccountName) = ausrichten en
objGroup einstellen = nichts
Unterseeboot herausnehmen
Beenden wenn
Wenn UBound (arrbytGroups) = -1 dann
Unterseeboot herausnehmen
Beenden wenn
ReDim arrstrGroupSids (UBound (arrbytGroups))
Für J = 0 zu UBound (arrbytGroups)
arrstrGroupSids (j) = OctetToHexStr (arrbytGroups (j))
objGroup = GetObject einstellen („LDAP: //")
objGroupList (objGroup.sAMAccountName) = ausrichten en
Zunächst
objGroup einstellen = nichts
Unterseeboot beenden
Funktion OctetToHexStr (arrbytOctet)
'Arbeiten, um OctetString (Bytereihe) in Hex Schnur umzuwandeln.
K verdunkeln
OctetToHexStr = ""
Für k = 1 zu Lenb (arrbytOctet)
OctetToHexStr = OctetToHexStr _
U. recht („0“ u. Hexe (Ascb (Midb (arrbytOctet, k, 1))), 2)
Zunächst
Enden-Funktion
Funktion ReadReg (RegPath)
'Arbeiten, um Schnurwert des Registerschlüssels zu lesen
objRegistry, Schlüssel verdunkeln
objRegistry einstellen = CreateObject („Wscript.shell“)
Schlüssel = objRegistry.RegRead (RegPath)
ReadReg = Schlüssel
Enden-Funktion
|