我使用服务主体作为 azure cli 的登录项。此服务主体的角色是“所有者”。
我正在尝试运行:
az ad app list
Run Code Online (Sandbox Code Playgroud)
和
az ad app create --display-name "Test application 2"
Run Code Online (Sandbox Code Playgroud)
并得到错误:
当前用户注册应用程序需要目录权限。有关如何配置,请参阅“ https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-create-service-principal-portal ”。原始错误:权限不足,无法完成操作。
我应该为这个服务主体分配什么角色?
我想THIS-THING-HERE.onmicrosoft.com使用 Azure CLI检索租户名称。我真的无法在文档中找到。
编辑:当我调用 azure 帐户列表时,我没有在提供的域中获得用户名,因为我使用公司电子邮件登录:
[
{
"cloudName": "AzureCloud",
"id": "46ee2f65-7112-4c96-ad0a-3ff6ca22a615",
"isDefault": true,
"name": "Visual Studio Professional",
"state": "Enabled",
"tenantId": "1caf5d6b-58cb-40e6-88b3-eb9ab9c0c010",
"user": {
"name": "a.krajniak@avanade.com",
"type": "user"
}
},
{
"cloudName": "AzureCloud",
"id": "1efd84d6-173f-42cc-80db-7b2c17eb0edd",
"isDefault": false,
"name": "Microsoft Azure Enterprise",
"state": "Enabled",
"tenantId": "c48d02ad-7efd-4910-9b51-ebb7a4b75379",
"user": {
"name": "a.krajniak@avanade.com",
"type": "user"
}
}
]
Run Code Online (Sandbox Code Playgroud) 我正在尝试自动化一些我们的 BAT 脚本,为此我们的脚本需要知道每个 VMSS 实例的私有 IP(实例没有公共 IP)。
有没有办法使用 azure cli 查询特定 VMSS 下所有实例的私有 IP。我尝试了 LB 和 VMSS 的几个命令,但还没有找到解决方案。
az vmss show -g <rg> -n <vmss>
az vmss list-instances -g <rg> -n <vmss>
az vmss nic list-vm-nics -g <rg> --vmss-name <vmss> --ids <id>
az network lb address-pool list -g <rg> --lb-name <lb>
az vmss list-instance-connection-info -g <rg> -n <vmss>
Run Code Online (Sandbox Code Playgroud)
任何帮助都是非常可观的,我不是在寻找 powershell。
我正在使用 Azure PowerShell 从 azure DevOps 部署 ARM 模板,如下所示。
这是订阅级部署。我得到低于错误。
术语“Get-AzSubscription”不被识别为 cmdlet、函数、脚本文件或可运行程序的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试。
Install-Module -Name Az -AllowClobber -Scope CurrentUser
Import-Module Az
$context = Get-AzSubscription -SubscriptionId xxxxxxxx
Set-AzContext $context
New-azdeployment -Name "SKL" -Location westeurope -TemplateFile .\delegatedResourceManagement.json -TemplateParameterFile .\delegatedResourceManagement.parameters.json
Run Code Online (Sandbox Code Playgroud)
日志:
##[section]Starting: Azure PowerShell script: InlineScript
==============================================================================
Task : Azure PowerShell
Description : Run a PowerShell script within an Azure environment
Version : 3.153.0
Author : Microsoft Corporation
Help : https://docs.microsoft.com/azure/devops/pipelines/tasks/deploy/azure-powershell
==============================================================================
##[command]Import-Module -Name C:\Modules\azurerm_6.7.0\AzureRM\6.7.0\AzureRM.psd1 -Global
##[command]Clear-AzureRmContext -Scope Process
##[command]Disable-AzureRmContextAutosave -ErrorAction Stop
##[command]Add-AzureRMAccount -ServicePrincipal …Run Code Online (Sandbox Code Playgroud) 我正在尝试myapp.PublishSettings使用 Azure CLI将 .Net Core 应用程序发布到 Azure ,但找不到执行此操作的命令
我认为它可能与az webapp update但我看不到在哪里可以输入我的 PublishSettings 阅读官方文档
我正在使用 VS Code,为了在编写 azure cli 脚本时获得一些智能感知,我将所有内容都放在一个.azcli文件中。我现在的问题是如何从 powershell 终端执行该文件?此外,是否可以在这样的脚本中使用参数,例如:
az servicebus topic create -g $resourceGroup -n $topicName --namespace-name $namespace
Run Code Online (Sandbox Code Playgroud)
是否可以调用一个azcli类似于上面的文件并$resourceGroup, $topicName, $namespace从 powershell 提供 as 参数?
我对 Powershell 有点陌生,我正在尝试制作一个脚本,该脚本从 Azure 资源组(包括标签)获取所有数据并将输出导出到 CSV。
据我所知,有几种方法可以做到,AzureCLI、AzureRM(Powershell) 和 Az(Powershell)。
示例 1:此“单行脚本”完成工作,但需要输入实际标签,而不是从 Azure 自动检索
$resourceGroupList = Get-AzResourceGroup | select-Object -Property ResourceGroupName,Location,ResourceId,ProvisioningState,@{N='Enviroment (Tag)'; E={$_.Tags.Enviroment}} ,@{N='Ownership (Tag)'; E={$_.Tags.Ownership}}
$resourceGroupList | export-csv test.csv -NoTypeInformation
Run Code Online (Sandbox Code Playgroud)

