我写了一个powershell脚本供我公司使用。无论出于何种原因,应该删除指定位置的所有.ost文件的脚本部分只能运行一些时间。 ost的路径不会改变。任何人都知道为什么会这样?
Stop-process -Name OUTLOOK -ErrorAction SilentlyContinue -Force
Stop-process -Name communicator -ErrorAction SilentlyContinue -Force
Stop-process -Name lync -ErrorAction SilentlyContinue -Force
Stop-Process -Name UcMapi -ErrorAction SilentlyContinue -Force
Stop-Process -Name skypehost -ErrorAction SilentlyContinue -Force
Stop-Process -Name searchprotocalhost -ErrorAction SilentlyContinue -Force
$OstPath = "c:\users\$([environment]::username)"+ "\AppData" + "\local" + "\Microsoft" + "\Outlook"
$ost = get-ChildItem $OstPath | where { $_.Extension -eq ".ost"}
$ost | remove-Item -WhatIf
Start-Process Outlook
答案 0 :(得分:2)
您需要将代码更改为类似下面的代码。我在我的测试环境中测试了下面的内容并且没有问题。
$OSTPath = Get-Item -Path "$env:USERPROFILE\AppData\Local\Microsoft\Outlook\*" -Filter '*.ost'
If ($OSTPath)
{
Write-Output "OST File Found, Deleting File...."
Remove-Item -Path $OSTPath -Force
}
ELSE
{
Write-Output "No OST Exists. No Action Taken."
}
由于未发布解决方案,我认为我会为可能遇到此问题的任何人添加解决方案。