Azure / azure-powershell

Microsoft Azure PowerShell
Other
4.27k stars 3.87k forks source link

issue in custom/Initialize-AzMigrateReplicationInfrastructure.ps1 #20487

Open geek-rb opened 1 year ago

geek-rb commented 1 year ago

Description

When running command Initialize-AzMigrateReplicationInfrastructure (with parameters) got error Initialize-AzMigrateReplicationInfrastructure : 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.

I guess issue is here Azure/azure-powershell/blob/main/src/Migrate/custom/Initialize-AzMigrateReplicationInfrastructure.ps1 452: $kvspnid = (Get-AzADServicePrincipal -DisplayName "Azure Key Vault" )[0].Id (Get-AzADServicePrincipal -DisplayName "Azure Key Vault" ) returns object, not an array

Issue script & Debug output

output is huge, but not correlated with problem
...
DEBUG: [Common.Authentication]: Received token with LoginType 'User', Tenant: '############',
UserId: '############'
DEBUG: ============================ HTTP REQUEST ============================

HTTP Method:
GET

Absolute Uri:
https://management.azure.com/subscriptions/############/resourceGroups/rg-migrate2/resources?ap
i-version=2021-04-01

Headers:
x-ms-client-request-id        : f923488f-7eec-422b-86f5-7bb43ea3740c
accept-language               : en-US

Body:

DEBUG: ============================ HTTP RESPONSE ============================

Status Code:
OK

Headers:
Pragma                        : no-cache
x-ms-ratelimit-remaining-subscription-reads: 11999
x-ms-request-id               : 9d6b10d3-89bf-4922-ac88-496868d18855
x-ms-correlation-request-id   : 9d6b10d3-89bf-4922-ac88-496868d18855
x-ms-routing-request-id       : GERMANYWESTCENTRAL:20221220T112113Z:9d6b10d3-89bf-4922-ac88-496868d18855
Strict-Transport-Security     : max-age=31536000; includeSubDomains
X-Content-Type-Options        : nosniff
Cache-Control                 : no-cache
Date                          : Tue, 20 Dec 2022 11:21:12 GMT

Body:
{
  "value": [
    {
      "id":
"/subscriptions/############/resourceGroups/rg-migrate2/providers/Microsoft.KeyVault/vaults/mig
ratekv466521626",
      "name": "migratekv466521626",
      "type": "Microsoft.KeyVault/vaults",
      "location": "centralus",
      "tags": {
        "Migrate Project": "vmware-migrate2"
      }
    },
    {
      "id":
"/subscriptions/############/resourceGroups/rg-migrate2/providers/Microsoft.KeyVault/vaults/vmw
are-migrate5134kv",
      "name": "vmware-migrate5134kv",
      "type": "Microsoft.KeyVault/vaults",
      "location": "centralus",
      "tags": {}
    },
    {
      "id":
"/subscriptions/############/resourceGroups/rg-migrate2/providers/Microsoft.Migrate/assessmentP
rojects/azAppliance8138project",
      "name": "azAppliance8138project",
      "type": "Microsoft.Migrate/assessmentProjects",
      "kind": "Migrate",
      "location": "centralus",
      "tags": {
        "Migrate Project": "vmware-migrate2"
      }
    },
    {
      "id":
"/subscriptions/############/resourceGroups/rg-migrate2/providers/Microsoft.Migrate/migrateproj
ects/vmware-migrate2",
      "name": "vmware-migrate2",
      "type": "Microsoft.Migrate/migrateprojects",
      "location": "centralus",
      "tags": {
        "Migrate Project": "vmware-migrate2"
      }
    },
    {
      "id":
"/subscriptions/############/resourceGroups/rg-migrate2/providers/Microsoft.OffAzure/MasterSite
s/vmware-migrate5134mastersite",
      "name": "vmware-migrate5134mastersite",
      "type": "Microsoft.OffAzure/MasterSites",
      "kind": "Migrate",
      "location": "centralus",
      "tags": {
        "Migrate Project": "vmware-migrate2"
      }
    },
    {
      "id":
"/subscriptions/############/resourceGroups/rg-migrate2/providers/Microsoft.OffAzure/VMwareSite
s/azAppliance8138site",
      "name": "azAppliance8138site",
      "type": "Microsoft.OffAzure/VMwareSites",
      "kind": "Migrate",
      "location": "centralus",
      "tags": {
        "Migrate Project": "vmware-migrate2"
      }
    },
    {
      "id":
"/subscriptions/############/resourceGroups/rg-migrate2/providers/Microsoft.RecoveryServices/va
ults/azAppliance8138vault",
      "name": "azAppliance8138vault",
      "type": "Microsoft.RecoveryServices/vaults",
      "sku": {
        "name": "RS0",
        "tier": "Standard"
      },
      "location": "centralus",
      "tags": {
        "Migrate Project": "vmware-migrate2"
      }
    },
    {
      "id":
"/subscriptions/############/resourceGroups/rg-migrate2/providers/Microsoft.ServiceBus/namespac
es/migratesbns466521626",
      "name": "migratesbns466521626",
      "type": "Microsoft.ServiceBus/namespaces",
      "sku": {
        "name": "Standard",
        "tier": "Standard"
      },
      "location": "centralus",
      "tags": {
        "Migrate Project": "vmware-migrate2"
      }
    },
    {
      "id":
"/subscriptions/############/resourceGroups/rg-migrate2/providers/Microsoft.Storage/storageAcco
unts/migrategwsa466521626",
      "name": "migrategwsa466521626",
      "type": "Microsoft.Storage/storageAccounts",
      "sku": {
        "name": "Standard_LRS",
        "tier": "Standard"
      },
      "kind": "Storage",
      "location": "centralus",
      "tags": {
        "Migrate Project": "vmware-migrate2"
      }
    },
    {
      "id":
"/subscriptions/############/resourceGroups/rg-migrate2/providers/Microsoft.Storage/storageAcco
unts/migratelsa466521626",
      "name": "migratelsa466521626",
      "type": "Microsoft.Storage/storageAccounts",
      "sku": {
        "name": "Standard_LRS",
        "tier": "Standard"
      },
      "kind": "Storage",
      "location": "centralus",
      "tags": {
        "Migrate Project": "vmware-migrate2"
      }
    }
  ]
}

