gpt4 book ai didi

azure - 从 txt 文件读取并转换为托管磁盘

转载 作者:行者123 更新时间:2023-12-03 05:48:36 24 4
gpt4 key购买 nike

我有 Azure 中的虚拟机列表,我正在尝试将其转换为托管磁盘。

我有一个虚拟机列表,我从列表中读取并导出到 csv 捕获资源组名称和虚拟机名称,但是我似乎从整个订阅中获取了虚拟机。

此外,当我尝试导入 csv 时,当我运行 $comps 时,它会返回 csv 中的正确信息,但我似乎无法将它们传递到下一行。

CSV 格式为

ResouceGroupName 名称RG-01 VM-01RG-01 VM-02RG-01 VM-03RG-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

}

这是我的结果的屏幕截图。

enter image description here

关于azure - 从 txt 文件读取并转换为托管磁盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50634571/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com