2017-04-17 68 views
2

私は開いているExcelファイルを持っており、パスワードを適用してPowerShellを使用して保存しています。次のエラーが表示されます。PowerShellを使用して読み取り専用ファイルを保存する方法

Exception calling "SaveAs" with "3" argument(s): "Cannot save as that name. Document was opened as read-only." At C:\PasswordProtectExcelFiles.ps1:38 char:45
+ $a = $wb.SaveAs("$($FilePath)",$xlNormal,"$($Password)")
+ ~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : ComMethodTargetInvocation

私は多くを検索しましたが、何も問題は解決しませんでした。私が既に言及したいくつかの質問があります: Powershell - SaveAs function when file already existsHow to Remove ReadOnly Attribute on File Using PowerShell?です。

マイコード:

param([string]$FilePath, [string]$Password) 
$xl = new-object -comobject excel.application 
$xl.Visible = $True 
$xl.DisplayAlerts = $False 

$wb = $xl.Workbooks.Open("$($FilePath)") 

$a = $wb.SaveAs("$($FilePath)",$xlNormal,"$($Password)") 

$a = $xl.Quit() 

$a = Release-Ref($wb) 
$a = Release-Ref($xl) 

私は、コードを閉じて再び開いたときに、私はそれが読み取り専用ファイルを保存しますかどうかを確認するためにWorkbooks.Open文の後にこれらのコードを試してみましたが、それは働いたが、

Code1: 
$file = Get-Item "$($FilePath)" 
if ($file.IsReadOnly -eq $true) 
{ 
    $file.IsReadOnly = $false 
} 

Code2: 
Set-ItemProperty "$($FilePath)" -name IsReadOnly -value $false 

実際には、ファイルは読み取り専用ではなく、フォルダがあり、読み取り専用のボックスをチェックアウトできません。この問題と同じ:https://social.technet.microsoft.com/Forums/windowsserver/en-US/f7ec4fc5-3bbe-4fd0-a8ca-c4ead75b010c/unable-to-removeclear-readonly-attribute-from-folder-in-windows-server-2008

+0

をおそらく、あなただけのセキュリティ権限を持っていません。ファイルを手動で開いて保存できますか? –

答えて

4

the documentation for the Open() methodによると、3番目の引数では、ファイルを読み取り専用モードで開くかどうかを指定できます。

$falseにそれを設定します。

​​
+0

あなたの答えをありがとうが、まだ動作していません。最初はうまくいきましたが、ファイルを置き換えたときに再び同じ読み取り専用エラーが発生しました。私はテストを終えた後、元のテンプレートでテストしたかったので、ファイルを元のテンプレートに置き換えてSSISパッケージを実行しました。ファイルを開いたときにパスワードがありませんでした。だからコードfrm PoShを実行し、同じ読み取り専用エラーが発生しました。私はそれが読み取り専用ファイルを保存するコードが欲しいです。他のすべてのものは、読み取り専用ではなく、同じ名前で保存することがファイルを開くことになります。別の名前を付けて保存する。 – Stephanie

+0

これは上書きの問題のようです。パスワードを適用した後に上書きすることはできません – Stephanie

+0

一時ファイルまたは別のファイル名をパスワードとともに保存した後、元のファイルを削除して一時ファイルの名前を変更したと考えましたか? –

関連する問題