Большие двоичные объекты шифрования PGP в хранилище Azure с помощью Powershell

#azure #powershell #pgp #openpgp

Вопрос:

Я пытаюсь зашифровать некоторые файлы в хранилище больших двоичных объектов Azure с помощью Powershell(требуется проектом, но не на моем языке) через веб-задание.

Цикл работает, и я могу перечислить следующие большие двоичные объекты :

 DIDE HP_Dana_6cb72486-cb9f-4d03-a3c4-0953fd3e2abc.txt
DIDE HP_Dana_c4f9e193-5498-4289-9aae-d76507c2abd7.txt
DIDE/Prime150620210_703b6bcd-179f-40e6-b30b-167ad38eed08.ddi
DIDE/Prime150620211_715f0db1-fb65-4e64-83ed-2a9690ae7c5f.ddi
DIDE/Prime150620212_ebd833c1-aedf-4681-82fd-c4b09dc8da40.ddi
DIDE/Prime150620213_5d88af9d-7d5d-423b-87d8-f6b8c017e2d4.ddi
DIDE/Prime150620215_7f5eed68-b4a1-4b67-b496-f5a0fa7b1156.ddi
DIDE/Prime220620210_75bc1201-7e34-4fe2-8dd7-270ab03526dc.ddi
DIDE/Prime240620210_c48cc859-ebfc-4b2e-858c-3f5cd5764b1a.ddi
DIDE/Prime240620211_9b0373a8-121a-49b6-80e1-19596b1085da.ddi
DIDE/Prime250620210_2ef48e0e-cfeb-413f-a7ec-332706315ce9.ddi
DIDE/Prime260620210_b147f316-2146-4e17-968a-b161282c5b18.ddi
DIDE/Prime290620210_8a978889-643f-47a7-9fc4-b6c58c6fb318.ddi
 

Код до сих пор..

 $context = New-AzureStorageContext -ConnectionString 'DefaultEndpointsProtocol=https;AccountName=stftoscoreyrot001;AccountKey=iSTp3g92fJcmV FRM4VBxfGsriA9NSIJ2hHpYTQ1idy8mSCfMaqdpb7NdboethfsQzKaT1kcGks9J8wqgOjzrA==;EndpointSuffix=core.windows.net'
$containerName = 'uploadebs'
$ProgressPreference = "SilentlyContinue"
$ProgressPreference
$blobs = Get-AzureStorageBlob -Container $containerName -Context $context 
$publicKey = $env:Dide_Encryption_Key

 foreach ($blob in $blobs) {     
     if ($blob.Name -match '^DIDE*') {
        $f = $blob.Name
        Start-Process -FilePath .GnuPGbingpg.exe "--batch", "--quiet", "--yes" "-o", "d:homeDIDE*.gpg", "-e", "-r", $privateKey, $blob.Name
     }
 }

 

Ошибка:

 [07/01/2021 19:13:58 > ec2b20: SYS INFO] Status changed to Initializing
[07/01/2021 19:13:59 > ec2b20: SYS INFO] Job directory change detected: Job file 'Job_DIDEHP.ps1' timestamp differs between source and working directories.
[07/01/2021 19:14:00 > ec2b20: SYS INFO] Run script 'HP.ps1' with script host - 'PowerShellScriptHost'
[07/01/2021 19:14:00 > ec2b20: SYS INFO] Status changed to Running
[07/01/2021 19:14:02 > ec2b20: INFO] SilentlyContinue
[07/01/2021 19:14:04 > ec2b20: ERR ] Start-Process : A positional parameter cannot be found that accepts argument 
[07/01/2021 19:14:04 > ec2b20: ERR ] 'System.Object[]'.
[07/01/2021 19:14:04 > ec2b20: ERR ] At D:localTempjobstriggeredas1pqerjc.nt4Job_DIDEHP.ps1:33 char:9
[07/01/2021 19:14:04 > ec2b20: ERR ]           Start-Process -FilePath .GnuPGbingpg.exe "--batch", "--qui ...
[07/01/2021 19:14:04 > ec2b20: ERR ]           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[07/01/2021 19:14:04 > ec2b20: ERR ]       CategoryInfo          : InvalidArgument: (:) [Start-Process], ParameterB 
[07/01/2021 19:14:04 > ec2b20: ERR ]    indingException
[07/01/2021 19:14:04 > ec2b20: ERR ]       FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell 
[07/01/2021 19:14:04 > ec2b20: ERR ]    .Commands.StartProcessCommand
[07/01/2021 19:14:04 > ec2b20: ERR ]  
[07/01/2021 19:14:04 > ec2b20: ERR ] Start-Process : A positional parameter cannot be found that accepts argument 
[07/01/2021 19:14:04 > ec2b20: ERR ] 'System.Object[]'.
[07/01/2021 19:14:04 > ec2b20: ERR ] At D:localTempjobstriggeredas1pqerjc.nt4Job_DIDEHP.ps1:33 char:9
[07/01/2021 19:14:04 > ec2b20: ERR ]           Start-Process -FilePath .GnuPGbingpg.exe "--batch", "--qui ...
[07/01/2021 19:14:04 > ec2b20: ERR ]           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

Любая помощь приветствуется!

Ответ №1:

"--yes" "-o" В массиве, который вы передаете в качестве аргумента, отсутствует запятая Start-Process . Без запятой это будет интерпретироваться как два массива вместо одного.

Только первый массив привязывается к параметру -ArgumentList , а второй массив не может быть привязан и выдает исключение.