thl1966
Goto Top

Powershell - Datendateien in Outlook auslesen und aendern (Lokale PCs)

Hallo an alle Forenteilnehmer,

habe leider im Internet und hier im Forum nichts passendes finden können.

möchte gerne in einer Domänenumgebung auf allen angemeldeten PCs bei Outlook den Speicherort der PST-Datendateien auslesen und entsprechend ändern (Umzug der PST-Dateien liegt an!).

Wie kann ich das z.B. in Powershell realisieren bzw. in VB-Skript?

Exchange-Server 2007
Ad-Controller: Server 2012 Standard mit Powershell 3.0

Vielen Dank für eure Hilfe.

Gruß

Thomas

Content-ID: 207363

Url: https://administrator.de/contentid/207363

Ausgedruckt am: 20.11.2024 um 13:11 Uhr

colinardo
colinardo 03.06.2013 aktualisiert um 12:19:17 Uhr
Goto Top
Hallo Thomas,

also mit VBS könntest du die Pfade zu den PST-Dateien folgendermaßen für den angemeldeten User ermitteln:

Set objOL = CreateObject("Outlook.Application")  
For Each f In objOL.Session.Folders
  if f.Store.FilePath <> "" then  
	wscript.echo f.Store.FilePath
  End if
Next
Set objOL = Nothing

Zum ändern müsste man die entsprechenden binär hinterlegten Pfade unter HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles ändern s. dazu folgende 2 Threads: 1 und 2

Grüße Uwe
thl1966
thl1966 03.06.2013 um 12:11:18 Uhr
Goto Top
Hallo Uwe,

danke für das Skript.

Leider bekomme ich einen Fehler, den ich im Moment nicht gleich finde.

In Zeile 4 kommt ein Fehler bei Zeichen 6 -
Fehler: Anweisungsende erwartet, Code: 800A0401,
Quelle: Kompilierungsfehler in Microsoft VBScript.

Wo liegt der Fehler?

Gruß
Thomas
colinardo
colinardo 03.06.2013 aktualisiert um 12:17:51 Uhr
Goto Top
Sorry, kleinere Fehler im Script habe das in Office VBA getestet muss noch für VBS umschreiben ...
colinardo
colinardo 03.06.2013 aktualisiert um 12:21:48 Uhr
Goto Top
ist korrigiert ...
Noch zur Info:
Funktioniert nur, wenn die User beim Start von Outlook kein Profil auswählen müssen.
thl1966
thl1966 03.06.2013 um 13:12:48 Uhr
Goto Top
Hallo Uwe,

danke für das geänderte Skript.
Funktioniert fast perfekt!
Auch mit dem Profil auswählen funktioniert. Man muss halt nur einmalig auf OK klicken.

Gruß
Thomas
colinardo
colinardo 03.06.2013 um 13:21:53 Uhr
Goto Top
Ein Äquivalent via Powershell könnte so aussehen:
in Zeile 3 kann dem startenden Outlook ein Profilname mit übergeben werden, so dass der Auswahldialog nicht mehr erscheint.

if ((Get-Process outlook -ErrorAction SilentlyContinue) -eq $null){
    echo "outlook ist aus, starte es ..."  
    Start-Process "outlook.exe" -ArgumentList "/profile Outlook"  
    Start-Sleep -Seconds 8
}
$objOL = New-Object -ComObject Outlook.Application
foreach ($f in $objOL.Session.Folders){
   if ($f.Store.FilePath -gt ""){  
       echo $f.Store.FilePath
   }
}

Viel Erfolg !
face-wink
thl1966
thl1966 03.06.2013 um 14:01:27 Uhr
Goto Top
Hallo Danke,

Jetzt habe ich es schon ins Loginskript eingebaut (modifiziert), da ich die bestehenden PST-Dateien auf ein anderes Share kopieren muss. Bei ca. 2000 Users wäre das ein Plage alles manuell zu machen.

Das Powershell Skript werde ich die nächsten Tage mal ausprobieren.

Nochmals herzlichen Dank für die nützlichen Skripts.

Gruß
Thomas
GuentherH
GuentherH 03.06.2013 um 20:35:45 Uhr
Goto Top
Hallo.

Wieso macht man sich die Mühe eines Script, wenn es ein fertiges Tool gibt - http://technet.microsoft.com/en-us/library/hh781036(v=exchg.141).aspx

LG Günther
thl1966
thl1966 03.06.2013 um 22:43:06 Uhr
Goto Top
Hallo Günther,

das Tool schaue ich mir morgen mal näher an.

Mein Skript läuft aber schon.

Trotzdem vielen Dank für den Tipp.

lg

Thomas