需要协助解决PowerShell问题

时间:2016-06-11 15:53:43

标签: powershell outlook

我写了一个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

1 个答案:

答案 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."
    }

由于未发布解决方案,我认为我会为可能遇到此问题的任何人添加解决方案。