如何使用PowerShell更改Outlook默认PST文件
PowerShell 操作Outlook PST文件教程
注意:操作前请提前备份原有PST文件,避免数据意外丢失;需提前在设备上安装Outlook客户端。
首先执行命令连接Outlook COM对象:
# 加载Outlook COM对象 $outlook = New-Object -ComObject Outlook.Application $namespace = $outlook.GetNamespace("MAPI") # 提前获取原有默认PST存储,后续删除操作会用到 $oldDefaultPST = $namespace.DefaultStore
1. 创建新的PST文件“Data1.PST”
修改下方命令中的文件路径为你想要存放Data1.PST的实际路径后执行:$namespace.AddStore("C:\Users\你的用户名\Documents\Data1.PST")
2. 将“Data1.PST”设置为默认PST文件
执行以下命令定位刚创建的PST并设置为默认存储:
# 匹配刚创建的Data1.PST,路径需和上一步填写的路径完全一致 $newPST = $namespace.Stores | Where-Object { $_.FilePath -eq "C:\Users\你的用户名\Documents\Data1.PST" } # 设置为默认PST $namespace.DefaultStore = $newPST
3. 删除原有的默认PST文件内容
你可以根据需求选择对应方案执行:
- 方案1:仅删除原有默认PST内的所有内容(保留PST文件存在)
$oldRootFolder = $oldDefaultPST.GetRootFolder() # 遍历清空所有子文件夹内容 foreach ($folder in $oldRootFolder.Folders) { $folder.Items | Remove-Item -Confirm:$false }
- 方案2:直接从Outlook中移除原有默认PST存储(文件仍保留在本地磁盘,若需彻底删除可手动删除对应路径的文件)
$namespace.RemoveStore($oldDefaultPST.GetRootFolder())
操作完成后执行以下命令释放COM对象,避免Outlook进程被占用:[System.Runtime.Interopservices.Marshal]::ReleaseComObject($outlook) | Out-Null
提示:如果执行命令报错,可尝试关闭正在运行的Outlook客户端后,以管理员身份重新运行PowerShell再执行操作。
内容的提问来源于stack exchange,提问作者Nameer Khan
相关产品推荐
相关产品推荐

