首页 > 解决方案 > 列出与特定密钥保管库关联的 azure vm?

问题描述

如何通过 powershell 导入与特定密钥保管库关联的 Azure Vm 列表?

标签: azurepowershellazure-keyvaultscript

解决方案


我使用以下 PowerShell 脚本仅测试了一个资源组,因此您可以删除资源组,它将显示订阅的所有 VM。

Connect-AzAccount
$vaultname="your KeyVault name"
$virtualmachines=Get-AzVM -ResourceGroupName "your resource group name"
$vm=@()
foreach ($virtualmachine in $virtualmachines) {
$sp = Get-AzADServicePrincipal -displayname $virtualmachine.Name
$id=$sp.Id
$keyvault= Get-AzKeyVault -VaultName $vaultname -ResourceGroupName "your resource group name"
$obj=$keyvault.AccessPolicies.ObjectId
if ($obj -eq $sp.Id){
$deviceprops = [ordered] @{
VMDisplayName = $sp.DisplayName
}
$deviceobj = new-object -Type PSObject -Property $deviceprops
$vm += $deviceobj
}
}
$vm
$vm | Export-CSV "C:\VMNames.csv"

输出。

在此处输入图像描述

在此处输入图像描述


推荐阅读