sachathomet.ch

Anwendungsvirtualisierung, Internet der Dinge und Cloud Computing, Blog von Sacha Thomet

StoreFront – Erneut einloggen ohne schliessen des Browsers

Mit Citrix StoreFront ist es möglich sich per Smart Card an dem Web Receiver anzumelden, jedoch ist es ein Sicherheitsfeature dass man nach dem Abmelden von der StoreFront Webseite der Browser geschlossen werden muss.
Ärgerlich für Leute, zum Beispiel Admins, die sich mit verschiedenen Konten an und abmelden wollen. Noch mehr ärgerlich wenn man viele Tab’s im Browser offen hat die man nicht schliessen möchte.

Nach der Abmeldung vom StoreFront sieht man diese Meldung:

You have logged off successfully. Please close your browser to protect your account. Sie haben sich erfolgreich abgemeldet. Schliessen Sie den Browser, um Ihr Konto zu schützen.

Sie haben sich erfolgreich abgemeldet. Schliessen Sie den Browser, um Ihr Konto zu schützen.

Wie die Meldung sagt handelt es sich um eine Sicherheitsfunktion und nicht um eine Fehler… Aber nicht in jedem Fall ist ein wieder anmelden ein Sicherheitsproblem. Beispielsweise wenn Smart Cards zwingend auch zum anmelden an der VDI nötig sind, ist ein wieder anmelden an der Webseite durchaus unproblematisch.

Im Rahmen des CTP Programms habe ich angefragt diese Funktion zu verbessern und dem StoreFront Administrator die Möglichkeit zu geben diese Funktion zu deaktivieren. Mein Wunsch wurde erhört und mit StoreFront 3.8 wurde das das Feature implementiert, jedoch vorerst nur “unter der Haube” und ohne ein Punkt im GUI.

Feng Huang, Principal Software Architect bei Citrix und Verantwortlich für StoreFront hat mir nun die Information gegeben wie es konfiguriert wird. Diese Info darf ich nun auch hier publizieren:

Alles was gemacht werden muss, ist die Zeile  CTXS.allowReloginWithoutBrowserClose = true in die Datei  C:\inetpub\wwwroot\Citrix\YOURSTORE\custom\script.js einzufügen.

DANKE Citrix das ihr auf uns hört und spezielle Wünsche umsetzt.

PowerManagement für dedizierte Citrix desktops? Klar mit Tags!

Habt ihr Tags bereits für XenApp & XenDesktop im Einsatz? Vielleicht gäbe es den einen oder anderen guten Anwendungsfall. Tags zu Resourcen, in meinem Fall virtuellen Desktops, können sehr mächtig sein speziell in Kombination mit Power Shell scripts. Es ist möglich Aktionen abhängig der Tags zu machen. Natürlich können Tags auch verwendet werden als Filter für Citrix Richtlinien (Policies) was ich auch als sehr hilfreich erachte.

Ich hatte das Problem das ich eine Bereitstellungsgruppe hatte mit dedizierten Windows 10 desktops und für 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 über StoreFront angegangen werden und somit ausgeschaltete Maschinen ein Problem sind.
Wird eine Maschine somit herunter gefahren endet das in einem Incident Ticket.

Meine Lösung zu diesem Problem ist es, das ich diese speziellem Maschine mit einem tag “AlwaysOnline” im Studio versehe. Weiter habe ich dann das nachfolgende kleine Script geschrieben welches auf dem Delivery Controller alle 15 Minuten per Scheduled Task gestartet wird:

param([string]$tags=$(throw "Tag parameter is required"), [string]$poweroperation=$(throw "Power operaton parameter is required"))
#==============================================================================================
# Created on: 09.2016 Version: 0.2
# Created by: Sacha Thomet
# File name: PowerOperation-DependingMachineTags.ps1
#
# Description:  This is a Powershell to change the PowerState of VDI's or XenApp Servers in
#               a PowerManaged XenDesktop 7.x environment accodring to Tags.
#
# Prerequisite: None, a XenDesktop Controller with according privileges necessary
#
# Call by : Manual  or Scheduled Task
#==============================================================================================
# Load only the snap-ins, which are used
if ((Get-PSSnapin "Citrix.Broker.Admin.*" -EA silentlycontinue) -eq $null) {
try { Add-PSSnapin Citrix.Broker.Admin.* -ErrorAction Stop }
catch { write-error "Error Get-PSSnapin Citrix.Broker.Admin.* Powershell snapin"; Return }
}
# Change the below variables to suit your environment
#==============================================================================================

