Выполнять команды в последовательности - PullRequest
0 голосов
/ 06 июня 2018

Я пытаюсь запустить powershell в последовательности.У меня есть следующий фрагмент.

$TestdevlandingStorageAccount = Get-AzureRmStorageAccount -ResourceGroupName "Test_Storage" -AccountName "Testdevlanding";
$TestuatlandingStorageAccount = Get-AzureRmStorageAccount -ResourceGroupName "Test_Storage" -AccountName "Testuatlanding";

Set-AzureRmKeyVaultAccessPolicy -VaultName "MyOrgTest" -ObjectId $TestdevlandingStorageAccount.Identity.PrincipalId -PermissionsToKeys wrapkey,unwrapkey,get;
Set-AzureRmKeyVaultAccessPolicy -VaultName "MyOrgTest" -ObjectId $TestuatlandingStorageAccount.Identity.PrincipalId -PermissionsToKeys wrapkey,unwrapkey,get;

Я получаю ниже ошибки при выполнении вышеупомянутой команды ( Первая Set команда успешно выполняется ):

Set-AzureRmKeyVaultAccessPolicy : Cannot validate argument on parameter 'ObjectId'. The argument is null or empty. Provide an argument that is not null or empty, and then try the 
command again.
At C:SomePath\PowerShellStorageEncryption.ps1:27 char:71
+ ... " -ObjectId $TestprodpublishedStorageAccount.Identity.PrincipalId -P ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [Set-AzureRmKeyVaultAccessPolicy], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.Azure.Commands.KeyVault.SetAzureKeyVaultAccessPolicy

ЕслиЯ запускаю только одну групповую операцию, тогда она будет выполняться нормально:

$TestdevlandingStorageAccount = Get-AzureRmStorageAccount -ResourceGroupName "Test_Storage" -AccountName "Testdevlanding";
Set-AzureRmKeyVaultAccessPolicy -VaultName "HoneywellTest" -ObjectId $TestdevlandingStorageAccount.Identity.PrincipalId -PermissionsToKeys wrapkey,unwrapkey,get;

Я попытался выполнить поиск в Google на Как выполнять команды powershell в последовательности , большинство ответов предлагается использовать ;, который я сейчас использую без всякой удачи.

Может кто-нибудь подсказать, чего мне не хватает?

Большое спасибо заранее.

Ответы [ 3 ]

0 голосов
/ 06 июня 2018

Я заметил, что в сообщении об ошибке указано неверное имя переменной:

-ObjectId $aTestuatpublishedStorageAccount.Identity.PrincipalId

, когда вы используете в своем фрагменте $TestuatlandingStorageAccount

Возможно, вы делали опечатку в первый раз, когда выпробежал код?Думаю, у Берни Уайта правильный ответ.

0 голосов
/ 06 июня 2018

Я обнаружил проблему,

Не всем учетным записям хранения присвоены идентификаторы.Я назначил удостоверение всем своим учетным записям хранения, используя приведенную ниже команду, и затем смог успешно выполнить команду.

Set-AzureRmStorageAccount -ResourceGroupName "MyResourceGroup" -AccountName "mystorageaccount" -AssignIdentity

Действительно, извините, ребята!Я просто предположил, что может быть проблема из-за последовательности.Я пытался удалить вопрос, но не смог.

Большое спасибо всем, кто ответил на мой вопрос.

0 голосов
/ 06 июня 2018

Невозможно проверить аргумент параметра «ObjectId».Аргумент нулевой или пустой.Укажите аргумент, который не является пустым или пустым, а затем повторите команду.

Означает, что PrincipalId был пустым, поэтому, возможно, исходный Get-AzureRmStorageAccount не нашел учетную запись хранения.Но также убедитесь, что у вас нет только опечатки.

-ObjectId $aTestuatpublishedStorageAccount.Identity.PrincipalId

$[a]TestuatpublishedStorageAccount в вашем имени не отражает имена других переменныхвы использовали.

Попробуйте:

$TestdevlandingStorageAccount = (Get-AzureRmStorageAccount -ResourceGroupName "Test_Storage" -AccountName "Testdevlanding").Identity.PrincipalId;
$TestuatlandingStorageAccount = (Get-AzureRmStorageAccount -ResourceGroupName "Test_Storage" -AccountName "Testuatlanding").Identity.PrincipalId;

Set-AzureRmKeyVaultAccessPolicy -VaultName "HoneywellTest" -ObjectId $TestdevlandingStorageAccount -PermissionsToKeys wrapkey,unwrapkey,get;
Set-AzureRmKeyVaultAccessPolicy -VaultName "HoneywellTest" -ObjectId $TestuatlandingStorageAccount -PermissionsToKeys wrapkey,unwrapkey,get;

Чтобы убедиться, что вы на самом деле получаете PrincipalId, вы можете просто запустить их:

$TestdevlandingStorageAccount = (Get-AzureRmStorageAccount -ResourceGroupName "Test_Storage" -AccountName "Testdevlanding").Identity.PrincipalId;
$TestuatlandingStorageAccount = (Get-AzureRmStorageAccount -ResourceGroupName "Test_Storage" -AccountName "Testuatlanding").Identity.PrincipalId;

$TestdevlandingStorageAccount
$TestuatlandingStorageAccount
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...