【问题标题】:Outlook Powershell ScriptOutlook Powershell 脚本
【发布时间】:2017-10-04 14:34:39
【问题描述】:

我一直在进行一些挖掘,并试图找到一种使用脚本从 Outlook 中删除 PST 的方法。我不完全知道如何编写脚本,但我正在努力学习。我找到了这个旧的 Stackoverflow,但我不确定如何实际输入我需要的信息。

How to disconnect PST file from Outlook using Powershell?

有问题的脚本如下。

$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))  

我了解第三行,在哪里输入 PST 本身的文件路径,但我不确定在其余行中输​​入什么。

我知道这完全是一个新手问题,但我们将非常感谢任何帮助。

谢谢!

【问题讨论】:

  • 你运行了吗?你有错误吗?你有什么不明白的?
  • 因此,除了“c:\test\pst.pst”之外,该脚本是否还有其他部分需要指向任何内容才能正常工作?
  • 没有线索。看起来不像……运行看看你得到了什么错误……这就是我们开始调试的方式……
  • 因此,当我尝试运行它时,我会快速闪现错误。 photos.app.goo.gl/L3FNL0MhgrKp6UA83
  • 您有任何脚本编写经验吗? (不想讽刺)只是想看看我在做什么

标签: powershell outlook


【解决方案1】:

这是我刚刚写的一个函数,希望对你有帮助

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-16
    • 1970-01-01
    • 2020-06-03
    • 2016-11-25
    • 2016-10-09
    相关资源
    最近更新 更多