我发现的另一种方法是使用 AzureCLI
$resourceGroupList = az group list --query "[].{ResourceGroupName:name,Location:location,ResourceType:type,provisioningState:properties,Tags:tags,ResourceGroupID:id}" -o json | convertfrom-json
$resourceGroupList | Export-Csv test.csv -NoTypeInformation
Run Code Online (Sandbox Code Playgroud)

我真的很纠结数组以及如何将它们格式化为以示例 1 的格式导出到 CSV。
任何帮助/想法将不胜感激!
谢谢!
我最近发现了该az rest命令,它允许我执行经过身份验证的 REST 命令,而不必担心获取令牌。
https://www.codeisahighway.com/native-azure-rest-api-calls-now-available-in-azure-cli-2-0-67/
az rest --method patch --url "https://graph.microsoft.com/v1.0/users/johndoe@azuresdkteam.onmicrosoft.com" --body "{\"displayName\": \"jondoe2\"}"
Run Code Online (Sandbox Code Playgroud)
Azure Powershell 中是否有等效项?我需要进行一个无法通过任何AzAd...cmdlet 进行的调用。我会想象类似的东西Invoke-AzRestMethod,但这并不存在。
编辑:我想执行无法通过 Azure AD Cmdlet 执行的调用(目前)。例如直接使用新类型的replyUrls,或上传AAD B2C(测试版API)的自定义策略。
Azure CLI 世界中是否有用于以下命令的挂件?
New-AzureADServiceAppRoleAssignment -ObjectId $clientManagedIdentityObjectId -Id $serverAppRoleId -ResourceId $serverEnterpriseAppObjectId -PrincipalId $clientManagedIdentityObjectId
Run Code Online (Sandbox Code Playgroud)
我想将托管身份添加到appRole企业应用程序内。
az ad app permission add似乎没有做正确的事情,或者我误解了记录不足的参数。
目标是删除资源组中的所有资源,而不使用 azure CLI 删除它。
通过阅读文档,我可以这样做:
az resource delete -g MyResourceGroup -n MyVm
Run Code Online (Sandbox Code Playgroud)
因此我认为我可以执行以下操作
az resource list --resource-group MyResourceGroup | az resource delete
Run Code Online (Sandbox Code Playgroud)
Azure Powershell 中的类似命令的工作方式与上面类似。我对 CLI 很陌生,这个方法可行吗?删除资源组中所有资源的有效方法是什么(如果我们有多种类型的资源)