2017-12-20 4 views
0

Ich versuche, Tags in einer Liste von VMs in einer CSV-Datei zu aktualisieren. Die CSV enthält auch die Ressourcengruppen.Tags aus CSV zuweisen

Ich kann Powershell erhalten die csv zu lesen, aber wenn ich versuche, die Tags in der foreach-Objekt zuweisen es für Process[0]

Import-Csv c:\temp\vm.csv -Header VMName,ResourceGroup 
ForEach-Object { 
    $tags = (Get-AzureRMVM -Name $_.VMName -ResourceGroupName $_.ResourceGroup).Tags 
    $tags['ShutdownSchedule'] = "19:00->06:00,Saturday,Sunday,December 25,December 26,December 27,December 28,December 29,January 1" 
    $UpdateTag = Set-AzureRmResource -Tag $tags -Name $_.vmName -ResourceGroupName $_.ResourceGroup -ResourceType Microsoft.Compute/virtualMachines 
} 

falsch kann nicht sehen, wo ich werde aufgefordert werden. Hilfe :)

+0

wir Azure hier installiert noch – derloopkat

+0

@derloopkat Dank nicht haben diese CSV-Datei, nur wollte das Skript überprüfen, ist da etwas offensichtlich im Scripting. –

Antwort

0

Wir können den Powershell-Skript verwenden, um Tags zu aktualisieren:

$c = Import-csv "D:\adtest\vm.csv" -header vmname, resourcegroup 
foreach($a in $c){ 
$tags = (get-azurermvm -resourcegroupname $a.resourcegroup -name $a.vmname).tags 
$tags['test1'] = "19:00->06:00,Saturday,Sunday,December 25,December 26,December 27,December 28,December 29,January 1" 
$UpdateTag = Set-AzureRmResource -Tag $tags -Name $a.vmname -ResourceGroupName $a.resourcegroup -ResourceType Microsoft.Compute/virtualMachines -force 
} 
+0

Überprüfen Sie einfach, ob die bereitgestellten Informationen hilfreich waren. Bitte lassen Sie mich wissen, wenn Sie weitere Unterstützung wünschen. –

0

aber wenn ich versuche, die Tags in dem foreach-Objekt zuweisen es für die Prozessaufforderungen [0]

Wenn ich nicht will Dialog aufzufordern Update-Aktion, um zu bestätigen, könnten Sie den Befehl mit - force

$UpdateTag = Set-AzureRmResource -Tag $tags -Name $line.vmName -ResourceGroupName $line.ResourceGroup -ResourceType Microsoft.Compute/virtualMachines -Force 
verwenden

Ich mache auch eine Demo dafür, es funktioniert auf meiner Seite richtig.

$csv = Import-Csv c:\temp\vm.csv -Header VMName,ResourceGroup 
foreach($line in $csv) 
{ 

    $tags = (Get-AzureRMVM -Name $line.VMName -ResourceGroupName $line.ResourceGroup).Tags 
    $tags['ShutdownSchedule'] = "19:00->06:00,Saturday,Sunday,December 25,December 26,December 27,December 28,December 29,January 1" 
    $UpdateTag = Set-AzureRmResource -Tag $tags -Name $line.vmName -ResourceGroupName $line.ResourceGroup -ResourceType Microsoft.Compute/virtualMachines -Force 

} 

Hinweis: verwende ich die CSV-Datei ohne Header

CSV-Dateiformat:

tomtestvm, tomGroup 

xxxxVm, xxxGroup 
Verwandte Themen