{"id":4012,"date":"2020-01-08T16:17:06","date_gmt":"2020-01-08T15:17:06","guid":{"rendered":"https:\/\/www.vrealize.it\/?p=4012"},"modified":"2020-03-04T10:32:13","modified_gmt":"2020-03-04T09:32:13","slug":"erstellen-oder-loeschen-von-tags-in-nsx-t-mit-powercli","status":"publish","type":"post","link":"https:\/\/vrealize.it\/de\/2020\/01\/08\/erstellen-oder-loeschen-von-tags-in-nsx-t-mit-powercli\/","title":{"rendered":"Erstellen oder l\u00f6schen von Tags in NSX-T mit PowerCLI"},"content":{"rendered":"\n<p>In diesem Blogpost m\u00f6chte ich zeigen wir man Tags in NSX-T zu virtuellen Maschinen hinzuf\u00fcgt oder l\u00f6scht.<\/p>\n<p>Sollte die VM noch keinen Tag haben, ist es sehr einfach neue Tags zu dieser Maschine hinzuzuf\u00fcgen. Sobald die VM aber schon Tags besitzt m\u00fcssen diese vorher ausgelesen und wieder neu gesetzt werden, weil die NSX API keinen Befehl mit add oder remove in diesem Zusammenhang kennt sondern jedes mal die Tags neu schreibt.<\/p>\n\n\n\n<p>Wenn Sie mehr dar\u00fcber lernen wollen wir Sie mit PowerCLI Objekte in NSX anlegen k\u00f6nnen, steht das in meinem folgenden Blogpost: <a title=\"Permalink to Creating Objects in NSX-T Policy API with VMware PowerCLI\" href=\"https:\/\/www.vrealize.it\/2020\/01\/08\/objekte-in-nsx-t-policy-api-mit-vmware-powercli-erstellen\/\" rel=\"bookmark\">Objekte in NSX-T Policy API mit VMware PowerCLI erstellen<\/a><\/p>\n\n\n\n<h4>Complete Script<\/h4>\n\n\n\n<p>Das nachfolgende Script setzt einen neuen Tag mit dem Namen &#8220;quarantine&#8221; auf eine vorhandene VM. \u00dcber den interaktiven User Input kann entschieden werden welche VM getagged werden soll. Der VM Name ist Case Sensitive und kann im NSX Manager \u00fcber Inventory -&gt; Virtual Machines gefunden werden.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">$display_name = Read-Host -Prompt 'VM Name'\n$SecTag = \"quarantine\"\n$secscope = \"\"\nif ($vmdataentrytags) {Remove-Variable vmdataentrytags}\n$vmdata = Get-NsxtPolicyService -Name com.vmware.nsx_policy.infra.realized_state.enforcement_points.virtual_machines\n$vmdatavmid = @([PSCustomObject]$vmdata.list(\"default\").results | select-object -property display_name, external_id | select-string \"display_name=$display_name\")\n$vmdatavmid = $vmdatavmid -replace (\"@{display_name=$display_name; \") -replace (\"}\")\n$vmdataid=$vmdatavmid|ConvertFrom-StringData\n$vmdataentry = @([PSCustomObject]$vmdata.list(\"default\").results | select-object -property display_name, tags | select-string \"display_name=$display_name\")\nif ($vmdataentry -like '*scope*') {\n$vmdataentrytags=$vmdataentry-replace (\"@{display_name=$display_name; tags=(\\[)struct \") -replace'(\\])'\n$vmdataentrytags = $vmdataentrytags -replace (\"struct \") -replace (\"'\") -replace (\"}}\"),(\"}\") -replace (\":\"),(\"=\") -replace (\" \") -replace (\"},\"),(\"};\")\n#$vmdataentrytags = $vmdataentrytags -replace (\"{scope=$secscope,tag=$SecTag};\") -replace (\";{scope=$secscope,tag=$SecTag}\")\n$vmdataentrytags = @($vmdataentrytags.split(\";\"))\n$vmdataentrytags = $vmdataentrytags -replace (\"{\") -replace (\"}\")\n}\n$vmdataentrytags+=\"scope=$secscope,tag=$SecTag\"\n$vmdatacontent = $vmdata.Help.updatetags.virtual_machine_tags_update.Create()\n$vmdatacontent.virtual_machine_id = $vmdataid.external_id\nforeach ($item in $vmdataentrytags) {\n$item=@($item.split(\",\"))\n$vmdatatags1=$item|ConvertFrom-StringData\n$vmdatatags=$vmdata.Help.updatetags.virtual_machine_tags_update.tags.Element.Create()\n$vmdatatags.tag=$vmdatatags1.tag\n$vmdatatags.scope=$vmdatatags1.scope\n$vmdatacontent.tags.Add($vmdatatags) |Out-Null\n}\n$vmdata.updatetags(\"default\", $vmdatacontent)<\/code><\/pre>\n\n\n\n<h3>Schauen wir uns das Script im Detail an<\/h3>\n<p>Wir erstellen einen Variable und mit dem Zusatzbefehl &#8220;Read-Host&#8221; wird festgelegt, dass die Information von der Variable durch den Nutzer eingetragen werden muss. \u00dcber &#8220;-Prompt &#8216;VM Name&#8217; wird dem Nutzer noch angezeigt was er eingeben muss.<\/p>\n<pre><code>$display_name = Read-Host -Prompt 'VM Name'<\/code><\/pre>\n\n\n\n<p>Wie schon eingangs geschrieben setze ich in meinem Beispiel ein Tag mit den Namen &#8220;quarantine&#8221; und lasse das Scope Feld leer, da dieses Optional in NSX ist.<\/p>\n<pre><code>$SecTag = \"quarantine\"<\/code><br><code>$secscope = \"\"<\/code><\/pre>\n\n\n\n<p>Als erstest speichern wir die Informationen aller VMs die an NSX angeschlossen sind in der Variable &#8220;$vmdata&#8221;.<\/p>\n<pre><code>$vmdata = Get-NsxtPolicyService -Name com.vmware.nsx_policy.infra.realized_state.enforcement_points.virtual_machines<\/code><\/pre>\n\n\n\n<p>F\u00fcr jede VM sehen wir jetzt eine ganze Menge Informationen.<\/p>\n<p>In den nachfolgenden Beispielen benutze ich als Virtualle Maschine meine VM &#8220;DEV-DB&#8221;.<\/p>\n<pre>$vmdata.list(\"default\").results <br><br>----output omitted----<br>guest_info : struct {'computer_name': dev-db, 'os_name': Ubuntu Linux <br>(64-bit)}<br>compute_ids : {moIdOnHost:5, hostLocalId:5, <br>locationId:564d2f4a-05a3-3fc5-6afc-f839afad7dc1, <br>instanceUuid:52caf68c-335e-e4e9-18b3-221f5ffe0300\u2026}<br>resource_type : VirtualMachine<br>external_id : 564d2f4a-05a3-3fc5-6afc-f839afad7dc1<br>source : struct {'target_display_name': esx2, 'is_valid': True, <br>'target_type': HostNode, 'target_id': <br>283c61ef-fcc0-481f-a881-027338e11654}<br>_last_sync_time : 1577041205593<br>type : REGULAR<br>display_name : DEV-DB<br>power_state : VM_RUNNING<br>host_id : 283c61ef-fcc0-481f-a881-027338e11654<br>local_id_on_host : 5<br>tags : {struct {'scope': 2, 'tag': dev}, struct {'scope': 1, 'tag': <br>internal}, struct {'scope': 3, 'tag': db}}<br>----output omitted----<\/pre>\n\n\n\n<p>Um die VM zu taggen, ben\u00f6tigen wir nicht den VM Namen sondern die VM ID (VM UUID). Das hei\u00dft wir m\u00fcssen als erstes den&nbsp; VM Display Name und die ID&nbsp; in einer Variable mit dem Namen &#8220;$vmdatavmid&#8221;<\/p>\n<div>\n<p>$vmdatavmid = @([PSCustomObject]$vmdata.list(&#8220;default&#8221;).results | select-object -property display_name, external_id | select-string &#8220;display_name=$display_name&#8221;)<br><br>Mit select-string &#8220;display_name=$display_name&#8221; suchen wir nach der richtigen VM.<\/p>\n<\/div>\n\n\n\n<p>Aber diese Informationen kann noch nicht genutzt werden bevor wir es nicht richtig zugeschnitten haben, da wir nur die ID ben\u00f6tigen.<\/p>\n<p>Das ist die Ausgabe von $vmdatavmid<\/p>\n<p><span style=\"color: #800000;\">@{display_name=DEV-DB; <span style=\"color: #000000;\">external_id=<\/span><\/span>564d2f4a-05a3-3fc5-6afc-f839afad7dc1<span style=\"color: #800000;\">}<\/span><br>Wir l\u00f6schen &#8220;<span style=\"color: #800000;\">@{display_name=DEV-DB; <\/span>&#8221; und &#8220;<span style=\"color: #800000;\">}<\/span>&#8220;<\/p>\n\n\n\n<div>\n<p>$vmdatavmid = $vmdatavmid -replace (&#8220;@{display_name=$display_name; &#8220;) -replace (&#8220;}&#8221;)<br><br>Danach sollte die Ausgabe wie folgt aussehen:<br>$vmdatavmid<br>external_id=564d2f4a-05a3-3fc5-6afc-f839afad7dc1<\/p>\n<\/div>\n\n\n\n<p>Da die Information noch in einem falschen Format vorliegt konvertieren wir die Information in eine Tabelle.<\/p>\n<div>\n<pre>$vmdataid=$vmdatavmid|ConvertFrom-StringData<\/pre>\n<div>Jetzt sieht die Ausgabe von &#8220;$vmdataid&#8221; schon besser aus.<\/div>\n<div>Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Value<br>&#8212;-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8212;&#8211;<br>external_id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 564d2f4a-05a3-3fc5-6afc-f839afad7dc1<\/div>\n<div>&nbsp;<\/div>\n<\/div>\n\n\n\n<p>Damit am Ende noch alle bereits gesetzten Tags verf\u00fcgbar sind lesen wir nun die Infromation \u00fcber die bestehnden TAGs aus und speichern diese in&nbsp; $vmdataentry.<\/p>\n<div>\n<pre>$vmdataentry = @([PSCustomObject]$vmdata.list(\"default\").results | select-object -property display_name, tags | select-string \"display_name=$display_name\")<\/pre>\n<\/div>\n\n\n\n<p>Das ist die Ausgabe von &#8220;$vmdataentry&#8221; und hier m\u00fcssen eine ganze Menge Informationen entfernt werden&#8230;<\/p>\n<pre><span style=\"color: #993300;\">@{display_name=DEV-DB; tags=[struct {<\/span>'scope': 2, 'tag': dev<span style=\"color: #993300;\">}, struct {<\/span>'scope': 1, 'tag': internal<span style=\"color: #993300;\">}, struct {<\/span>'scope': 3, 'tag': db<span style=\"color: #993300;\">}]}<\/span><\/pre>\n\n\n\n<div>\n<div>Mann k\u00f6nnte alles in einer Zeile ersetzen und entfernen aber damit es nachvollziehbar beibt habe ich es in kleinere tasks unterteilt<\/div>\n<div>Wir entfernen als erstes&#8221;@{display_name=DEV-DB; tags=[struct &#8221; and die eckige Klammer &#8220;]&#8221; am Ende.<\/div>\n<div>Eckige Klammern werden von PowerShell als Commando interpretiert und m\u00fcssen daher zuerst isoliert werden. (\\]).<\/div>\n<div>&nbsp;<\/div>\n<pre>$vmdataentrytags=$vmdataentry-replace (\"@{display_name=$display_name; tags=(\\[)struct \") -replace'(\\])'<\/pre>\n<\/div>\n\n\n\n<p>Im n\u00e4chsten Schritt entfernen und ersetzen wir die anderen Informationen.<\/p>\n<div>\n<pre>$vmdataentrytags = $vmdataentrytags -replace (\"struct \") -replace (\"'\") -replace (\"}}\"),(\"}\") -replace (\":\"),(\"=\") -replace (\" \") -replace (\"},\"),(\"};\")<br><br><\/pre>\n<\/div>\n\n\n\n<p>Schauen wir uns die Variable ncoh einmal an &#8220;$vmdataentrytags&#8221;:<\/p>\n<pre>{scope=2,tag=dev};{scope=1,tag=internal};{scope=3,tag=db}<\/pre>\n\n\n\n<p><span style=\"color: #008000;\">Wenn Sie einen Tag\/Scope entfernen wollen, m\u00fcssten an dieser Stelle folgende Zeilen eingef\u00fcgt werden:<\/span><\/p>\n<div>\n<pre><span style=\"color: #008000;\">$vmdataentrytags = $vmdataentrytags -replace (\"{scope=$secscope,tag=$SecTag};\") -replace (\";{scope=$secscope,tag=$SecTag}\")<\/span><\/pre>\n<\/div>\n\n\n\n<p>Wir unterteilen den String nun in scope und tag. Der Identifier ist &#8220;;&#8221;<\/p>\n<div>\n<pre>$vmdataentrytags = @($vmdataentrytags.split(\";\"))<\/pre>\n<p>&nbsp;<\/p>\n<\/div>\n\n\n\n<p>&#8230;und entfernen auch die geschweiften Klammern<\/p>\n<div>\n<pre>$vmdataentrytags = $vmdataentrytags -replace (\"{\") -replace (\"}\")<\/pre>\n<\/div>\n\n\n\n<p>Die Ausgabe von &#8220;$vmdataentrytags&#8221; sollte jetzt wie folgt aussehen.<\/p>\n<pre>scope=2,tag=dev<br>scope=1,tag=internal<br>scope=3,tag=db<\/pre>\n\n\n\n<p>Da hier noch unser Tag fehlt den wir definiert haben f\u00fcgen wie diesen jetzt noch zu der bestehenden Liste hinzu.<\/p>\n<p><span style=\"color: #008000;\">Wenn Sie einen Tag entfernen wollen muss die n\u00e4chste Zeile auskommentiert werden.<\/span><\/p>\n<div>\n<pre>$vmdataentrytags+=\"scope=$secscope,tag=$SecTag\"<\/pre>\n<\/div>\n\n\n\n<p>Jetzt hat die variable &#8220;$vmdataentrytags&#8221; sowohl die existierenden Tags als auch den neuen Tag.<\/p>\n<pre>scope=2,tag=dev<br>scope=1,tag=internal<br>scope=3,tag=db<br>scope=,tag=quarantine<\/pre>\n\n\n\n<p>Wir lesen nun die Struktur aus um die Tags setzen zu k\u00f6nnen.<\/p>\n<div>\n<pre>$vmdatacontent = $vmdata.Help.updatetags.virtual_machine_tags_update.Create()<\/pre>\n<\/div>\n\n\n\n<p>Jetzt setzen wird die Virtual Machine ID (UUID)<\/p>\n<div>\n<pre>$vmdatacontent.virtual_machine_id = $vmdataid.external_id<\/pre>\n<\/div>\n\n\n\n<p>Die API Structure f\u00fcr VM Tags sieht wie folgt aus:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3983\" src=\"https:\/\/www.vrealize.it\/wp-content\/uploads\/2019\/12\/VMtagsAPI-600x127.png\" alt=\"\" width=\"600\" height=\"127\" srcset=\"https:\/\/vrealize.it\/wp-content\/uploads\/2019\/12\/VMtagsAPI-600x127.png 600w, https:\/\/vrealize.it\/wp-content\/uploads\/2019\/12\/VMtagsAPI-1024x217.png 1024w, https:\/\/vrealize.it\/wp-content\/uploads\/2019\/12\/VMtagsAPI-200x42.png 200w, https:\/\/vrealize.it\/wp-content\/uploads\/2019\/12\/VMtagsAPI-768x163.png 768w, https:\/\/vrealize.it\/wp-content\/uploads\/2019\/12\/VMtagsAPI-660x140.png 660w, https:\/\/vrealize.it\/wp-content\/uploads\/2019\/12\/VMtagsAPI.png 1244w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n<p>Leider sind die Tags nicht in einer Liste sonder einzelne Eintr\u00e4ge und k\u00f6nnen daher nicht als Liste hizugef\u00fcgt werden. Das Problem l\u00f6sen wir mit einer foreach Schleife um die tags zu setzen.<\/p>\n\n\n\n<div>\n<pre>foreach ($item in $vmdataentrytags) {<\/pre>\n<\/div>\n\n\n\n<p>Innerhalb der Schleife splitten wir die Variable &#8220;$vmdataentrytags&#8221; in scope und tag. Der identifier ist &#8220;,&#8221;.<\/p>\n<div>\n<pre>$item = @($item.split(\",\"))<\/pre>\n<\/div>\n\n\n\n<p>&#8230;und nun erstellen wir daraus eine Liste<\/p>\n<div>\n<pre>$vmdatatags1=$item|ConvertFrom-StringData<\/pre>\n<\/div>\n\n\n\n<p>Wir f\u00fcgen jetzt die Tags zu der Variablen &#8220;$vmdatacontent&#8221; und schlie\u00dfen die Schleife.<\/p>\n<div>\n<pre>$vmdatatags = $vmdata.Help.updatetags.virtual_machine_tags_update.tags.Element.Create()<br><br>$vmdatatags.tag=$vmdatatags1.tag<br><br>$vmdatatags.scope=$vmdatatags1.scope<\/pre>\n<div>\n<div>\n<pre>$vmdatacontent.tags.Add($vmdatatags) | Out-Null<br><br>}<\/pre>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<p>Der letzte Schritt f\u00fcgt nun den neuen Tag und die bereits vorhanden Tags der VM zu.<\/p>\n<div>\n<pre>$vmdata.updatetags(\"default\", $vmdatacontent)<\/pre>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>In diesem Blogpost m\u00f6chte ich zeigen wir man Tags in NSX-T zu virtuellen Maschinen hinzuf\u00fcgt oder l\u00f6scht. Sollte die VM noch keinen Tag haben, ist es sehr einfach neue Tags zu dieser Maschine hinzuzuf\u00fcgen. Sobald die VM aber schon Tags besitzt m\u00fcssen diese vorher ausgelesen und wieder neu gesetzt werden, weil die NSX API keinen\u2026 <span class=\"read-more\"><a href=\"https:\/\/vrealize.it\/de\/2020\/01\/08\/erstellen-oder-loeschen-von-tags-in-nsx-t-mit-powercli\/\">Weiterlesen &raquo;<\/a><\/span><\/p>\n","protected":false},"author":25,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"categories":[206,140],"tags":[8,385,405,408,411],"class_list":["post-4012","post","type-post","status-publish","format-standard","hentry","category-it-security","category-nsx","tag-compliance","tag-nsx-t","tag-policy-api","tag-powercli","tag-powershell"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Erstellen oder l\u00f6schen von Tags in NSX-T mit PowerCLI &#187; vrealize.it - TechBlog VMware SDDC<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vrealize.it\/de\/2020\/01\/08\/erstellen-oder-loeschen-von-tags-in-nsx-t-mit-powercli\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Erstellen oder l\u00f6schen von Tags in NSX-T mit PowerCLI &#187; vrealize.it - TechBlog VMware SDDC\" \/>\n<meta property=\"og:description\" content=\"In diesem Blogpost m\u00f6chte ich zeigen wir man Tags in NSX-T zu virtuellen Maschinen hinzuf\u00fcgt oder l\u00f6scht. Sollte die VM noch keinen Tag haben, ist es sehr einfach neue Tags zu dieser Maschine hinzuzuf\u00fcgen. Sobald die VM aber schon Tags besitzt m\u00fcssen diese vorher ausgelesen und wieder neu gesetzt werden, weil die NSX API keinen\u2026 Weiterlesen &raquo;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vrealize.it\/de\/2020\/01\/08\/erstellen-oder-loeschen-von-tags-in-nsx-t-mit-powercli\/\" \/>\n<meta property=\"og:site_name\" content=\"vrealize.it - TechBlog VMware SDDC\" \/>\n<meta property=\"article:published_time\" content=\"2020-01-08T15:17:06+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-03-04T09:32:13+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.vrealize.it\/wp-content\/uploads\/2019\/12\/VMtagsAPI-600x127.png\" \/>\n<meta name=\"author\" content=\"Daniel Stich\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@der_stich\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Daniel Stich\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"6\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/vrealize.it\\\/de\\\/2020\\\/01\\\/08\\\/erstellen-oder-loeschen-von-tags-in-nsx-t-mit-powercli\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vrealize.it\\\/de\\\/2020\\\/01\\\/08\\\/erstellen-oder-loeschen-von-tags-in-nsx-t-mit-powercli\\\/\"},\"author\":{\"name\":\"Daniel Stich\",\"@id\":\"https:\\\/\\\/vrealize.it\\\/de\\\/#\\\/schema\\\/person\\\/186cf4f4ff292d050e7cfe982430906c\"},\"headline\":\"Erstellen oder l\u00f6schen von Tags in NSX-T mit PowerCLI\",\"datePublished\":\"2020-01-08T15:17:06+00:00\",\"dateModified\":\"2020-03-04T09:32:13+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/vrealize.it\\\/de\\\/2020\\\/01\\\/08\\\/erstellen-oder-loeschen-von-tags-in-nsx-t-mit-powercli\\\/\"},\"wordCount\":838,\"commentCount\":1,\"image\":{\"@id\":\"https:\\\/\\\/vrealize.it\\\/de\\\/2020\\\/01\\\/08\\\/erstellen-oder-loeschen-von-tags-in-nsx-t-mit-powercli\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.vrealize.it\\\/wp-content\\\/uploads\\\/2019\\\/12\\\/VMtagsAPI-600x127.png\",\"keywords\":[\"Compliance\",\"NSX-T\",\"policy-api\",\"PowerCLI\",\"PowerShell\"],\"articleSection\":[\"IT-Security\",\"NSX\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/vrealize.it\\\/de\\\/2020\\\/01\\\/08\\\/erstellen-oder-loeschen-von-tags-in-nsx-t-mit-powercli\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vrealize.it\\\/de\\\/2020\\\/01\\\/08\\\/erstellen-oder-loeschen-von-tags-in-nsx-t-mit-powercli\\\/\",\"url\":\"https:\\\/\\\/vrealize.it\\\/de\\\/2020\\\/01\\\/08\\\/erstellen-oder-loeschen-von-tags-in-nsx-t-mit-powercli\\\/\",\"name\":\"Erstellen oder l\u00f6schen von Tags in NSX-T mit PowerCLI &#187; vrealize.it - TechBlog VMware SDDC\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vrealize.it\\\/de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/vrealize.it\\\/de\\\/2020\\\/01\\\/08\\\/erstellen-oder-loeschen-von-tags-in-nsx-t-mit-powercli\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/vrealize.it\\\/de\\\/2020\\\/01\\\/08\\\/erstellen-oder-loeschen-von-tags-in-nsx-t-mit-powercli\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.vrealize.it\\\/wp-content\\\/uploads\\\/2019\\\/12\\\/VMtagsAPI-600x127.png\",\"datePublished\":\"2020-01-08T15:17:06+00:00\",\"dateModified\":\"2020-03-04T09:32:13+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/vrealize.it\\\/de\\\/#\\\/schema\\\/person\\\/186cf4f4ff292d050e7cfe982430906c\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vrealize.it\\\/de\\\/2020\\\/01\\\/08\\\/erstellen-oder-loeschen-von-tags-in-nsx-t-mit-powercli\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vrealize.it\\\/de\\\/2020\\\/01\\\/08\\\/erstellen-oder-loeschen-von-tags-in-nsx-t-mit-powercli\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/vrealize.it\\\/de\\\/2020\\\/01\\\/08\\\/erstellen-oder-loeschen-von-tags-in-nsx-t-mit-powercli\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.vrealize.it\\\/wp-content\\\/uploads\\\/2019\\\/12\\\/VMtagsAPI-600x127.png\",\"contentUrl\":\"https:\\\/\\\/www.vrealize.it\\\/wp-content\\\/uploads\\\/2019\\\/12\\\/VMtagsAPI-600x127.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vrealize.it\\\/de\\\/2020\\\/01\\\/08\\\/erstellen-oder-loeschen-von-tags-in-nsx-t-mit-powercli\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\\\/\\\/vrealize.it\\\/de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Erstellen oder l\u00f6schen von Tags in NSX-T mit PowerCLI\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/vrealize.it\\\/de\\\/#website\",\"url\":\"https:\\\/\\\/vrealize.it\\\/de\\\/\",\"name\":\"vrealize.it - TechBlog VMware SDDC\",\"description\":\"Information zu sicherem Hybrid und Multi-Cloud Computing - dispruptive Technologien im IT- Umfeld\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/vrealize.it\\\/de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/vrealize.it\\\/de\\\/#\\\/schema\\\/person\\\/186cf4f4ff292d050e7cfe982430906c\",\"name\":\"Daniel Stich\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/47d4c836056800c7e4dbe32c68d755441cc88c5c1e499a6ceab2bab7ac21626d?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/47d4c836056800c7e4dbe32c68d755441cc88c5c1e499a6ceab2bab7ac21626d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/47d4c836056800c7e4dbe32c68d755441cc88c5c1e499a6ceab2bab7ac21626d?s=96&d=mm&r=g\",\"caption\":\"Daniel Stich\"},\"description\":\"VMware by Broadcom Solution Engineer VCF NSX | Routing\\\/Switching (since 1997), Virtual Cloud networking, Softzware Defined Datacenter, K8S, PowerCLI\",\"sameAs\":[\"http:\\\/\\\/www.derstich.de\",\"http:\\\/\\\/linkedin.com\\\/in\\\/daniel-stich-922b20152\",\"https:\\\/\\\/x.com\\\/der_stich\"],\"url\":\"https:\\\/\\\/vrealize.it\\\/de\\\/author\\\/dstich\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Erstellen oder l\u00f6schen von Tags in NSX-T mit PowerCLI &#187; vrealize.it - TechBlog VMware SDDC","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/vrealize.it\/de\/2020\/01\/08\/erstellen-oder-loeschen-von-tags-in-nsx-t-mit-powercli\/","og_locale":"de_DE","og_type":"article","og_title":"Erstellen oder l\u00f6schen von Tags in NSX-T mit PowerCLI &#187; vrealize.it - TechBlog VMware SDDC","og_description":"In diesem Blogpost m\u00f6chte ich zeigen wir man Tags in NSX-T zu virtuellen Maschinen hinzuf\u00fcgt oder l\u00f6scht. Sollte die VM noch keinen Tag haben, ist es sehr einfach neue Tags zu dieser Maschine hinzuzuf\u00fcgen. Sobald die VM aber schon Tags besitzt m\u00fcssen diese vorher ausgelesen und wieder neu gesetzt werden, weil die NSX API keinen\u2026 Weiterlesen &raquo;","og_url":"https:\/\/vrealize.it\/de\/2020\/01\/08\/erstellen-oder-loeschen-von-tags-in-nsx-t-mit-powercli\/","og_site_name":"vrealize.it - TechBlog VMware SDDC","article_published_time":"2020-01-08T15:17:06+00:00","article_modified_time":"2020-03-04T09:32:13+00:00","og_image":[{"url":"https:\/\/www.vrealize.it\/wp-content\/uploads\/2019\/12\/VMtagsAPI-600x127.png","type":"","width":"","height":""}],"author":"Daniel Stich","twitter_card":"summary_large_image","twitter_creator":"@der_stich","twitter_misc":{"Verfasst von":"Daniel Stich","Gesch\u00e4tzte Lesezeit":"6\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/vrealize.it\/de\/2020\/01\/08\/erstellen-oder-loeschen-von-tags-in-nsx-t-mit-powercli\/#article","isPartOf":{"@id":"https:\/\/vrealize.it\/de\/2020\/01\/08\/erstellen-oder-loeschen-von-tags-in-nsx-t-mit-powercli\/"},"author":{"name":"Daniel Stich","@id":"https:\/\/vrealize.it\/de\/#\/schema\/person\/186cf4f4ff292d050e7cfe982430906c"},"headline":"Erstellen oder l\u00f6schen von Tags in NSX-T mit PowerCLI","datePublished":"2020-01-08T15:17:06+00:00","dateModified":"2020-03-04T09:32:13+00:00","mainEntityOfPage":{"@id":"https:\/\/vrealize.it\/de\/2020\/01\/08\/erstellen-oder-loeschen-von-tags-in-nsx-t-mit-powercli\/"},"wordCount":838,"commentCount":1,"image":{"@id":"https:\/\/vrealize.it\/de\/2020\/01\/08\/erstellen-oder-loeschen-von-tags-in-nsx-t-mit-powercli\/#primaryimage"},"thumbnailUrl":"https:\/\/www.vrealize.it\/wp-content\/uploads\/2019\/12\/VMtagsAPI-600x127.png","keywords":["Compliance","NSX-T","policy-api","PowerCLI","PowerShell"],"articleSection":["IT-Security","NSX"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/vrealize.it\/de\/2020\/01\/08\/erstellen-oder-loeschen-von-tags-in-nsx-t-mit-powercli\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/vrealize.it\/de\/2020\/01\/08\/erstellen-oder-loeschen-von-tags-in-nsx-t-mit-powercli\/","url":"https:\/\/vrealize.it\/de\/2020\/01\/08\/erstellen-oder-loeschen-von-tags-in-nsx-t-mit-powercli\/","name":"Erstellen oder l\u00f6schen von Tags in NSX-T mit PowerCLI &#187; vrealize.it - TechBlog VMware SDDC","isPartOf":{"@id":"https:\/\/vrealize.it\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vrealize.it\/de\/2020\/01\/08\/erstellen-oder-loeschen-von-tags-in-nsx-t-mit-powercli\/#primaryimage"},"image":{"@id":"https:\/\/vrealize.it\/de\/2020\/01\/08\/erstellen-oder-loeschen-von-tags-in-nsx-t-mit-powercli\/#primaryimage"},"thumbnailUrl":"https:\/\/www.vrealize.it\/wp-content\/uploads\/2019\/12\/VMtagsAPI-600x127.png","datePublished":"2020-01-08T15:17:06+00:00","dateModified":"2020-03-04T09:32:13+00:00","author":{"@id":"https:\/\/vrealize.it\/de\/#\/schema\/person\/186cf4f4ff292d050e7cfe982430906c"},"breadcrumb":{"@id":"https:\/\/vrealize.it\/de\/2020\/01\/08\/erstellen-oder-loeschen-von-tags-in-nsx-t-mit-powercli\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vrealize.it\/de\/2020\/01\/08\/erstellen-oder-loeschen-von-tags-in-nsx-t-mit-powercli\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/vrealize.it\/de\/2020\/01\/08\/erstellen-oder-loeschen-von-tags-in-nsx-t-mit-powercli\/#primaryimage","url":"https:\/\/www.vrealize.it\/wp-content\/uploads\/2019\/12\/VMtagsAPI-600x127.png","contentUrl":"https:\/\/www.vrealize.it\/wp-content\/uploads\/2019\/12\/VMtagsAPI-600x127.png"},{"@type":"BreadcrumbList","@id":"https:\/\/vrealize.it\/de\/2020\/01\/08\/erstellen-oder-loeschen-von-tags-in-nsx-t-mit-powercli\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/vrealize.it\/de\/"},{"@type":"ListItem","position":2,"name":"Erstellen oder l\u00f6schen von Tags in NSX-T mit PowerCLI"}]},{"@type":"WebSite","@id":"https:\/\/vrealize.it\/de\/#website","url":"https:\/\/vrealize.it\/de\/","name":"vrealize.it - TechBlog VMware SDDC","description":"Information zu sicherem Hybrid und Multi-Cloud Computing - dispruptive Technologien im IT- Umfeld","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vrealize.it\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Person","@id":"https:\/\/vrealize.it\/de\/#\/schema\/person\/186cf4f4ff292d050e7cfe982430906c","name":"Daniel Stich","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/47d4c836056800c7e4dbe32c68d755441cc88c5c1e499a6ceab2bab7ac21626d?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/47d4c836056800c7e4dbe32c68d755441cc88c5c1e499a6ceab2bab7ac21626d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/47d4c836056800c7e4dbe32c68d755441cc88c5c1e499a6ceab2bab7ac21626d?s=96&d=mm&r=g","caption":"Daniel Stich"},"description":"VMware by Broadcom Solution Engineer VCF NSX | Routing\/Switching (since 1997), Virtual Cloud networking, Softzware Defined Datacenter, K8S, PowerCLI","sameAs":["http:\/\/www.derstich.de","http:\/\/linkedin.com\/in\/daniel-stich-922b20152","https:\/\/x.com\/der_stich"],"url":"https:\/\/vrealize.it\/de\/author\/dstich\/"}]}},"_links":{"self":[{"href":"https:\/\/vrealize.it\/de\/wp-json\/wp\/v2\/posts\/4012","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vrealize.it\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vrealize.it\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vrealize.it\/de\/wp-json\/wp\/v2\/users\/25"}],"replies":[{"embeddable":true,"href":"https:\/\/vrealize.it\/de\/wp-json\/wp\/v2\/comments?post=4012"}],"version-history":[{"count":8,"href":"https:\/\/vrealize.it\/de\/wp-json\/wp\/v2\/posts\/4012\/revisions"}],"predecessor-version":[{"id":4406,"href":"https:\/\/vrealize.it\/de\/wp-json\/wp\/v2\/posts\/4012\/revisions\/4406"}],"wp:attachment":[{"href":"https:\/\/vrealize.it\/de\/wp-json\/wp\/v2\/media?parent=4012"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vrealize.it\/de\/wp-json\/wp\/v2\/categories?post=4012"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vrealize.it\/de\/wp-json\/wp\/v2\/tags?post=4012"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}