Powershell ISE v5演示文稿。开放方法密码保护

时间:2016-06-17 15:59:17

标签: powershell powerpoint

我正在尝试自动打开并保存许多具有相同密码的powerpoint。我已经用excel做了这个,唯一不清楚的是我在网上找不到关于通过presentation.open传递密码变量的任何信息。我能用WorkBooks.open

做到这一点

脚本看起来像这样“

add-type -AssemblyName microsoft.VisualBasic
add-type -AssemblyName System.Windows.Forms


$passwd = Read-Host("Type in the password:")
$objPP = new-object -comobject powerpoint.application
$objPP.visible = [Microsoft.Office.Core.MsoTriState]::msoTrue

#Paste in Path to Powerpoints
dir C:\Users\me\Desktop\cracking\*.pptx | ForEach-Object {


$doc = $objPP.presentations.open($_.FullName)

}

我不确定如何配置presentation.open的参数来传递$ passwd

当我使用excel执行此操作时,基本上看起来像这样:

$doc = $objExcel.WorkBooks.Open($_.FullName,1,$false,5,"$passwd","$passwd")

有没有办法用powerpoint做到这一点?

或者有没有办法专注于密码框,所以我可以使用SENDKEYs? 这也可能有效,我可能会试着用PDF来做这个。

我注意到的问题是,一旦密码框出现,我的脚本将不会继续,直到我输入密码。我不能SENDKEYs到密码框。

感谢。

1 个答案:

答案 0 :(得分:0)

假设您知道密码,在VBA中打开受密码保护的演示文稿的语法是:

{{1}}

IIRC,如果您在非密码文件上使用密码,则不会出现错误;传递错误的密码会导致可捕获的错误,因此您可以使用它来测试受密码保护的文件,即使您不知道密码...只需传递虚假密码并测试错误。