GPG.exe在首次从PowerShell调用时挂起

时间:2019-01-22 07:06:08

标签: powershell gnupg

第一次在这里发布,请原谅我的格式中的任何问题。

我正在从SFTP下载CSV文件,该文件已使用PGP加密。然后,我使用以下功能使用GPG.exe解密文件:

function Remove-Encryption 

{

[CmdletBinding()] 
param 
( 
    [Parameter(Mandatory)] 
    [ValidateNotNullOrEmpty()] 
    [ValidateScript({ Test-Path -Path $_ -PathType Leaf })] 
    [string]$inputFilePath, 

    [Parameter(Mandatory)] 
    [ValidateNotNullOrEmpty()] 
    [string]$outputFilePath, 

    [Parameter(Mandatory)] 
    [ValidateNotNullOrEmpty()] 
    [string]$Password, 

    [Parameter()] 
    [ValidateNotNullOrEmpty()] 
    [string]$GpgPath = 'C:\Program Files (x86)\GnuPG\bin\gpg.exe' 
) 
process 
{ 
    try 
    { 

        $decryptFilePath = $outputFilePath 
        Write-Verbose -Message "Decrypting [$($inputFilePath)] to [$($decryptFilePath)]" 
        Write-Host "--batch --yes --pinentry-mode loopback --passphrase $Password -o $decryptFilePath -d $($inputFilePath)"  
        $startProcParams = @{ 
            'FilePath' = $GpgPath 
            'ArgumentList' = "--batch --yes --pinentry-mode loopback --passphrase $Password -o $decryptFilePath -d $($inputFilePath)"  
            'Wait' = $true 
            'NoNewWindow' = $true 

        } 
        Write-Host "Decrypting file $($inputFilePath)"
        $result = Start-Process @startProcParams 


    } 
    catch 
    { 
        #Write-Error $_.Exception.Message 
    } 
} 

}

在Internet上的某个地方(也许在这里)找到了它,除了一个问题之外,它适用于我的用例。 当我第一次运行它时,命令似乎挂起。 GPG将启动,并说文件已加密,但随后不再执行任何操作。我需要按Ctrl + C退出会话,然后再次运行它,然后它成功运行。

我一直无法弄清楚可能是什么问题。我确实在GPG网站上发现了这个issue,它可以非常接近地描述我的问题,但似乎在一年前就已解决,并且我的版本较新(2.2.10)。

任何人都知道我可能做错了什么,或者是否有解决方法将其唤醒?

0 个答案:

没有答案