$maxmachines = "1000" # as default only 250 records, this increase it to 1000
#$tags = "AlwaysOnline" # if you comment out the param line you can have the tag here
#$poweroperation = "TurnOn"  # if you comment out the param line you can have the poweroperation here


$machines = Get-BrokerMachine -MaxRecordCount $maxmachines | Where-Object {$_.tags -eq $tags }


foreach($machine in $machines)
{
$machinename = $machine | %{ $_.MachineName }
Write-Host "Action $poweroperation will be performed for $machinename  "
New-BrokerHostingPowerAction  -Action $poweroperation -MachineName $machinename
}

Ich weiss ich weiss … dies ist ein sehr ungewöhnlicher Anwendungsfall, aber das Script Konstrukt soll in erster Linie aufzeigen was mit Tags möglich ist, die Möglichkeiten sind fast unbegrenzt!

Mein Beispielscript auf GitHub: PowerOperation-DependingMachineTags.ps1

Endlich 1.0 – aber noch lange nicht fertig!

Im November 2014 habe ich ein Artikel geschrieben über die Übernahme des HealthCheckScripts für XenApp & XenDesktop 7.x:
XenDesktop & XenApp FMA (7.x) HealthCheck – Oops!… I Did It Again

sheepsJetzt nach fast 2 Jahren fortlaufender Entwicklung dieses Scripts präsentiere ich die Version 1.0 des XenApp & XenDesktop HeathChecks.

Gestartet bin ich mit einer ziemlich rudimentären Version des Scripts und mittlerweile habe ich einige Tester und Mitwirkende bei diesem Script. Zwischenzeitlich ist das Script auch auf GitHub zu finden und es ist positiv überraschend wie viele Leute aus der Community bereits mit helfen das Script zu erweitern und verbessern.

Nachdem viele 0.xVersionen released wurden, ist jetzt neu auch die XML Konfigurationsdatei mit dabei. Diese Änderung, welche wir vor allem Stefan Beckmann zu verdanken haben, ist es Wert die Version nun 1.0 zu nennen.

xaxd-xml

Der grosse Vorteil der XML-Datei ist es, dass das Script und die Konfiguration von einander getrennt sind. Somit ist sowohl der Austausch des Scripts wie auch die Pflege von vielen verschiedenen Umgebungen kein Problem. Vorher musste nach dem Austausch des Scripts immer noch der Header angepasst werden.  Jetzt wird einfach nur das Script aktualisiert, sofern nichts im XML geändert hat bleibt dieses genau so bestehen.

 

Die XML Datei muss sich im gleichen Verzeichnis befinden wie das Script und der gleiche Namen haben, wie hier dieses Beispiel:

XA-and-XD-HealthCheck.ps1
XA-and-XD-HealthCheck_Parameters.xml

Wie bereits erwähnt wurde die XML Datei von Stefan Beckmann (Twitter: @alphasteff) integriert.

github

Die neuste Version des Scripts kann jeweils auf GitHub gefunden werden:
https://github.com/sacha81/XA-and-XD-HealthCheck 

html script output

Die HTML Ausgabe gewinnt von Version zu Version mehr Inhalt, schwierig ist es natürlich zu entscheiden welche Funktionserweiterungsanfragen berücksichtig werden und welche nicht. Jede weitere Funktion kann das Script unübersichtlicher machen und erhöht die Laufzeit des Scripts. Einige Funktionen können deshalb im XML ein und ausgeschaltet werden.

Aktuell wird von den Delivery Controller und den Worker Maschinen (XenApp Server und virtuelle Desktops) der Prozessor, der Festplattenplatz und der Ram Speicher gecheckt. Da in einer Umgebung mit der FMA Architektur problemlos unterschiedliche Versionen von VDAs im Einsatz stehen können, wird nun auch dies geprüft und ausgegeben. Weiter sind für die Störungssuche auch Informationen zu den Hypervisor Hosts in den Worker-Tabellen enthalten.

Dieser Code ist auf GitHub:

https://github.com/sacha81/XA-and-XD-HealthCheck/

Für Fehlermeldungen oder Funktionserweiterungsanfragen benutzt bitte direkt GitHub, natürlich freue mich auch über die Mitarbeit an den Scripts in GitHub!

Welcome to the Jungle … of the Citrix Display Modes

When I started to work with Remote Desktop stuff back in 2001 there was one thing definitely not possible, watch a video over a remote connection – not even with Citrix … in the last years a lot of things changed and Citrix improved their protocols and Video codecs from version to version. Today you can do awesome things over a remote connection with Citrix. There are many blogs and articles which shows what’s possible, also for GPU mapping 3D stuff and so on … this blog doesn’t describe how you can get the awesome 3D things out from your VDI. It’s more what if you don’t have special requirements for 3D, you don’t have time to test all possibilities, no time to tune, but you want have the best result according to the Pareto principle.

