Vraag : Het kopiëren VBS de punten van het Contact van Vooruitzichten van Openbare Omslag

Ik gebruik het volgende manuscript om contactpunten van een openbare omslag aan de privé omslag van een gebruiker te kopiëren. Het werkt enkel fijn. Ik heb een verzoek. Beginnend online 133, kopi�ërt het manuscript het contact, merkt het ongelezen, en verplaatst dan het contact naar de privé omslag van de gebruiker.

I zou van dit veranderde gedrag houden. Het probleem dat ik is heb gehad dat ik elk van mijn gebruikers de capaciteit moet toestaan om contacten in de openbare omslag voor dit tot stand te brengen om te werken. Bovendien, als de veelvoudige gebruikers het manuscript tezelfdertijd in werking stellen zullen sommigen van hen hier een dubbel contact of daar opnemen. Wat moet ik het het contact in hun privé omslag zonder een exemplaar in de openbare omslag eerst te creëren dupliceren hebben doen?

If u niet door de gehele code wilt waden hieronder hier bent het significante gedeelte:

For intIndex = olkPublic.Items.count aan 1 Stap -1
plaatste olkContact = olkPublic.Items (intIndex). Copy
olkContact.Unread = „Valse "
olkContact.Move olkContacts
" codeBody "
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:
" notpretty "
 ' langs Geschreven 
'Dit manuscript wordt geroepen door zijn metgezelmanuscript TBCUpdate.vbs en uitvoert 
'het daadwerkelijke verwezenlijking, vergelijking, en bijwerken van de Folder van TBC van de gebruiker.
De 'folder TBC is bevolkt van de openbare omslag van de Folder TBC. Dat 
de 'omslag is bevolkt via een geplande taak die loopt 
De 'geplande taak wordt genoemd „Omslag van de Folder van de Update TBC de Openbare“ en loopt
' 
'De Update \ UpdatePublicFolder \ Adfind.bat van de Folder TBC " bij 12:00 am dagelijks.


'Controle *** om te zien of is de gebruiker een lid van de GPO_NoOLContacts groep ***
Schemerige objADObject, strGroup, objGroupList, objSysInfo, strUser, objUser, wshNetwork

'Bind aan het gebruikersvoorwerp in Actieve Folder met de leverancier LDAP.
Plaats objSysInfo = CreateObject („ADSystemInfo“)
strUser = objSysInfo.UserName
Reeks objUser = GetObject („LDAP: /“ & strUser)
Reeks objADObject = GetObject (objUser.AdsPath)
Reeks wshNetwork = CreateObject („WScript.Network“) 

'strGroup = „GPO_NoOLContacts“
'Als IsMember (strGroup) toen
'wscript.quit 
'Beëindig als

als weekdag (datum) = vbsunday toen
	moddate = -4
beëindig als

als weekdag (datum) = vbmonday toen
	moddate = -5
beëindig als

als weekdag (datum) = vbtuesday toen
	moddate = -6
beëindig als

als weekdag (datum) = vbwednesday toen
	moddate = 0
beëindig als

als weekdag (datum) = vbthursday toen
	moddate = -1
beëindig als

als weekdag (datum) = vbfriday toen
	moddate = -2
beëindig als

als weekdag (datum) = vbsaturday toen
	moddate = -3
beëindig als

Plaats wshShell = WScript.CreateObject („WScript.Shell“)
strComputerName = wshShell.ExpandEnvironmentStrings („%COMPUTERNAME%“)

Reeks objFSO = CreateObject („Scripting.FileSystemObject“)
filedate = DateAdd („D“, moddate, Datum ())
filedate = vervang (filedate, „/“, „-“)
filename = „g:\TBC bijgewerkte Folder -“ & filedate & „.txt“
Vastgestelde objFile = objFSO.OpenTextFile (filename, 8)
objFile.WriteLine (nu () & „het Lopen PublictoPrivate.vbs van machine: “ & strComputerName)

Const olFolderContacts = 10
olPublicFoldersAllPublicFolders van Const = 18 
Schemerige olkPublic olkApp, olkSes, olkContacts, olkContact, intIndex, olPV, olkPublicVersion, plkPersonalVersion
Wscript.echo „Controlerend Folder TBC.“
Reeks olkApp = CreateObject („Outlook.Application“)
Reeks olkSes = olkApp.GetNamespace („MAPI“)

