azure - 获取 azure 磁盘信息 csv
问题描述
您好我正在尝试获取 azure 虚拟机的磁盘信息和网络信息。
我可能在做一些愚蠢的事情,但我认为这是将 vm 添加到网络 foreach 循环中的情况。
我已经把脚本放在下面了,有人能看出我哪里出错了吗?
$reportName = "sample.csv"
$report = @()
$vms = Get-AzVM
$publicIps = Get-AzPublicIpAddress
$nics = Get-AzNetworkInterface | ?{ $_.VirtualMachine -NE $null}
foreach ($nic in $nics) {
$info = "" | Select VmName, ResourceGroupName, Region, VmSize, VirturalNetwork, Subnet, DnsServers, NicDns, PrivateIpAddress, OsType, OSDisk, DiagDisk, DataDisk, PublicIPAddress, vCPU, Memory
$vm = $vms | ? -Property Id -eq $nic.VirtualMachine.id
foreach($publicIp in $publicIps) {
if($nic.IpConfigurations.id -eq $publicIp.ipconfiguration.Id) {
$info.PublicIPAddress = $publicIp.ipaddress
}
}
#$location = $vm.location
$info.OsType = $vm.StorageProfile.OsDisk.OsType
$info.VMName = $vm.Name
$info.ResourceGroupName = $vm.ResourceGroupName
$info.Region = $vm.Location
$info.VmSize = $vm.HardwareProfile.VmSize
$size = $info.VmSize = $vm.HardwareProfile.VmSize
$info.vCPU = (Get-AzVMSize -Location $location | ? {$_.name -eq $size}).NumberOfCores
$info.Memory = (Get-AzVMSize -Location $location | ? {$_.name -eq $size}).MemoryInMB
$info.VirturalNetwork = $nic.IpConfigurations.subnet.Id.Split("/")[-3]
$info.Subnet = $nic.IpConfigurations.subnet.Id.Split("/")[-1]
$info.PrivateIpAddress = $nic.IpConfigurations.PrivateIpAddress
$vm = get-azvm | ? {$_.name -eq $vm}
foreach ($vms in $vm) {
$info.OSDiskSizeGB = $vm.StorageProfile.OsDisk.DiskSizeGB
$info.OSDisk = $vm.StorageProfile.OsDisk.Vhd.uri
$info.DiagDisk = $vm.DiagnosticsProfile.BootDiagnostics.StorageUri
$info.DataDisk = $vm.StorageProfile.DataDisks.vhd.uri -join "**"
}
$report+=$info
}
$report | ft VmName, ResourceGroupName, Region, VmSize, VirturalNetwork, Subnet, DnsServers, NicDns, PrivateIpAddress, OsType, OSDisk, DiagDisk, DataDisk, PublicIPAddress, vCPU, Memory
$report | Export-CSV "c:\temp\$reportName"
提前致谢 :)
编辑:
这是我得到的输出,没有任何虚拟机的磁盘信息
VmName ResourceGroupName Region VmSize VirturalNetwork Subnet DnsServers NicDns PrivateIpAddress OsType OSDisk DiagDisk DataDisk PublicIPAddress vCPU Memory
------ ----------------- ------ ------ --------------- ------ ---------- ------ ---------------- ------ ------ -------- -------- --------------- ---- ------
vmr1-sec1 DEPLOYRG1 westeurope Standard_D2_v4 av-vnet av-sub2 172.0.2.4 Windows 2 8192
vmr2-sec1 DEPLOYRG1 westeurope Standard_D2_v4 av-vnet av-sub2 172.0.2.5 Windows 2 8192
cks-cp1 K8S westeurope Standard_B2s K8S-vnet default 10.0.0.4 Linux 20.71.120.71 2 4096
解决方案
推荐阅读
- node.js - gnutls_handshake() 失败:关闭通知 - Docker 且仅在一个网络上
- postgresql - 在 psql 中使用 \d 命令的结果
- datacontract - 消费者驱动的合同测试数据库
- php - sql数据不显示在php中
- python - 使用具有特定周期的非空值插入 Dataframe 的列
- git - Git通过删除master中的文件来修复合并冲突,这可能吗?
- python - Pandas 在 MultiIndex DataFrame 中选择特定的低级列
- ios - 为 iOS 模拟器运行 AppiumDesktop 需要什么
- ios - iOS Invalid transactionId 用于沙盒测试的未完成交易
- c++ - 条件变量、引用和线程:谁拥有锁?