What do you configure? Nothing? Just default, because default is the setting which will fit for most Users?

 

Are you aware that default setting on XenApp/XenDesktop until VDA  7.9 was Thinwire with H.264 and since VDA 7.9 it’s Thinwire Plus (Compatibility Encoder)?
You need to consider this fact before you upgrade from 7.x to 7.9! Why they changed that? Is Thinwire Plus better? No! Is Thinwire H.264 better? No!
It’s just different! What are the differences? What I need to choose? It depends! But on what?

This blog post is mainly a comparison between Thinwire Plus and Thinwire H264 !

I’ve done a survey what is preferred for the codec on twitter, funny result 50% vs 50%:

Twitter-h264thinwire

I’ve started some tests, also with the Pareto principle, so no deep scientific background! I tested an internal video in our Intranet of 53 seconds and 1 minute of a YouTube video, Big Buck Bunny, with 25 fps,  set to 720p in YouTube. I had an eye on the user experience, means fragments, fluent movie, lip-sync and on the other side on the resource consumption like CPU and bandwidth.

(Advice if you like to do your own tests, Big Buck Bunny is nice to impress people but if you want test for lip-sync take an other movie … the Bunny doesn’t talk much …. )

 

RDAnalyzer14

For this tests I used the best, or the only one tool on the market to analyze remote display stuff, the Remote Desktop Analyzer from
Bram Wolfs and Barry Schiffer. In version 1.4 you can do some very helpful statistic reports:

 

I have tested with:

Virtual Desktop:

  • Windows 10, VDA 7.9, 2 vCPU, 4 GB Memory, virtualized on VMWare ESX.

Video Codecs:

  • Thinwire +
  • Thinwire with H264

Client:

  • Mac OSX
  • Windows 10
  • HDX Raspberry Pi

and thank you to René Bigler (Twitter @dready73 ) to test with those clients:

  • ChromeBook
  • Linux ThinClient (IGEL)

 

And this are our Results:

h264-twplus-Win10-corrected2

h264-twplus-OSX

h264-twplus-RaspberryPi

h264-twplus-iOS

h264-twplus-IGEL_IE h264-twplus-IE-ChromeOS

 

My personal conclusion:

If you have clients like ChromeBook or Windows who can manage H.264 this is your way to go. With limited H264 on the end device you run better with Tw+.

I work in a company which has internal only Windows 10 client devices but from external we have users with BYOD, and MacBooks are not a minority. For this reason I set a Citrix Policy which set all connection not coming over  Netscaler to Tw with H.264. So we have internal the best result and external still a good result over the average. What would be the best, is when it’s possible to set a Citrix Policy according to the Client OS which connects.

 

Recommended Links:

HDX Graphics Modes – Which Policies Apply to DCR/Thinwire/H.264 – An Overview for XenDesktop/XenApp 7.6 FP3: http://support.citrix.com/article/CTX202687

Citrix Display modes: How to configure, what to configure, when to configure: https://bramwolfs.com/2016/02/24/citrix-display-modes-how-to-configure-what-to-configure-when-to-configure

H.264 compression JUL 19 2013 A graphical deep dive into XenDesktop 7 https://bramwolfs.com/tag/h-264-compression

Update 23.9.2016:

An excelent blog post here: Citrix HDX Just Got Smarter…Again https://www.mycugc.org/blog/citrix-hdx-just-got-smarter…again?source=6 a post about selective H264 with XenApp / XenDesktop 7.11

Mit Octoblu und Amazon Echo die Klimaanlage des Tesla Model S starten

Ja es braucht etwas Mut ohne Englisch als Muttersprache ein Video Webcast zu erstellen. Vielleicht ist es auch ein bisschen peinlich, aber trotzdem habe ich es gewagt, mein erster Video Webcast … wer nichts wagt kann nichts gewinnen 🙂 Sorry für den Schweizerdeutschen Akzent …

Ziel: Amazon echo dazu bringen die Klima/Heizung des Tesla Model S zu starten.

21.6.2016, Aktualisierung dieses Posts:

Auch ohne IFTTT ist es möglich mit Alexa das IoT Framework Octoblu anzusprechen. Eben habe ich einen flow kreiert welcher den Ladestand des Elektroautos abfragt:

Weitere Infos wie Alexa mit Octoblu integriert wird sind hier zu finden:  Use Alexa to kick off automations with Octoblu

