2017-10-04 1 views
-1

J'ai creusé et essayé de trouver un moyen de supprimer un fichier PST d'Outlook avec un script. Je ne sais pas entièrement comment écrire mais j'essaie d'apprendre. J'ai trouvé ce vieux Stackoverflow mais je ne sais pas comment entrer réellement les informations dont j'ai besoin.Outlook Powershell Script

How to disconnect PST file from Outlook using Powershell?

Le script en question est ci-dessous.

$Outlook = new-object -com outlook.application 
$Namespace = $Outlook.getNamespace("MAPI") 

$PSTtoDelete = "c:\test\pst.pst" 
$PST = $namespace.Stores | ? {$_.FilePath -eq $PSTtoDelete} 
$PSTRoot = $PST.GetRootFolder() 


$PSTFolder = $namespace.Folders.Item($PSTRoot.Name) 
$namespace.GetType().InvokeMember('RemoveStore',[System.Reflection.BindingFlags]::InvokeMethod,$null,$namespace,($PSTFolder)) 

Je comprends la troisième ligne, où entrer le chemin du fichier à la PST lui-même, mais je ne suis pas sûr de ce que d'entrer pour le reste des lignes.

Je sais que c'est une question de débutant total, mais toute aide serait super appréciée.

Merci!

+1

avez-vous exécuter? avez-vous eu des erreurs? Qu'est-ce que tu ne comprends pas? – ArcSet

+0

Donc, en dehors de "c: \ test \ pst.pst", y a-t-il une autre partie de ce script qui doit être pointée sur quelque chose pour que cela fonctionne? –

+0

aucune idée. Ne ressemble pas à ça ... courir et voir quelles erreurs vous obtenez ... c'est comment nous commençons à déboguer .... – ArcSet

Répondre

0

Voici une fonction que je viens d'écrire espère que cela aide

function Remove-OutlookStore($StoreFilePath){ 
    get-process | where { $_.Name -like "Outlook" }| kill 
    $Outlook = new-object -com outlook.application 
    $Namespace = $Outlook.GetNamespace("mapi") 
    $Store = $namespace.Stores | ?{$_.FilePath -like $StoreFilePath} | %{$_} 
    $namespace.RemoveStore($Store.GetRootFolder()) 
    get-process | where { $_.Name -like "Outlook" }| kill 
} 

Remove-OutlookStore -StoreFilePath C:\Test\Test.pst