Löschen von Kontakten
C.Andrä
- vb-script
Guten Morgen alle mit einander.
Mein Thema löschen von Kontakten in Outlook per Script.
Es ist ja klar was der Programmierer hier macht. was aber ist es ist sehr lang langsam und das löschen von 6000 Kontakten aus Outlook dauert Stunden. weil er jeden Kontakt einzelne löscht.
ob man nicht alle Kontakte mit einem mal löschen kann??
z.B
oRst.Fields.Delete // würde das gehen? weil wenn ich das Test läuft es aufm Server und ich habe keine Lust irgendwas zu zerschießen mit meinem Script
'Von Dirk eingefügte Löschprozedur ...
Set oRec = CreateObject("ADODB.Record")
Set oRst = CreateObject("ADODB.Recordset")
oRec.Mode = adModeReadWrite
oRec.Open strURL_Full
'WScript.echo
if (day(DayNow)\7 = NumberOfWeekDelete AND weekday(DayNow) = DayOfWeekDelete) then
call Message(1,0,"AditoExchange","FullDelete Exchange","")
sSQL="select * from """&strURL_Full&""""
sSQL=sSQL & " WHERE "
sSQL=sSQL & "(""http://schemas.microsoft.com/exchange/outlookmessageclass"" != 'IPM.Microsoft.FolderDesign.FormsDescription')"
'strSqlSource = strSqlSource
else
call Message(1,0,"AditoExchange","PartDelete Exchange","")
sSQL="select * from """&strURL_Full&""""
sSQL=sSQL & " WHERE "
sSQL=sSQL & "(""http://schemas.microsoft.com/exchange/outlookmessageclass"" != 'IPM.Microsoft.FolderDesign.FormsDescription')"
sSQL=sSQL & " AND ( "
sSQL=sSQL & WHEREAID
sSQL=sSQL & " ) "
'strSqlSource = strSqlSource & " AND ( ( FDatumEdit between DATEADD(day, -32, getdate()) and getdate() ) OR ( ADatumEdit between DATEADD(day, -32, getdate()) and getdate() ) OR ( MDatumEdit between DATEADD(day, -32, getdate()) and getdate() ) OR ( FDatumNeu between DATEADD(day, -32, getdate()) and getdate() ) OR ( ADatumNeu between DATEADD(day, -32, getdate()) and getdate() ) )"
end if
oRst.Open sSQL,oRec.ActiveConnection
ZZZ=0
'For intCnt = 0 To oRst.Fields.Count - 1
' WScript.echo oRst.Fields(intCnt).Name&":"&oRst.Fields(intCnt).value
'Next
Do While Not oRst.EOF
' if oRst.Fields("http://schemas.microsoft.com/exchange/outlookmessageclass").Value <> "IPM.Microsoft.FolderDesign.FormsDescription" THEN oRst.Delete
ZZZ=ZZZ+1
if ((ZZZ+250) mod 250) = 0 then
'WScript.echo "AditoExchange: Delete ("&ZZZ&":"&oRst.Fields("urn:schemas:contacts:customerid").Value&"). "& ZeitStart & " -> " & Time
call Message(1,1,"AditoExchange","Delete ("&ZZZ&")","")
end if
oRst.Delete
oRst.MoveNext
Loop
oRst.close