Мне удалось добавить функцию и запустить ее, однако она зашифровала только один файл из 3, когда я ожидала, что это сделает всю папку. Из чтения функции похоже, что она должна делать всю папку. Ниже приведены функция и мой сценарий.
Функция добавления-шифрования
[CmdletBinding()]
[OutputType([System.IO.FileInfo])]
param
(
[Parameter(Mandatory)]
[ValidateNotNullOrEmpty()]
[ValidateScript({Test-Path -Path $_ -PathType Container})]
[string]$FolderPath,
[Parameter(Mandatory)]
[ValidateNotNullOrEmpty()]
[string]$Password,
[Parameter()]
[ValidateNotNullOrEmpty()]
[string]$GpgPath = 'C:\Program Files (x86)\GnuPG\bin\gpg.exe'
)
process {
try
{
Get-ChildItem -Path $FolderPath | foreach {
Write-Verbose -Message "Encrypting [$($_.FullName)]"
Start-Process -FilePath $GpgPath -ArgumentList "--batch --passphrase $Password -c $($_.FullName)" -Wait -NoNewWindow
}
Get-ChildItem -Path $FolderPath -Filter '*.gpg'
}
catch
{
Write-Error $_.Exception.Message
}
}
Вызов функции и выход
$EncryptionTarget = "C:\Users\myself\Documents\Files-ToEncrypt"
$Passphrase = "Password1"
Add-Encryption $EncryptionTarget -Password $Passphrase
Вывод
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 10/24/2019 4:43 PM 79 test.docx.gpg
Я ожидал, что все 3 тестовых документа выйдут.
У меня есть 3 документа в
$ EncryptionTarget = "C: \ Users \self \ Documents \ Files-ToEncrypt"
Я зашифровал только 1-й документ.