{"id":797,"date":"2016-10-06T14:23:06","date_gmt":"2016-10-06T12:23:06","guid":{"rendered":"http:\/\/blog.sachathomet.ch\/?p=797"},"modified":"2017-04-14T23:10:50","modified_gmt":"2017-04-14T21:10:50","slug":"powermanagement-by-tags","status":"publish","type":"post","link":"https:\/\/blog.sachathomet.ch\/de\/2016\/10\/06\/powermanagement-by-tags\/","title":{"rendered":"PowerManagement f\u00fcr dedizierte Citrix desktops? Klar mit Tags!"},"content":{"rendered":"<p>Habt ihr Tags bereits f\u00fcr XenApp &amp; XenDesktop im Einsatz? Vielleicht g\u00e4be es den einen oder anderen guten Anwendungsfall. Tags zu Resourcen,\u00a0in meinem Fall virtuellen Desktops, k\u00f6nnen sehr m\u00e4chtig sein speziell in Kombination mit Power Shell scripts. Es ist m\u00f6glich Aktionen abh\u00e4ngig der Tags zu machen. Nat\u00fcrlich k\u00f6nnen Tags auch verwendet werden als Filter f\u00fcr Citrix Richtlinien (Policies) was ich auch als sehr hilfreich erachte.<\/p>\n<p><strong>Ich hatte das Problem <\/strong>das ich eine Bereitstellungsgruppe hatte mit dedizierten Windows 10 desktops und f\u00fcr dedizierte Desktops gibt es bekannter weise kein Power Management. Eigentlich ist ein Power Management dazu auch obsolet da herunter gefahrene Maschine beim anklicken im StoreFront wieder gestartet werden. Das Problem in unserer Umgebung ist jedoch das gewisse Desktops auch anders als \u00fcber StoreFront angegangen werden und somit ausgeschaltete Maschinen ein Problem sind.<br \/>\nWird eine Maschine somit herunter gefahren endet das in einem Incident Ticket.<\/p>\n<p><strong>Meine L\u00f6sung zu diesem Problem<\/strong>\u00a0ist es, das ich diese speziellem Maschine mit einem tag &#8222;AlwaysOnline&#8220; im Studio versehe. Weiter habe ich dann das nachfolgende kleine Script geschrieben welches\u00a0auf dem Delivery Controller alle 15 Minuten per Scheduled Task gestartet wird:<\/p>\n<pre class=\"brush: powershell; title: ; notranslate\" title=\"\">\r\nparam(&#x5B;string]$tags=$(throw \"Tag parameter is required\"), &#x5B;string]$poweroperation=$(throw \"Power operaton parameter is required\"))\r\n#==============================================================================================\r\n# Created on: 09.2016 Version: 0.2\r\n# Created by: Sacha Thomet\r\n# File name: PowerOperation-DependingMachineTags.ps1\r\n#\r\n# Description:  This is a Powershell to change the PowerState of VDI's or XenApp Servers in\r\n#               a PowerManaged XenDesktop 7.x environment accodring to Tags.\r\n#\r\n# Prerequisite: None, a XenDesktop Controller with according privileges necessary\r\n#\r\n# Call by : Manual  or Scheduled Task\r\n#==============================================================================================\r\n# Load only the snap-ins, which are used\r\nif ((Get-PSSnapin \"Citrix.Broker.Admin.*\" -EA silentlycontinue) -eq $null) {\r\ntry { Add-PSSnapin Citrix.Broker.Admin.* -ErrorAction Stop }\r\ncatch { write-error \"Error Get-PSSnapin Citrix.Broker.Admin.* Powershell snapin\"; Return }\r\n}\r\n# Change the below variables to suit your environment\r\n#==============================================================================================\r\n\r\n$maxmachines = \"1000\" # as default only 250 records, this increase it to 1000\r\n#$tags = \"AlwaysOnline\" # if you comment out the param line you can have the tag here\r\n#$poweroperation = \"TurnOn\"  # if you comment out the param line you can have the poweroperation here\r\n\r\n\r\n$machines = Get-BrokerMachine -MaxRecordCount $maxmachines | Where-Object {$_.tags -eq $tags }\r\n\r\n\r\nforeach($machine in $machines)\r\n{\r\n$machinename = $machine | %{ $_.MachineName }\r\nWrite-Host \"Action $poweroperation will be performed for $machinename  \"\r\nNew-BrokerHostingPowerAction  -Action $poweroperation -MachineName $machinename\r\n}\r\n<\/pre>\n<p>Ich weiss ich weiss &#8230; dies ist ein sehr ungew\u00f6hnlicher Anwendungsfall, aber das Script Konstrukt soll in erster Linie aufzeigen was mit Tags m\u00f6glich ist, die M\u00f6glichkeiten sind fast unbegrenzt!<\/p>\n<p>Mein Beispielscript\u00a0auf\u00a0GitHub:\u00a0<a href=\"https:\/\/github.com\/sacha81\/PoSh-code-samples-for-Citrix\/blob\/master\/PowerOperation-DependingMachineTags.ps1\" target=\"_blank\">PowerOperation-DependingMachineTags.ps1<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Habt ihr Tags bereits f\u00fcr XenApp &amp; XenDesktop im Einsatz? Vielleicht g\u00e4be es den einen oder anderen guten Anwendungsfall. Tags zu Resourcen,\u00a0in meinem Fall virtuellen Desktops, k\u00f6nnen sehr m\u00e4chtig sein speziell in Kombination mit Power Shell scripts. Es ist m\u00f6glich Aktionen abh\u00e4ngig der Tags zu machen. Nat\u00fcrlich k\u00f6nnen Tags auch verwendet werden als Filter f\u00fcr [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8,1],"tags":[32,44,46],"class_list":["post-797","post","type-post","status-publish","format-standard","hentry","category-scripts","category-uncategorized","tag-powershell","tag-xenapp","tag-xendesktop"],"translation":{"provider":"WPGlobus","version":"3.0.2","language":"de","enabled_languages":["en","de"],"languages":{"en":{"title":true,"content":true,"excerpt":false},"de":{"title":true,"content":true,"excerpt":false}}},"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/blog.sachathomet.ch\/de\/wp-json\/wp\/v2\/posts\/797","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.sachathomet.ch\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.sachathomet.ch\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.sachathomet.ch\/de\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.sachathomet.ch\/de\/wp-json\/wp\/v2\/comments?post=797"}],"version-history":[{"count":4,"href":"https:\/\/blog.sachathomet.ch\/de\/wp-json\/wp\/v2\/posts\/797\/revisions"}],"predecessor-version":[{"id":1025,"href":"https:\/\/blog.sachathomet.ch\/de\/wp-json\/wp\/v2\/posts\/797\/revisions\/1025"}],"wp:attachment":[{"href":"https:\/\/blog.sachathomet.ch\/de\/wp-json\/wp\/v2\/media?parent=797"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.sachathomet.ch\/de\/wp-json\/wp\/v2\/categories?post=797"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.sachathomet.ch\/de\/wp-json\/wp\/v2\/tags?post=797"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}