DEBUG: 15:21:15 - GetAzureResourceCmdlet end processing.
Initialize-AzMigrateReplicationInfrastructure : 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 line:1 char:1
+ Initialize-AzMigrateReplicationInfrastructure `
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [Initialize-AzMi...nInfrastructure], ParameterBindingValidationExceptio
   n
    + FullyQualifiedErrorId : ParameterArgumentValidationError,Initialize-AzMigrateReplicationInfrastructure

Environment data

Name                           Value
----                           -----
PSVersion                      5.1.19041.1682
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.19041.1682
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1

Module versions

ModuleType Version    Name                                ExportedCommands
---------- -------    ----                                ----------------
Script     2.10.4     Az.Accounts                         {Add-AzEnvironment, Clear-AzConfig, Clear-AzContext, Clear...
Script     2.1.0      Az.Migrate                          {Get-AzMigrateDiscoveredServer, Get-AzMigrateJob, Get-AzMi...
Script     6.5.1      Az.Resources                        {Export-AzResourceGroup, Export-AzTemplateSpec, Get-AzDeny...

Error output

Message        : Cannot validate argument on parameter 'ObjectId'. The argument is null or empty. Provide an argument t
                 hat is not null or empty, and then try the command again.
StackTrace     :    at System.Management.Automation.ExceptionHandlingOps.CheckActionPreference(FunctionContext funcCont
                 ext, Exception exception)
                    at System.Management.Automation.Interpreter.ActionCallInstruction`2.Run(InterpretedFrame frame)
                    at System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run(InterpretedFrame fr
                 ame)
                    at System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run(InterpretedFrame fr
                 ame)
                    at System.Management.Automation.Interpreter.Interpreter.Run(InterpretedFrame frame)
                    at System.Management.Automation.Interpreter.LightLambda.RunVoid1[T0](T0 arg0)
                    at System.Management.Automation.PSScriptCmdlet.RunClause(Action`1 clause, Object dollarUnderbar, Ob
                 ject inputToProcess)
                    at System.Management.Automation.PSScriptCmdlet.DoProcessRecord()
                    at System.Management.Automation.CommandProcessor.ProcessRecord()
Exception      : System.Management.Automation.ParameterBindingValidationException
InvocationInfo : {Get-AzRoleAssignment}
Line           :                 $gwyRoleAssignments = Get-AzRoleAssignment -ObjectId $kvspnid -Scope $gwyStorageAccoun
                 t.Id -ErrorVariable notPresent -ErrorAction SilentlyContinue

Position       : At C:\Program Files\WindowsPowerShell\Modules\Az.Migrate\2.1.0\custom\Initialize-AzMigrateReplicationI
                 nfrastructure.ps1:455 char:70
                 + ... $gwyRoleAssignments = Get-AzRoleAssignment -ObjectId $kvspnid -Scope  ...
                 +                                                          ~~~~~~~~
HistoryId      : 14

Message        : The argument is null or empty. Provide an argument that is not null or empty, and then try the command
                  again.
StackTrace     :    at System.Management.Automation.ValidateNotNullOrEmptyAttribute.Validate(Object arguments, EngineIn
                 trinsics engineIntrinsics)
                    at System.Management.Automation.ParameterBinderBase.BindParameter(CommandParameterInternal paramete
                 r, CompiledCommandParameter parameterMetadata, ParameterBindingFlags flags)
Exception      : System.Management.Automation.ValidationMetadataException
InvocationInfo : {Get-AzRoleAssignment}
Line           :                 $gwyRoleAssignments = Get-AzRoleAssignment -ObjectId $kvspnid -Scope $gwyStorageAccoun
                 t.Id -ErrorVariable notPresent -ErrorAction SilentlyContinue

Position       : At C:\Program Files\WindowsPowerShell\Modules\Az.Migrate\2.1.0\custom\Initialize-AzMigrateReplicationI
                 nfrastructure.ps1:455 char:70
                 + ... $gwyRoleAssignments = Get-AzRoleAssignment -ObjectId $kvspnid -Scope  ...
                 +                                                          ~~~~~~~~
HistoryId      : 14

The Azure PowerShell team is listening, please let us know how we are doing: https://aka.ms/azpssurvey?Q_CHL=ERROR.

DEBUG: AzureQoSEvent:  Module: Az.Accounts:2.10.4; CommandName: Resolve-AzError; PSVersion: 5.1.19041.1682; IsSuccess:
True; Duration: 00:00:00.0358862
DEBUG: 15:29:14 - [ConfigManager] Got nothing from [EnableDataCollection], Module = [], Cmdlet = []. Returning default
value [True].
DEBUG: 15:29:14 - ResolveError end processing.
ghost commented 1 year ago

Thank you for your feedback. This has been routed to the support team for assistance.

RakeshMohanMSFT commented 1 year ago

@geek-rb Thank you for reaching out, we are looking into it.

RakeshMohanMSFT commented 1 year ago

@geek-rb Can you please share the parameter details you passed to this command, like scenario and other relevant params?

geek-rb commented 1 year ago

Initialize-AzMigrateReplicationInfrastructure -ResourceGroupName $azureMigrateProjectResourceGroup -ProjectName $azureMigrateProjectName -TargetRegion (Get-AzResourceGroup -Name $azureMigrateProjectResourceGroup).Location -Scenario "agentlessVMware"

$azureMigrateProjectResourceGroup - resource group with migrate project $azureMigrateProjectName - project's name

ghost commented 1 year ago

Thanks for the feedback! We are routing this to the appropriate team for follow-up. cc @shijojoy.

Issue Details
### Description When running command Initialize-AzMigrateReplicationInfrastructure (with parameters) got error Initialize-AzMigrateReplicationInfrastructure : 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. I guess issue is here Azure/azure-powershell/blob/main/src/Migrate/custom/Initialize-AzMigrateReplicationInfrastructure.ps1 452: $kvspnid = (Get-AzADServicePrincipal -DisplayName "Azure Key Vault" )[0].Id (Get-AzADServicePrincipal -DisplayName "Azure Key Vault" ) returns object, not an array ### Issue script & Debug output ```PowerShell output is huge, but not correlated with problem ... DEBUG: [Common.Authentication]: Received token with LoginType 'User', Tenant: '############', UserId: '############' DEBUG: ============================ HTTP REQUEST ============================ HTTP Method: GET Absolute Uri: https://management.azure.com/subscriptions/############/resourceGroups/rg-migrate2/resources?ap i-version=2021-04-01 Headers: x-ms-client-request-id : f923488f-7eec-422b-86f5-7bb43ea3740c accept-language : en-US Body: DEBUG: ============================ HTTP RESPONSE ============================ Status Code: OK Headers: Pragma : no-cache x-ms-ratelimit-remaining-subscription-reads: 11999 x-ms-request-id : 9d6b10d3-89bf-4922-ac88-496868d18855 x-ms-correlation-request-id : 9d6b10d3-89bf-4922-ac88-496868d18855 x-ms-routing-request-id : GERMANYWESTCENTRAL:20221220T112113Z:9d6b10d3-89bf-4922-ac88-496868d18855 Strict-Transport-Security : max-age=31536000; includeSubDomains X-Content-Type-Options : nosniff Cache-Control : no-cache Date : Tue, 20 Dec 2022 11:21:12 GMT Body: { "value": [ { "id": "/subscriptions/############/resourceGroups/rg-migrate2/providers/Microsoft.KeyVault/vaults/mig ratekv466521626", "name": "migratekv466521626", "type": "Microsoft.KeyVault/vaults", "location": "centralus", "tags": { "Migrate Project": "vmware-migrate2" } }, { "id": "/subscriptions/############/resourceGroups/rg-migrate2/providers/Microsoft.KeyVault/vaults/vmw are-migrate5134kv", "name": "vmware-migrate5134kv", "type": "Microsoft.KeyVault/vaults", "location": "centralus", "tags": {} }, { "id": "/subscriptions/############/resourceGroups/rg-migrate2/providers/Microsoft.Migrate/assessmentP rojects/azAppliance8138project", "name": "azAppliance8138project", "type": "Microsoft.Migrate/assessmentProjects", "kind": "Migrate", "location": "centralus", "tags": { "Migrate Project": "vmware-migrate2" } }, { "id": "/subscriptions/############/resourceGroups/rg-migrate2/providers/Microsoft.Migrate/migrateproj ects/vmware-migrate2", "name": "vmware-migrate2", "type": "Microsoft.Migrate/migrateprojects", "location": "centralus", "tags": { "Migrate Project": "vmware-migrate2" } }, { "id": "/subscriptions/############/resourceGroups/rg-migrate2/providers/Microsoft.OffAzure/MasterSite s/vmware-migrate5134mastersite", "name": "vmware-migrate5134mastersite", "type": "Microsoft.OffAzure/MasterSites", "kind": "Migrate", "location": "centralus", "tags": { "Migrate Project": "vmware-migrate2" } }, { "id": "/subscriptions/############/resourceGroups/rg-migrate2/providers/Microsoft.OffAzure/VMwareSite s/azAppliance8138site", "name": "azAppliance8138site", "type": "Microsoft.OffAzure/VMwareSites", "kind": "Migrate", "location": "centralus", "tags": { "Migrate Project": "vmware-migrate2" } }, { "id": "/subscriptions/############/resourceGroups/rg-migrate2/providers/Microsoft.RecoveryServices/va ults/azAppliance8138vault", "name": "azAppliance8138vault", "type": "Microsoft.RecoveryServices/vaults", "sku": { "name": "RS0", "tier": "Standard" }, "location": "centralus", "tags": { "Migrate Project": "vmware-migrate2" } }, { "id": "/subscriptions/############/resourceGroups/rg-migrate2/providers/Microsoft.ServiceBus/namespac es/migratesbns466521626", "name": "migratesbns466521626", "type": "Microsoft.ServiceBus/namespaces", "sku": { "name": "Standard", "tier": "Standard" }, "location": "centralus", "tags": { "Migrate Project": "vmware-migrate2" } }, { "id": "/subscriptions/############/resourceGroups/rg-migrate2/providers/Microsoft.Storage/storageAcco unts/migrategwsa466521626", "name": "migrategwsa466521626", "type": "Microsoft.Storage/storageAccounts", "sku": { "name": "Standard_LRS", "tier": "Standard" }, "kind": "Storage", "location": "centralus", "tags": { "Migrate Project": "vmware-migrate2" } }, { "id": "/subscriptions/############/resourceGroups/rg-migrate2/providers/Microsoft.Storage/storageAcco unts/migratelsa466521626", "name": "migratelsa466521626", "type": "Microsoft.Storage/storageAccounts", "sku": { "name": "Standard_LRS", "tier": "Standard" }, "kind": "Storage", "location": "centralus", "tags": { "Migrate Project": "vmware-migrate2" } } ] } DEBUG: 15:21:15 - GetAzureResourceCmdlet end processing. Initialize-AzMigrateReplicationInfrastructure : 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 line:1 char:1 + Initialize-AzMigrateReplicationInfrastructure ` + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidData: (:) [Initialize-AzMi...nInfrastructure], ParameterBindingValidationExceptio n + FullyQualifiedErrorId : ParameterArgumentValidationError,Initialize-AzMigrateReplicationInfrastructure ``` ### Environment data ```PowerShell Name Value ---- ----- PSVersion 5.1.19041.1682 PSEdition Desktop PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...} BuildVersion 10.0.19041.1682 CLRVersion 4.0.30319.42000 WSManStackVersion 3.0 PSRemotingProtocolVersion 2.3 SerializationVersion 1.1.0.1 ``` ### Module versions ```PowerShell ModuleType Version Name ExportedCommands ---------- ------- ---- ---------------- Script 2.10.4 Az.Accounts {Add-AzEnvironment, Clear-AzConfig, Clear-AzContext, Clear... Script 2.1.0 Az.Migrate {Get-AzMigrateDiscoveredServer, Get-AzMigrateJob, Get-AzMi... Script 6.5.1 Az.Resources {Export-AzResourceGroup, Export-AzTemplateSpec, Get-AzDeny... ``` ### Error output ```PowerShell Message : Cannot validate argument on parameter 'ObjectId'. The argument is null or empty. Provide an argument t hat is not null or empty, and then try the command again. StackTrace : at System.Management.Automation.ExceptionHandlingOps.CheckActionPreference(FunctionContext funcCont ext, Exception exception) at System.Management.Automation.Interpreter.ActionCallInstruction`2.Run(InterpretedFrame frame) at System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run(InterpretedFrame fr ame) at System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run(InterpretedFrame fr ame) at System.Management.Automation.Interpreter.Interpreter.Run(InterpretedFrame frame) at System.Management.Automation.Interpreter.LightLambda.RunVoid1[T0](T0 arg0) at System.Management.Automation.PSScriptCmdlet.RunClause(Action`1 clause, Object dollarUnderbar, Ob ject inputToProcess) at System.Management.Automation.PSScriptCmdlet.DoProcessRecord() at System.Management.Automation.CommandProcessor.ProcessRecord() Exception : System.Management.Automation.ParameterBindingValidationException InvocationInfo : {Get-AzRoleAssignment} Line : $gwyRoleAssignments = Get-AzRoleAssignment -ObjectId $kvspnid -Scope $gwyStorageAccoun t.Id -ErrorVariable notPresent -ErrorAction SilentlyContinue Position : At C:\Program Files\WindowsPowerShell\Modules\Az.Migrate\2.1.0\custom\Initialize-AzMigrateReplicationI nfrastructure.ps1:455 char:70 + ... $gwyRoleAssignments = Get-AzRoleAssignment -ObjectId $kvspnid -Scope ... + ~~~~~~~~ HistoryId : 14 Message : The argument is null or empty. Provide an argument that is not null or empty, and then try the command again. StackTrace : at System.Management.Automation.ValidateNotNullOrEmptyAttribute.Validate(Object arguments, EngineIn trinsics engineIntrinsics) at System.Management.Automation.ParameterBinderBase.BindParameter(CommandParameterInternal paramete r, CompiledCommandParameter parameterMetadata, ParameterBindingFlags flags) Exception : System.Management.Automation.ValidationMetadataException InvocationInfo : {Get-AzRoleAssignment} Line : $gwyRoleAssignments = Get-AzRoleAssignment -ObjectId $kvspnid -Scope $gwyStorageAccoun t.Id -ErrorVariable notPresent -ErrorAction SilentlyContinue Position : At C:\Program Files\WindowsPowerShell\Modules\Az.Migrate\2.1.0\custom\Initialize-AzMigrateReplicationI nfrastructure.ps1:455 char:70 + ... $gwyRoleAssignments = Get-AzRoleAssignment -ObjectId $kvspnid -Scope ... + ~~~~~~~~ HistoryId : 14 The Azure PowerShell team is listening, please let us know how we are doing: https://aka.ms/azpssurvey?Q_CHL=ERROR. DEBUG: AzureQoSEvent: Module: Az.Accounts:2.10.4; CommandName: Resolve-AzError; PSVersion: 5.1.19041.1682; IsSuccess: True; Duration: 00:00:00.0358862 DEBUG: 15:29:14 - [ConfigManager] Got nothing from [EnableDataCollection], Module = [], Cmdlet = []. Returning default value [True]. DEBUG: 15:29:14 - ResolveError end processing. ```
Author: geek-rb
Assignees: -
Labels: `Migrate`, `Service Attention`, `bug`, `customer-reported`, `needs-team-attention`
Milestone: -
Ijtehad143 commented 1 year ago

Hi @shijojoy

I am getting this error when Initialize-AzMigrateReplicationInfrastructure of azure migrate

Initialize-AzMigrateReplicationInfrastructure : 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 line:12 char:1