Автоматизация функции пакетного шифрования GNUPG из Technet, шифрование только одного файла за раз? - PullRequest
0 голосов
/ 25 октября 2019

Мне удалось добавить функцию и запустить ее, однако она зашифровала только один файл из 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-й документ.

...