'Vind van Standaard vooruitzichten profielnaam en beginVooruitzichten in dat profiel
profiel = ReadReg („HKCU \ de Profielen \ DefaultProfile van het Subsysteem \ van het Overseinen van de Vensters van de Vensters NT \ CurrentVersion \ van de Software \ Microsoft \“)
Wscript.echo „Verbindend met profiel het standaard van Vooruitzichten: “ & profiel
objFile.WriteLine (nu () & „Verbindend met profiel het standaard van Vooruitzichten: “ & profiel)
olkSes.Logon profiel

'Cre�ër de Folder TBC als het niet bestaat
Plaats tbcFolder = olkSes.GetDefaultFolder (olFolderContacts)
	Op Fout hervat daarna
    Plaats myNewFolder = tbcFolder.Folders.Add („Folder TBC“)
	als Err.number = 0 toen myNewFolder.ShowAsOutlookAB = Waar
	Op Fout GoTo 0

'Plaats van de omslag van de Folder van TBC van de gebruiker
Reeks olkContacts = olkSes.GetDefaultFolder (olFolderContacts). Omslagen („Folder TBC“)

'Plaats van de Openbare omslag van de Folder TBC 
Vastgestelde olkPublic = olkSes.GetDefaultFolder (olPublicFoldersAllPublicFolders). Omslagen („Folder TBC“). Omslagen („Folder TBC“)

'Vind de versie van het persoonlijke exemplaar van de gebruiker van de Folder TBC
'Het zoekt het enige contact met „*“ in de familienaam
Voor intIndex = olkContacts.Items.count aan 1 Stap -1
	olkPV = olkContacts.items (intIndex) .lastname
	als inStr (olkPV, „*“) > 0 toen 
		olkPersonalVersion = olkContacts.items (intIndex) .lastname
		uitgang voor
	beëindig als
Daarna

'Vind de versie van het openbare omslagexemplaar van de Folder TBC
'Het zoekt het enige contact met „*“ in de familienaam
Voor intIndex = 1 aan olkPublic.Items.count Stap +1
	olkPV = olkPublic.items (intIndex) .lastname
	als inStr (olkPV, „*“) > 0 toen 
		olkPublicVersion = olkPublic.items (intIndex) .lastname
		uitgang voor
	beëindig als
Daarna

wscript.echo „Persoonlijke versie: “ & olkPersonalVersion
wscript.echo „Openbare versie: “ & olkPublicVersion
objFile.WriteLine ("")
objFile.WriteLine (nu () & „Persoonlijke versie: “ & olkPersonalVersion)
objFile.WriteLine (nu () & „Openbare versie:   “ & olkPublicVersion)

