Powershell在pgp解密时失败

时间:2019-02-12 21:10:57

标签: powershell powershell-v2.0 pgp

我正在尝试使用Powershell解密自动pgp消息,但是它会丢弃一条错误消息:“ gpg:decrypt_message失败:没有这样的文件或目录”

签名和加密部分是通过命令行命令完成的:

$path = "\\networkdrive\folder1\message"
$step2files = Get-ChildItem -Recurse -Path $path | Where-Object{$_.Extension -eq ".asc"}
$z=1
foreach ($files in $step2files) {
    $outputname = "$files.pgp"
    $input = $files
    $z 

    $options = " --output $outputname –-encrypt --recipient XYKey $files"
    $options

    gpg  --output $outputname --encrypt --recipient XYKey $input
    $z++
}

我需要以类似的方式解密响应,即使powershell找到了所有相应的文件,也会显示上述错误消息。

代码部分是:

$extracted = "\\networkdrive\folder1\extracted"
$step5files = Get-ChildItem -Recurse -Path $extracted | Where-Object{$_.Extension -eq ".pgp"}
$z=1
foreach ($files in $step5files) {
    $outputname = "$files.xml"
    $input = $files
    $z 

    $options = " -u KeyID --batch --yes --passphrase password --output $outputname --decrypt $files"
    $options

    gpg  -u KeyID --batch --yes --passphrase password --output $outputname --decrypt $input
    $z++
}

有什么主意吗?

1 个答案:

答案 0 :(得分:0)

我正在使用最新的GnuPG,这对我来说效果很好:

 $cipher =  "My secret message"  | gpg -ear 'MyRecipient'

 Write-Host $chipher 

 $message = $cipher | gpg --batch --yes --passphrase 'MyPassphrase'

 Write-Host $message