我想在powershell脚本中读取电子邮件文件的正文(.msg),但我只能打开一次因为文件被“锁定”或已经打开,所以第二次出错。 / p>
我的代码:
Get-ChildItem $scriptPath -Filter *.msg |
ForEach-Object {
$outlook = New-Object -comobject outlook.application
$msg = $outlook.Session.OpenSharedItem($_.FullName)
$msg | Select-Object -ExpandProperty Body
$outlook.Quit()
}
错误是:文件XXX无法打开。也许它已经打开了......
提前致谢
答案 0 :(得分:1)
我知道这是一个旧线程,但是在搜索此问题时它是最高线程。这对我有用:
Get-ChildItem $scriptPath -Filter *.msg |
ForEach-Object {
$outlook = New-Object -comobject outlook.application
$msg = $outlook.Session.OpenSharedItem($_.FullName)
$msg | Select-Object -ExpandProperty Body
$msg.Close(1) # oldispose
$msg = $null
}
答案 1 :(得分:0)
您使用的是哪个Outlook版本?
我的a bug in Outlook和解决方法是使用.msg
属性标记readonly
个文件。