powershell - 检查word文件是否在powershell中受密码保护
问题描述
我编写了一个脚本来递归循环遍历每个目录,找到单词文件并将“机密”附加到页脚。这工作正常,直到它遇到一个导致脚本挂起的加密文件,当我在密码提示上单击取消时,它导致脚本崩溃。我试图在打开文档之前检查文档是否已加密,但提示仍然会打开,这会使脚本崩溃。是否有可靠的方法来检查文档是否受密码保护,可用于 .doc 和 .docx 文件?我已经尝试在另一个线程中使用代码,前两种方法不起作用,第三种方法检测到每个文件都是加密的,因为它会引发异常。
当前代码:
$word = New-Object -ComObject Word.Application
$word.Visible = $false
$files = Get-ChildItem -Recurse C:\temp\FooterDocuments -include *.docx,*.doc
$restricted = "CONFIDENTIAL"
foreach ($file in $files) {
$filename = $file.FullName
Write-Host $filename
try {
$document = $word.Documents.Open($filename, $null, $null, $null, "")
if($document.ProtectionType -ne -1) {
$document.Close()
Write-Host "$filename is encrypted"
continue
}
} catch {
Write-Host "$filename is encrypted"
continue
}
foreach ($section in $document.Sections) {
$footer = $section.Footers.Item(1)
$footer.Range.Characters.Last.InsertAfter("`n" + $restricted)
}
$document.Save()
$document.Close()
}
$word.Quit()
解决方案
推荐阅读
- python - 从矩阵中删除负数
- react-native - Jest 在 react-native-modalize 上失败了?
- ios - 添加包依赖项后,xcode 13 Previews 停止工作
- python - 如何将 groupby 日期与另一个将日期作为输入的函数结合起来
- python - 如何在python变量的html页面中做减法?
- python - apscheduler 我无法删除正在运行的作业
- python - 来自多标签图像分类模型的随机预测
- logging - loki:“错误每个流至少需要一个标签对”
- node.js - http get请求不起作用,而post请求在带有node.js的rest api中运行良好
- android - React Native - gradle,清单合并错误