Übrigens, wenn du noch kein Tesla hast und einen kaufen willst nutze mein Empfehlungslink und spare damit 1000.- : http://ts.la/sacha3162

sachathomet auf GitHub

Ich war die letzten 11 Tage in Las Vegas, an den CTP Meetings, an der Citrix Synergy und an der E2EVC. Ich lernte eine Menge neuer Leute kennen und nun schwirren mir viele neue Ideen im Kopf rum. Es ist wahnsinnig wie an solchen Konferenzen sich die Ideen der verschiedenen Leute weiter entwickeln und wachsen.

Es ist für mich nicht einfach alle meine Scripts, Versionen, Fehler und Anfragen für neue Funktionen zu managen. Nun folge ich dem Tipp einiger Leuten die ich getroffen habe und bringe meine grösseren Scripts auf GitHub, so kann ich das ganze besser managen und Ideen von anderen Leuten können direkt integriert werden.

Alle meine Scripts sind nun auf GitHub zu finden unter https://github.com/sacha81 – Mitarbeit willkommen!

Momentan bin ich mit meinen zwei populärsten Scripts gestartet:

Bitte habt Nachsicht mit mir … ich bin noch sehr unerfahren mit GitHub, ich bin halt kein Programmierer, somit bin ich natürlich um Tipps und Tricks dankbar.

 

Bitte verwendet ab sofort für Fehlermeldungen oder Anfragen zu neuen Funktionen GitHub und nicht mehr die Kommentarfunktion. 

https://github.com/sacha81

Opfer des guten Rufes – zu wenig freie pooled Desktops frühzeitig erkennen

Der Citrix Director ist wirklich kein schlechtes Werkzeug und mit der Version 7.7 wurde es sogar noch um einiges besser da nun auch Emails versendet werden können. Aber ein Problem haben wir zurzeit in der Firma trotzdem, die unpersönlichen virtuellen Desktops welche für den Fernzugang genutzt werden, sind auf Grund guter Mund-zu-Mund Propaganda immer populärer. Und nun möchten wir gerne wissen wann es knapp wird bevor keine Desktops mehr zur Verfügung stehen. Natürlich kann ich mir täglich die Zahlen im Director anschauen, aber ich würde eigentlich gerne vom System informiert wenns eng wird.

Dazu habe ich nun ein ganz kurzes Script gemacht, welches sobald die Anzahl freier Desktops einen definierten Schwellwert unterschreitet eine Email auslöst:

low-free-desktop

Das Script ist auf GitHub:

https://github.com/sacha81/Citrix-XD-Alert-low-free-desktops

Leerzeichen und Punkte in StoreFront 3.5 Farmnamen vermeiden!

In den vergangenen Tagen habe ich meine bestehende StoreFront 3.01 nach StoreFront 3.5 aktualisiert, in einigen Umgebungen hatte ich dann eine böse Überraschung. Es sah eigentlich so aus als wäre alles gut und würde alles laufen, aber dann bekam ich die Meldung dass die Benutzer keine Anwendungen oder Desktops mehr starten könnten.

Auf dem StoreFront Server sah ich einen Warning Event von Citrix Store Service “ Failed to launch the resource “Farm Name.ApplicationName” as it was not found.

SF35_blanks_error-event28

Die Ursache für den Fehler war ein Leerzeichen und ein Punkt in meinem Farmnamen, sieht aus als wäre das ein Bug in StoreFront 3.5, man kann etwas konfigurieren dass dann nicht funktioniert!

SF35_blanks_error-config

Nachdem ich den Namen auf xa65farm geändert hatte, lief alles wieder glatt.

Etwas grossartiges ist passiert – Ich bin CTP !

Vor 2 Tagen habe ich dieses sehr erfreuliche email erhalten:

“Hello Sacha,
Congratulations! You have been selected to receive the Citrix Technology Professional (CTP) award! We’re thrilled to welcome you to this elite family group of technology experts!”

In den vergangenen Monaten und Jahre habe ich einige für die Citrix Gemeinde getan, einerseits mit dem teilen meines Wissens auf meinem Blog, aber ich war auch aktiv auf Twitter, im Citrix Forum und weiteren sozialen Medien.An der Citrix Synergy 2015 konnte ich bei der GeekOvation auftreten und habe dort auch den ersten Preis gewonnen. Weiter leite ich zusammen mit Stefan Beckmann ehrenamtlich die Schweizer Citrix User Group. Auch habe ich mich zur Verfügung gestellt, bei der Entwicklung des Citrix Expert Examen  1Y1-401 mitzuhelfen.

