使用 PowerShell 在 Azure 中使用服务主体 ID 登录时无法获取订阅详细信息
unable to get subscription details when logging in with service principal id in azure using PowerShell
我正在尝试使用 PowerShell 使用服务主体 ID 登录。通过这样做,我想连接到我的 Azure 数据工厂并停止触发器。但是在代码执行的初始阶段它给出了一个错误。我贴一段代码和结果。
$resourceGroupName = 'my-resource-group'
$dataFactoryName = 'my-azure-data-factory-name'
$applicationid = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx'
$secretKey = 'my-secret-key'
$tenantID = 'my-tenant-id'
$password = ConvertTo-SecureString -String $secretKey -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential($applicationid,$password)
$x= Login-AzureRmAccount -ServicePrincipal -Credential $cred -Tenant $tenantID
#Gather a list of triggers to stop them
$allTriggers = Get-AzureRmDataFactoryV2Trigger -ResourceGroupName $resourceGroupName -DataFactoryName $dataFactoryName
结果:
好吧,我可以重现您的问题,这是由您的服务负责人造成的,他在您的数据中没有任何作用 factory/subscription。
要解决此问题,请导航至门户中的 ADF 或订阅 -> Access control (IAM)
-> 添加您的服务主体作为角色,例如Data Factory Contributor
/Contributor
。要添加角色,您登录门户的用户帐户需要是您 ADF/subscription.
的 Owner
角色
添加角色后,运行命令再次登录,即可正常使用。 (我用新的Az
模块测试,你的AzureRm
模块也是一样的逻辑)
我正在尝试使用 PowerShell 使用服务主体 ID 登录。通过这样做,我想连接到我的 Azure 数据工厂并停止触发器。但是在代码执行的初始阶段它给出了一个错误。我贴一段代码和结果。
$resourceGroupName = 'my-resource-group'
$dataFactoryName = 'my-azure-data-factory-name'
$applicationid = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx'
$secretKey = 'my-secret-key'
$tenantID = 'my-tenant-id'
$password = ConvertTo-SecureString -String $secretKey -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential($applicationid,$password)
$x= Login-AzureRmAccount -ServicePrincipal -Credential $cred -Tenant $tenantID
#Gather a list of triggers to stop them
$allTriggers = Get-AzureRmDataFactoryV2Trigger -ResourceGroupName $resourceGroupName -DataFactoryName $dataFactoryName
结果:
好吧,我可以重现您的问题,这是由您的服务负责人造成的,他在您的数据中没有任何作用 factory/subscription。
要解决此问题,请导航至门户中的 ADF 或订阅 -> Access control (IAM)
-> 添加您的服务主体作为角色,例如Data Factory Contributor
/Contributor
。要添加角色,您登录门户的用户帐户需要是您 ADF/subscription.
Owner
角色
添加角色后,运行命令再次登录,即可正常使用。 (我用新的Az
模块测试,你的AzureRm
模块也是一样的逻辑)