尝试使用PowerShell保护Excel文件时出错

时间:2019-08-21 17:05:04

标签: excel powershell

我正在尝试执行PowerShell脚本以保护Excel文件的密码。

这是脚本:

Set objExcel = CreateObject(“Excel.Application”)

objExcel.Visible = True

objExcel.DisplayAlerts = FALSE

Set objWorkbook = objExcel.Workbooks.Add

Set objWorksheet = objWorkbook.Worksheets(1)


objWorksheet.Cells(1, 1).Value = Now

objWorkbook.SaveAs “C:\Test.xlsx”,,”%reTG54w”

objExcel.Quit

我尝试使用“以PowerShell身份运行”运行它,但它会自动关闭,我也尝试使用PowerShell ISE,结果如下:

enter image description here

其文字是这样的:

At C:\Users\gasgu\OneDrive\Desktop\pwoershell.ps1:14 char:39
+ objWorkbook.SaveAs “C:\Test.xlsxâ€,,â€%reTG54wâ€
+                                       ~
Missing expression after ',' in pipeline element.
At C:\Users\gasgu\OneDrive\Desktop\pwoershell.ps1:14 char:39
+ objWorkbook.SaveAs “C:\Test.xlsxâ€,,â€%reTG54wâ€
+                                       ~
Missing argument in parameter list.
    + CategoryInfo          : ParserError: (:) [], ParseException
    + FullyQualifiedErrorId : MissingExpression

我已经从以下网址找到了该脚本:https://devblogs.microsoft.com/scripting/how-can-i-password-protect-an-excel-spreadsheet/

但是,值得一提的是,我想做的是立即从PC(.xlsx)中提取一个Excel文件并用密码保护它(创建新副本),在此脚本中我没有可以理解的是,是否正在从某处选择excel文件,因为我没有看到明确指出这一点的行。

编辑:根据@BigBen的说明(请参阅注释和批准的答案),我执行的脚本最终不是PowerShell,该脚本是VBS。他在PowerShell中提供了执行所需结果的脚本。

1 个答案:

答案 0 :(得分:2)

那是VBScript,不是Powershell。也许试试这个:

$excel = New-Object -ComObject Excel.Application
$excel.Visible = $true
$excel.DisplayAlerts = $false
$wb = $excel.Workbooks.Add()
$wb.Worksheets("Sheet1").Cells(1, 1).Value = Get-Date
$wb.SaveAs("C:\Test.xlsx",[Type]::Missing,"%reTG54w")
$excel.Quit()