我正在尝试使用PSPGP PowerShell模块解密PGP文件。该文件存储在Azure Blob容器中。由于我对PowerShell不太熟悉,下面是我使用的脚本:
param (
[Parameter()]
[string] $storageAccount = "mystorageaccount",
[string] $srcBlob = "/input/file.txt.pgp",
[string] $srcContainer = "myontainer",
[string] $destContainer = "myontainer",
[string] $pgpprivatekey = "/input/PGPKeyPrivate.pgp",
[string] $ResourceGroup = "myressourcegroup"
)
# Connect to Azure
Write-Verbose -Message 'Connecting to Azure'
$AzureContext = (Connect-AzAccount -Identity).context
Disable-AzContextAutosave -Scope Process
$AzureContext = Set-AzContext -SubscriptionName $AzureContext.Subscription -DefaultProfile $AzureContext
$storageContext = New-AzStorageContext -StorageAccountName $storageAccount -UseConnectedAccount
try {
$accKey = (Get-AzStorageAccountKey -ResourceGroupName $ResourceGroup -StorageAccountName $storageAccount).Value[0]
$context_storageAcct = New-AzStorageContext -StorageAccountName $storageAccount -StorageAccountKey $accKey
write-output $context_storageAcct
}
catch {
$errors += [PSCustomObject]@{Item = "azcontext"; Error = $_.Exception }
write-output "error get AZcontext"
}
# decript PGP Files
try {
Unprotect-PGP -FilePathPrivate $srcContainer+$pgpprivatekey -Password "mypsw" -FolderPath $srcContainer+$srcBlob -OutputFolderPath $srcContainer+"/input"
}
catch
{
$errmsg = $_.Exception.Message
Write-Output $errmsg
}
字符串
当我执行Runbook时,它返回以下内容:
的数据
有人能帮我修改一下剧本吗?
谢谢。
1条答案
按热度按时间kq4fsx7k1#
警告:Unprotect-PGP - Remove PGP encryption failed because private key not given.
我在我的环境中尝试了相同的脚本,得到了相同的错误。
x1c 0d1x的数据
发生上述错误的原因是它没有从blob存储中获取文件路径,或者可能是命令无法使用blob存储执行。
也可以将**
pgpprivatekey
和file.txt.pgp
下载到本地路径。您可以指定路径运行
unprotect-pgp
**命令。命令:
字符串
的
上述命令成功解密了文件,文件被保存在输入文件夹中。
现在使用**
azcopy
**工具可以上传到您的容器。型
输出:
型
的
参考号:
使用AzCopy v10将文件上载到Azure Blob存储|Microsoft Learn