Ich möchte gerne Frühjahrsputz in unserer Umgebung machen. Ich habe derzeit im vCenter ca. 800 Tags. Ich finde aber kein geeignetes Mittel herauszufinden welche Tags keinen Objektbezug mehr haben, da die Tags ja auch nach Löschung der VM erhalten bleiben. Ist jemandem ein Weg bekannt alle Tags aufzulisten die keinem Objekt zugeordnet sind? Diese könnten dann weg.
Das geht doch recht einfach via PowerCLI?
(Get-TagAssignment | WHERE { $_.Tag.Name -eq "***TAGNAME***" }).Entity
-> damit bekommst du ne Liste aller Einträge wo der Tag: "***TAGNAME***" dran hängt.
Das schubst du einfach durch ne Schleife, die deine 800 Tags durchnimmt.
Alle Tags bekommst du ja via Get-Tag. Entweder direkt in eine ForEach Schleife gepiped oder halt über ne Variable mit ner Schleife drum rum.
In der Schleife fragst du dann das Ergebnis aus der obrigen Get-TagAssignment Abfrage ab ob diese $false ist - meint, ob da nichts zurück kommt. Immer dann, wenn der Tag irgendwo dran hängt kommt was, wenn nicht, ist das Ergebnis normal nicht valide. Im Ausführungsteil dieser If-Abfrage pipest du das dann direkt in Remove-Tag und entfernst diesen.
In einer zweiten Schleife ganz am Ende muss/sollte man dann wohl nochmal die Tag Kategorien durchlaufen und schauen, ob da irgendwo Kategorien ohne Tags sind, weil du die Tags oben rausgeputzt hast. -> die können dann auch weg.
Btw. die PowerCLI Referenzpage ist mMn seeehr gut in der Beschreibung der einzelnen Befehle. Meist reicht es einfach kurz via Google zu schauen, wie der PowerCLI Befehl lautet und dann in der Doku zur PowerCLI zu schauen, was die Befehle genau machen bzw. wie die Syntax ist. Auch brauchbare Beispiele gibts dort normal zu finden...
Wichtig wäre vllt noch, mach das mit dem Remove-Tag vllt erstmal in ner Trockeübung. Also schreib dir ne Ausgabe oder ein Logfile anstatt das hart zu entfernen. Dann prüfst du, ob das stimmen kann... Mal fix ein Script hingezimmert ist in 10min gemacht. Aber da gibts dann normal keinen zweiten Boden oder ein Fallnetz - wenn weg, dann weg!