'Als de versies niet gelijk zijn
als olkPublicVersion<> olkPersonalVersion toen
	
	'Schrap alle contacten
	wscript.echo „Verwijderend persoonlijk exemplaar van de Folder TBC“
	objFile.WriteLine (nu () & „Verwijderend persoonlijk exemplaar van de Folder TBC“)
	Voor intIndex = olkContacts.Items.count aan 1 Stap -1
        	olkContacts.Items.Remove intIndex
	Daarna
	wscript.echo „Totale punten in Folder TBC: “ & olkContacts.Items.count
	objFile.WriteLine (nu () & „Totale punten in Folder TBC: “ & olkContacts.Items.count)
		
	De 'contacten van het exemplaar van de openbare omslag aan de privé omslag
	Vastgestelde olkPublic = olkSes.GetDefaultFolder (olPublicFoldersAllPublicFolders). Omslagen („Folder TBC“). Omslagen („Folder TBC“)
	Wscript.echo „het Bijwerken“ & de Contacten van de Folder olkPublic.Items.count & „TBC…“
	objFile.WriteLine (nu () & „het Bijwerken“ & de Contacten van de Folder olkPublic.Items.count & „TBC…“)
	Voor intIndex = olkPublic.Items.count aan 1 Stap -1
       	 	Reeks olkContact = olkPublic.Items (intIndex). Exemplaar
			olkContact.Unread = „Vals“
       	 	olkContact.Move olkContacts
		als intIndex Mod. 100 = 0 toen 
			Wscript.echo „slechts“ & intIndex & " weggegaan. „
			objFile.WriteLine (nu () & „slechts“ & intIndex & " weggegaan. „)
		beëindig als
		als (intIndex < 100) en (intIndex Mod. 25 = 0) toen Wscript.echo „slechts“ & intIndex & " wegging. „
	Daarna
beëindig als

Wscript.echo „Uw lokale Folder TBC bevat“ & olkContacts.Items.count & „punten en is bijgewerkt.“
Wscript.echo ""
Wscript.echo „als iemand van de Folder TBC, alstublieft hen contacteren mist en dat“ vragen
Wscript.echo „zij werken binnen hun verslag bij. Meer informatie kan worden gevonden over“
Wscript.echo „IT is pagina.“
Wscript.echo ""
Wscript.echo „Dit venster zal binnenkort sluiten. Gelieve te wachten terwijl het servergegeven…“ wordt bijgewerkt
objFile.WriteLine (nu () & „Uw Folder TBC bevat“ & olkContacts.Items.count & „punten en is bijgewerkt. “)
objFile.WriteLine („“)
objFile.WriteLine ("")
Wscript.sleep (30000)
Reeks olkContacts = niets
Vastgestelde olkPublic = niets
Reeks olkContact = niets
olkSes.Logoff
Reeks olkSes = niets
Reeks olkApp = niets
Vastgestelde objGroupList = niets
Reeks objADObject = niets


'Functies en Materiaal

Functie IsMember (strGroup)
'Functie aan test voor groepslidmaatschap.
'strGroup is de naam NT (sAMAccountName) van de groep aan test.
'objGroupList is een woordenboekvoorwerp, met globaal werkingsgebied.
'Keert Waar terug als de gebruiker of de computer een lid van de groep zijn.

  Als IsEmpty (objGroupList) toen
    Vraag LoadGroups
  Eind als
  IsMember = objGroupList.Exists (strGroup)
De Functie van het eind

Sub LoadGroups
'Subroutine om woordenboekvoorwerp met groepslidmaatschap te bevolken.
'objADObject is het gebruiker of computervoorwerp, met globaal werkingsgebied.
'objGroupList is een woordenboekvoorwerp, met globaal werkingsgebied.

  Schemerige arrbytGroups, j
  Schemerige arrstrGroupSids (), objGroup

  Vastgestelde objGroupList = CreateObject („Scripting.Dictionary“)
  objGroupList.CompareMode = vbTextCompare

  objADObject.GetInfoEx serie („tokenGroups“), 0
  arrbytGroups = objADObject.Get („tokenGroups“)
  Als TypeName (arrbytGroups) = „Byte ()“ toen
    ReDim arrstrGroupSids (0)
    arrstrGroupSids (0) = OctetToHexStr (arrbytGroups)
    Reeks objGroup = GetObject („LDAP: //“)
    objGroupList (objGroup.sAMAccountName) = Waar
    Reeks objGroup = niets
    Sub van de uitgang
  Eind als
  Als UBound (arrbytGroups) = -1 toen
    Sub van de uitgang
  Eind als

  ReDim arrstrGroupSids (UBound (arrbytGroups))
  Voor j = 0 aan UBound (arrbytGroups)
    arrstrGroupSids (j) = OctetToHexStr (arrbytGroups (j))
    Reeks objGroup = GetObject („LDAP: //“)
    objGroupList (objGroup.sAMAccountName) = Waar
  Daarna
  Reeks objGroup = niets

Sub van het eind

Functie OctetToHexStr (arrbytOctet)
'Functie om OctetString (byteserie) in het koord van de Hexuitdraai om te zetten.

  Schemerig k
  OctetToHexStr = ""
  Voor k = 1 aan Lenb (arrbytOctet)
    OctetToHexStr = OctetToHexStr _
      & Juist („0“ & Hexuitdraai (Ascb (Midb (arrbytOctet, k, 1))), 2)
  Daarna
De Functie van het eind

Functie ReadReg (RegPath)
'Functie om koordwaarde van registratiesleutel te lezen

     Schemerige objRegistry, Sleutel
     Vastgestelde objRegistry = CreateObject („Wscript.shell“)
     Sleutel = objRegistry.RegRead (RegPath)
     ReadReg = Sleutel
De Functie van het eind

Antwoord : Het kopiëren VBS de punten van het Contact van Vooruitzichten van Openbare Omslag

Vraag PAQ'd, 500 punten terugbetaald die, en in het oplossingsgegevensbestand worden opgeslagen.
Andere oplossingen  
 
programming4us programming4us