第一次在这里发布,请原谅我的格式中的任何问题。
我正在从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)。
任何人都知道我可能做错了什么,或者是否有解决方法将其唤醒?