azure - 从 txt 文件读取并转换为托管磁盘
问题描述
我在 Azure 中有一个虚拟机列表,我正在尝试将其转换为托管磁盘。
我有一个虚拟机列表,我从列表中读取并导出到 csv,捕获资源组名称和虚拟机名称,但是我似乎从整个订阅中获取虚拟机。
此外,当我尝试导入 csv 时,当我运行$comps
它时,它会在 csv 中返回正确的信息,但是我似乎无法将它们传递到下一行。
CSV 格式为
ResouceGroupName 名称 RG-01 vm-01 RG-01 vm-02 RG-01 vm-03 RG-01 vm-04
我正在尝试的代码是
Login-AzureRmAccount
$sub = Get-AzureRmSubscription | ogv -PassThru
Select-AzureSubscription -SubscriptionId $sub
$virtualmachines = Get-Content C:\temp\vm.txt | % {
Get-Azurermvm | select ResourceGroupName,Name | export-csv c:\temp\vm.csv -NoClobber -NoTypeInformation -Append
}
$comps = Import-Csv c:\temp\Vm.csv |
foreach ($Comp in $comps)
{
Stop-AzureRmVM -ResourceGroupName $_.ResourceGroupName -Name $_.Name -Force
ConvertTo-AzureRmVMManagedDisk -ResourceGroupName $_.ResourceGroupName -VMName $_.Name
}
提前致谢..
解决方案
对于您的问题,您将虚拟机导出为 csv 文件并在 foreach 代码中使用它。因此,使用命令是不必要的:
$virtualmachines = Get-Content C:\temp\vm.txt | % { Get-Azurermvm | select ResourceGroupName,Name | export-csv c:\temp\vm.csv -NoClobber -NoTypeInformation -Append }
并且您的虚拟机都在一个资源组中,您可以直接使用 ResourceGroupName 获取它们。
对于 foreach 中的管道,这是不必要的。您可以使用以下代码,我对您的代码进行了一些更改,并且效果很好。
Login-AzureRmAccount
$sub = Get-AzureRmSubscription | ogv -PassThru
Select-AzureRmSubscription -Subscription $sub
Get-Azurermvm –ResourceGroupName RG-01 | select ResourceGroupName,Name | export-csv c:\temp\vm.csv -NoClobber -NoTypeInformation -Append
$comps = Import-Csv c:\temp\Vm.csv
foreach ($Comp in $comps)
{
Stop-AzureRmVM -ResourceGroupName $Comp.ResourceGroupName -Name $Comp.Name -Force
ConvertTo-AzureRmVMManagedDisk -ResourceGroupName $Comp.ResourceGroupName -VMName $Comp.Name
}
这是我的结果的屏幕截图。
推荐阅读
- python - 如何按数组的长度对数组中的数组进行排序?
- python - tkinter 滚动条没有滚动条
- ios - 使用 MagazineLayout 和 Carbon 时基于内容的具有动态高度的嵌套 CollectionView
- gradle - NoClassDefFoundError: org/jetbrains/plugins/gradle/tooling/ModelBuilderService
- javascript - 如何在其中逐项过滤对象数组?javascript
- linux - 对终端中找到的文件执行命令?
- r - 当两个变量与第二个 DF 匹配时,将列添加到 DF
- python - 如何查看或“分类”当前正在更新的文件并能够看到写入其中的新信息?
- c - 忽略 -Wunused-variable 的未使用变量
- java - 如何通过使用@Cacheable 注解实现以下行为?