Ich liebe es etwas in der Community zu bewegen und mein Wissen zu teilen und zu erweitern. Vieles davon kostet mich natürlich Zeit und ich verdiene dabei nichts, für mich stimmt das aber so, es ist meine Passion. Nun habe ich doch eine grosse Belohnung erhalten, dieser Award ist für mich eine sehr grosse Ehre und Anerkennung.

Was ist denn dieser CTP Award?

Dieses Program ist die höchste This program is the highest Anerkennung welche ein Citrix Experte erhalten kann und definitiv einen Meilenstein in meiner beruflichen Karriere.

ctpMehr Informationen zum CTP Program sind hier zu finden: https://www.citrix.com/community/ctp.html

Mehr über die CTP 2016 class hier:
https://www.citrix.com/blogs/2016/02/04/welcome-ctp-class-of-2016 

Ich bin äussert dankbar das ich als CTP gewählt wurde und ich bin sicher das die Leute die mich umgeben eine Mitverantwortung tragen für meinen Erfolg.

Ich möchte somit hier DANKE sagen!

  • An meine Famile, welche mich in meinen Vorhaben immer unterstützt, auch wenn nicht jeder weiss was ich da genau tue 🙂
  • An meine Arbeitskollegen und meinem Arbeitgeber Die Mobiliar
  • An Citrix, im speziellen Perrine Crampton – Sie hat mir das erfreuliche Email gesendet
  • An die CTPs welche ich das letzte Jahr an der Citrix Synergy beim GeekSpeak-Tonight mit der GeekOvation kennenlernen durfte,
    dabei speziell bei Aaron Parker welcher mein GeekOvation Mentor war und mich für die Präsentation unterstützt hat.
    Aber auch an Carl Webster welcher mich später mit PoSh Zeugs geholfen hat. Natürlich aber auch bei Jo Harder, GeekOvation MC (Mistress of Ceremonies), welche mich gekrönt hat:-)
  • An meine derzeitigen und aber auch früheren Arbeitskollegen welche mich jeweils unterstützt haben.
  • An alle anderen die mich Unterstützt haben und ich hier vergessen habe. (Sorry!)

Und natürlich möchte ich nicht vergessen hier auch den anderen neuen CTPs zu gratulieren:

CTP2016

Und nun? 

Tja, nun wird der druck was an die Community abzuliefern noch grösser, schliesslich muss ich nun was zurück geben. Ich werde mich natürlich weiterhin in den Forum beteiligen und auch hier mein wissen in Blog Artikeln teilen. Ich fühle mich auch verpflichtet technische Präsentationen zu halten, eine gute Gelegenheit meine Englischkenntnisse etwas auf die Prüfung zu stellen.

Happy New Script – PVS 7.7 HealthCheck

Bald ist Neujahr und ich möchte euch fürs 2016 nur das Beste wünschen! Etwas ganz gutes habe ich euch schon vor dem neuen Jahr, nur einige Stunden nach dem Release vom Citrix Provisioning Server 7.7 kann ich euch auch das neue Health Check Script dazu übergeben. 

Heute hat Citrix die Produkte XenApp/XenDesktop 7.7 und Citrix Provisioning Services 7.7 herausgegeben, mit dabei sind eine Menge von neuen Features aber das wichtigste dabei neben dem Support für Windows 10 ist … Trommelwirbel …. die neue Power Shell APO für Citrix Provisioning Services. PVS mit PoSh bei 7.6 und früher war ein Sch….
Was sonst noch neu ist im PVS 7.7 hier: PVS 7.7 New in this release

Jetzt kommt PVS endlich mit einer echte PoSh API welche mehr zurück gibt als nur einen Haufen Strings. Ich konnte mit dem PVS 7.7 Tech Preview rumspielen und bin desshalb auch bereits ready mit dem komplett neuen Script. Achtung, für Versionen 7.6 und tiefer muss immer noch das alter Script verwendet werden. Diese Neue Version ist gültig ab 7.7 und wir dann für die Nachfolgenden Versionen gepflegt.

pvs77

Wenn ihr neue Funktionen möchtet oder einen Fehler melden wollt, so tut dies bitte direkt auf GitHub.

Wie bereits geschrieben, diese Version geht nicht mit 7.6 und früheren Versionen, wenn ihr dazu ein HealthCheck braucht, gibt es hier das alte Script:  Citrix PVS HealthCheck 

Das Script findet ihr hier auf GitHub:

https://github.com/sacha81/citrix-pvs-healthcheck

Follow me on Twitter