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

Guide

Windows App auf dem iPhone mit Maus-Support und das Problem mit dem Auto-Lock

Stell dir vor: das Zimmer, das du normalerweise als Homeoffice nutzt, dient gleichzeitig als Gästezimmer, und dein Gast schläft dort um 7 Uhr morgens noch tief und fest. Du musst aber trotzdem arbeiten. Also greifst du zum iPhone, zur Surface Arc Mouse, zum Logitech K830 Keyboard, startest die Windows App, spiegelst alles per AirPlay auf den Wohnzimmer-TV und hast plötzlich einen vollwertigen Windows-Desktop auf dem Sofa. Ganz ohne Laptop.

Das war mein Setup heute Morgen. Die Surface Arc Mouse habe ich gestern erhalten, gleich mit dem Setup gespielt und dabei auch direkt den Firmware-Update-Prozess durchlaufen. Es funktioniert überraschend gut, sobald man das Sleep-Problem gelöst hat.

Was dieser Beitrag zeigt: Das Einrichten der Surface Arc Mouse mit der Windows App auf iOS (aktuell im Preview!), das nervige Einschlafen des Bildschirms sobald man Maus und Keyboard statt dem Touchscreen benutzt, und ein paar Workarounds dazu.

Teil 1: Surface Mouse auf iOS. Preview, aber es funktioniert.

Microsoft hat die Surface Mouse-Unterstützung still und leise in die Windows App auf iOS eingebaut. Das Feature befindet sich aktuell im Preview und wird nur für bestimmte Geräte und Firmware-Versionen unterstützt. Hier ist die Schritt-für-Schritt-Einrichtung.

Unterstützte Geräte

  • Surface Mouse
  • Surface Arc Mouse

Voraussetzungen

  • iPhone 15 oder neuer mit aktiviertem Bluetooth
  • Ein Windows-PC mit den neuesten Windows-Updates
  • Eine unterstützte Surface Mouse

Schritt 1: Firmware-Update (nicht vergessen)

Bevor überhaupt etwas funktioniert, braucht die Maus ein Firmware-Update. Und hier eine freundliche Erinnerung an alle Apple-Fans: Das Update lässt sich ausschliesslich über einen Windows-PC durchführen. Nicht iPhone. Nicht iPad. Windows. Ihr wurdet gewarnt.

Die benötigten Firmware-Versionen und Download-Links für Surface Mouse und Surface Arc Mouse sind in der Microsoft-Dokumentation aufgeführt. Das MSI-Paket im Administrator-Modus auf einem Windows-PC ausführen, die Maus per Bluetooth verbinden und dann 10 Minuten lang gar nichts tun. (Ja, wirklich. Zehn Minuten. Firmware hat es nicht eilig.)

Schritt 2: Mit dem iPhone koppeln

1
Den Bluetooth-Knopf an der Maus drücken, um den Pairing-Modus zu aktivieren.

2
Auf dem iPhone: Einstellungen > Bluetooth und die Maus aus der Liste der verfügbaren Geräte auswählen.

3
Verbindung bestätigen. Das war’s.

Schritt 3: In der Windows App verwenden

Die Windows App öffnen, eine AVD- oder Cloud-PC-Session starten, und die Maus wird automatisch erkannt. Keine weitere Konfiguration notwendig. In der Remote-Session erscheint ein echter Windows-Cursor. Es fühlt sich tatsächlich an wie am Schreibtisch sitzen.

Randnotiz für Android-Nutzer: Auf Android funktioniert das Verbinden einer Bluetooth-Maus mit der Windows App einfach. Kein Firmware-Tanz, kein Preview-Flag, kein Windows-PC als Voraussetzung. Das hat schon seit Jahren funktioniert. Apple, bekannt für sein nahtloses Nutzererlebnis, benötigt ein unterstütztes Gerät, eine spezifische Firmware-Version, einen Windows-PC für das Firmware-Update und ein Feature, das sich noch im Preview befindet. Fortschritt!

Teil 2: Das Problem. Das iPhone schläft ein.

Hier ist der Haken, den niemand erwähnt. Wer Maus und Keyboard für die Remote-Session nutzt, berührt den iPhone-Bildschirm nicht. Und iOS sieht in seiner unendlichen Weisheit keinerlei Bildschirmaktivität und sperrt den Bildschirm nach dem Auto-Lock-Timeout.

Die AVD-Session läuft weiterhin auf dem Server. Aber man schaut auf den Sperrbildschirm. Alle paar Minuten.

Die gute Nachricht: Es gibt mehrere Möglichkeiten, damit umzugehen. SimplyMac bietet eine gute Übersicht aller Optionen: How to Keep an iPhone from Sleeping. Hier sind die praktischsten für unseren AVD-Use-Case:

Option A: Maus bewegen? Geht, aber will ich das wirklich???

Ja das geht, in meinem Fall darf ich einfach die Maus nicht länger als 30 Sekunden in Ruhe lassen, sonst sperrt es… nicht praktikabel

Option B: Auto-Lock auf Maximum verlängern

Standardmässig sperrt iOS den Bildschirm nach 30 Sekunden Inaktivität. Unter Einstellungen > Anzeige & Helligkeit > Automatische Sperre kann man das auf „NIE“ einstellen oder in meinem Fall, da mein Gerät mit MDM Policies konfiguriert ist, auf maximal 5 Minuten verlängern. Das gibt etwas mehr Spielraum, löst das Problem bei längeren Sessions aber nicht vollständig.

Sicherheitshinweis: Je länger der Auto-Lock-Timeout, desto länger bleibt das iPhone entsperrt und zugänglich, wenn man es unbeaufsichtigt lässt. Im Heimumfeld ist das meist kein Problem, aber in öffentlichen oder geteilten Räumen sollte man das im Hinterkopf behalten.

Option C: Geführter Zugriff (Guided Access)

Ein iOS-Bedienungshilfen-Feature, das das iPhone auf eine einzelne App beschränkt und den Bildschirm am Einschlafen hindert. Aktivierung unter Einstellungen > Bedienungshilfen > Geführter Zugriff, dann dreifach auf den Seitenknopf klicken, wenn die Windows App offen ist. Etwas mehr Aufwand beim Einrichten, aber zuverlässig für längere Sessions.

Option D: iOS Shortcuts-Automation (für Fortgeschrittene)

Wer es vollautomatisch möchte: Mit der Kurzbefehle-App lässt sich eine Automation erstellen, die die automatische Sperre auf „Nie“ setzt, wenn die Windows App geöffnet wird, und beim Schliessen wieder auf den normalen Wert zurücksetzt. iOS Kurzbefehle unterstützt App-öffnen- und App-schliessen-Trigger, ein elegantes Zwei-Automationen-Setup für alle, die sich mit der Kurzbefehle-App auskennen.

Meine Empfehlung: Für kurze Sessions ist Option B (auf Maximum verlängern) die schnellste Lösung. Wer etwas Dauerhafteres und Eleganteres möchte, ist mit Option D über Shortcuts-Automationen gut bedient. Etwas Einrichtungsaufwand sollte man aber einplanen.

Hey Microsoft, noch eine Sache

Liebes Windows App-Team, zunächst: tolle Arbeit, dass ihr die Surface Mouse-Unterstützung in die iOS-App gebracht habt, auch wenn es noch ein Preview ist. Das ist wirklich nützlich. Eine kleine Anregung für die finale Version: eine „Stay Awake“-Option direkt in die App integrieren. Ein einfacher Schalter in den Einstellungen, „Bildschirm während der Session wach halten“, würde das Gesamterlebnis abrunden. Mein MS Teams am iPhone schliesst sich ja während einem Call auch nicht, da muss es was geben. Da es sich noch um einen Preview handelt, bin ich zuversichtlich, dass solche Feinheiten vor dem GA-Release kommen. Ich freue mich darauf!

Bis dahin: Auf 5 min stellen und ab und zu den Touchscreen betatschen und das Wohnzimmer-Office-Setup geniessen. Der schlafende Gast ist optional, ist aber ein guter Grund mit diesem Anwendungsfall zu bluffen.

Von der OnPremises VDI zur Cloud VDI, was darf es denn sein? Ein Schnellstart zu den unterschiedlichen VDIs in der Azure Cloud

Aktuell stellt sich für immer mehr Firmen die Frage, ob sie weiterhin traditionell ihre VDI on‑premises zur Verfügung stellen oder ob diese zukünftig aus der Cloud bereitgestellt werden sollten.
Die EUC‑Welt ist im Umbruch, und es gibt heute weit mehr ernstzunehmende Alternativen als nur ein oder zwei grosse, etablierte Hersteller. Oder vielleicht ist das auch meine persönliche Meinung, nachdem ich ein bisschen aus meiner Bubble herausgekommen bin – aber ich denke, es gibt neue Bedürfnisse, und der Markt versucht nun, diese abzudecken.

Ich bin ein jahrelanger „Citrix‑Tech-Evangelist“ und auch heute noch absolut von deren Technologie überzeugt. Für mich steht fest, dass Citrix als Unternehmen die leistungsstärksten Applikations- und Desktopvirtualisierungen entwickelt hat. Dennoch holt die Konkurrenz auf, und es muss nicht für jeden Kunden das Nonplus-ultra sein. Die Firma, bei der ich tätig bin, setzt nach und nach mehr auf Microsoft und verfolgt seit Jahren eine Cloud‑Strategie.
So ist es naheliegend, dass die Option, on‑premises VDIs durch eine Microsoft Azure VDI‑Lösung zu ersetzen, in Betracht gezogen werden muss.

Unter den Leser dieser Seite gibt es eventuell auch welche die bereits mal in den letzten zwei Jahren in den Genuss kamen, den Vortrag von Fabian Tschanz, Stefan Moser und mir an einem der Events (z. B. am Workplace Ninja Summit oder an der E2EVC) zu hören – wissen, dass wir für unsere Entwickler bereits auf „grüner Wiese“ mit Microsoft AVD Single Session als Entwickler‑VDI ein Projekt durchgeführt haben.
Nun ist die Welt einfach, wenn man auf grüner Wiese startet; muss man jedoch Bestehendes ablösen, gestaltet sich das aufgrund der bestehenden und teils ungenannten Requirements als schwierig. Manchmal wird eine Lösung für einen Zweck gebaut und dann für etwas anderes genutzt – etwas, das die Plattformentwickler nicht auf dem Radar hatten – sodass sie bei einer Migration verloren geht. Also muss auch hier noch einmal Requirements Engineering betrieben werden.

Windows 365 Frontline und/oder AVD Multi‑Session. Und was ist Windows 365 Frontline im Shared Mode?

Wir wollen also als Nächstes die Use Cases abdecken:

  • dedizierte VDI für Power User mit speziellen Bedürfnissen (meistens ohne Firmengerät) und
  • die Nutzer der gepoolten VDIs, die die VDI gelegentlich nutzen und eventuell auch ein Firmengerät haben.

Nun bietet Microsoft viele Lösungen, und es kommen immer noch neue Flavors dazu. Was ist denn nun das Richtige?


Windows 365? Microsoft Azure Virtual Desktop? Ach, damit noch nicht genug – es gibt noch Also, ich versuche das mal ein bisschen auseinanderzunehmen. Als ich jemandem On‑Prem, IaaS, PaaS und SaaS erklären musste, half mir jeweils das Pizza‑Modell (siehe Bild rechts), das Albert Barron, Global Principal Architect, Financial Services bei Google, in einem LinkedIn‑Post von 2014 erklärt hat.

Ich möchte nicht behaupten, so clever und gut im Erklären zu sein wie Barron, aber ich versuche, die Microsoft Azure VDIs – also alles, was oben aufgezählt wurde – ein bisschen aufzuteilen. Meiner Meinung nach handelt es sich dabei um verschiedene Mixturen aus PaaS und SaaS.


Windows 365 (Cloud PC)

  • Vollständiger, persistenter Cloud‑PC für jeden Nutzer
  • Feste Zuweisung von Ressourcen (dedizierte VM)
  • Integriert mit Microsoft Endpoint Manager (Intune) für Verwaltung
  • Einfache Einrichtung ohne komplexe Infrastruktur

🍕Im Pizza‑Modell würde ich sagen: Das ist wie auswärts essen in einem Restaurant, das immer Platz für mich hat – am für mich dedizierten Tisch steht mein Name. Ich kann die Pizzen aus der Speisekarte in definierten grossen Grössen wählen. Wenn ich ein Rezept liefere, wird auch diese Pizza für mich nach meinen Wünschen belegt und gebacken.

Windows 365 Frontline (Dedicated)

  • Speziell für Schichtarbeiter oder für geteilte Nutzung konzipiert
  • Jeder Benutzer hat eine dedizierte VM, die nur während der Arbeitszeit genutzt wird
  • Lizenzierung auf Basis gleichzeitiger Nutzung (nicht pro Benutzer)
  • Automatisches Herunterfahren ausserhalb der Schichtzeiten, um Kosten zu sparen

🍕Im Pizza‑Modell würde ich sagen: Das ist wie auswärts essen in einem Restaurant, in dem sich mehrere Parteien abwechselnd einen Tisch teilen – jeden Tag kann der Tisch dreimal verkauft werden. Ich kann die Pizzen aus der Speisekarte in definierten grossen Grössen wählen. Wenn ich ein Rezept liefere, wird auch diese Pizza für mich nach meinen Wünschen belegt und gebacken.

Mehr Infos zu Frontline hier: Mehr Infos zu Frontline dedicated hier: https://learn.microsoft.com/en-us/windows-365/enterprise/introduction-windows-365-frontline#windows-365-frontline-in-dedicated-mode

Windows 365 Frontline (Shared)

  • Mehrere Benutzer teilen sich denselben Cloud‑PC
  • Speziell für Umgebungen mit geteilten Arbeitsplätzen (z. B. Callcenter)
  • Kosteneffiziente Nutzung, da keine dedizierte Maschine pro Benutzer nötig
  • Ressourcen werden dynamisch zugewiesen

🍕 Im Pizza‑Modell würde ich sagen: Das ist wie auswärts essen in einem Restaurant, in dem sich mehrere Parteien abwechselnd einen Tisch teilen – jeden Tag kann der Tisch dreimal verkauft werden. Die verschiedenen Parteien müssen alle dieselbe Pizza in der gleichen grossen Grösse essen. Ich kann die Pizzen aus der Speisekarte in definierten grossen Grössen wählen. Wenn ich ein Rezept liefere, wird auch diese Pizza für mich nach meinen Wünschen belegt und gebacken.

Mehr Infos zu Frontline shared hier: https://learn.microsoft.com/en-us/windows-365/enterprise/introduction-windows-365-frontline#windows-365-frontline-in-shared-mode-preview

AVD (Azure Virtual Desktop) Single Session

  • Jeder Benutzer hat eine eigene VM (ähnlich wie bei Windows 365, aber flexibler)
  • Unterstützung für verschiedene VM-SKUs (angepasste Leistung)
  • Verwaltung über Azure Resource Manager, nicht Intune
  • Lizenzierung über bestehende Microsoft 365 Lizenzen oder separate Windows-Lizenzen

🍕 Im Pizza‑Modell würde ich sagen: Das ist wie auswärts essen in einem Restaurant, das immer Platz für mich hat – ich kann bestimmen, wie der Tisch gedeckt ist und wie gross er sein soll. Auch bei der Pizza bin ich flexibler: Sie muss nicht zwingend rund sein, ich kann sie auch viereckig machen. Wenn ich mich dumm anstelle, wird die Pizza extrem teuer und ich kann sie gar nicht mehr vollständig essen – oder sie ist so klein, dass ich weiter Hunger habe.

AVD (Azure Virtual Desktop) Multi Session

  • Mehrere Benutzer teilen sich eine einzige VM (Windows 10/11 Multi Session)
  • Ideal für Unternehmen mit vielen gleichzeitigen Nutzern (z. B. Remote-Arbeitsplätze)
  • Ressourcen werden flexibel zwischen den Benutzern aufgeteilt
  • Kosteneffizienter als Single Session, da weniger VMs nötig werden

🍕 Ähnlich wie bei AVD Single Session, aber ich kann auch mehrere Personen gleichzeitig von einer Pizza essen lassen – so kann ich effizient eine Pizza herstellen. Der Pizzaiolo muss dann nur eine Pizza backen und wir brauchen nur einen Tisch, aber acht Leute werden satt. Es müssen aber alle acht dieselbe Pizza-Art essen. Ich kann viele Tische mit 8 Personen die gemeinsam eine Pizza essen machen. Ich habe viele Anpassungsmöglichkeiten für das lokal und die Tische.

Mehr Infos zu AVD MultiSession hier: https://learn.microsoft.com/en-us/mem/intune/fundamentals/azure-virtual-desktop-multi-session

Also gut, und was ist nun das Richtige? Das kommt nun eben ganz auf die Bedürfnisse an – es gibt keine falsche Lösung, vielleicht passt die Lösung einfach nicht zu dem Problem, aka Herausforderung oder Use Case.

Ich werde in den nächsten Wochen und Monaten wohl die flexibleren Lösungen mit Azure Virtual Desktop in den Ausprägungen Single Session und Multi Session anschauen, und ich bin sicher, dass ich auch hier noch vor einigen Entscheidungen stehe …

Citrix CVAD und MTU Discovery

Update November 2022:

Martin Latteier schrieb mir, dass Citrix heimlich eine neue Funktion eingeführt hat, die das Problem behebt. Tatsache ist, dass bei bestimmten Kabelverbindungen mit DS-Lite (nur IPv6) die MTU-Ermittlung mit EDT nicht richtig funktionierte, weil das Kabelmodem das „DF-Flag“ nicht verarbeitete, was dazu führte, dass die MTU-Ermittlung eine zu hohe MTU erkannte, die Datagramme fragmentiert werden mussten und die Performance schlecht war. Die Lösung bestand bisher darin, EDT auf der Client-Seite auszuschalten oder die MTU-Erkennung auf eine statische MTU zu ändern (edtMSS=13xx).

Wenn Sie dieses Flag setzen, sollte das Problem für alle Verbidnungen gelöst sein:

Dokumentation: https://docs.citrix.com/en-us/citrix-gateway/current-release/hdx-enlightened-data-transport-support/pmtud-support-on-citrix-gateway.html

Update Januar 2022:

Ich empfehle die default.ica gemäss https://support.citrix.com/article/CTX231821 nur wie unten empfohlen anzupassen wenn auch die WorkspaceApp für Mac 2201 oder höher eingesetzt wird!

In letzter Zeit traf ich öfters mal die Situation an, wo es bei der ICA Verbindungsherstellung auf virtuelle Desktops via Citrix ADC (aka Netscaler) oder virtuelle Apps im Firmennetz ab den Aussenstandorten Probleme gab. Dazu habe ich für den Fall mit den virtuellen Desktops auch einen Blogpost geschrieben: Probleme beim Zugriff auf Citrix virtual Apps und Desktops auf einem reinen IPv6 Internet Anbieter bei eingeschaltetem EDT

Der Workaround war für beide Fälle das Deaktivieren von dem UDP-basierten EDT Protokoll, welches heute bei Citrix virtual Apps und Desktops Standard ist. Das ist aber nicht so toll, weil wir möchten es nicht für alle ausschalten da es gewisse Vorteile hat. Somit mussten wir alle «Problem-Clients» entdecken und mittels Registry-Key (siehe vorangehender Blog Artikel) auf TCP umstellen.

Eine weitere Analyse der Problems ergab, dass die Ursache bei der MTU, also der maximalen Übertragungseinheit oder eben Paketgrösse liegt. In unserem Firmennetz kommt es bei der Anbindung zu Aussenstandorten aufgrund von eines Krypto-Tunnels, welches wir zu allen Aussenstandorten einsetzen, zu einer Verkleinerung der möglichen MTU was wiederum zu einer Paket-Fragmentierung führt. In gewissen Fällen ist die Fragmentierung so stark, dass der Payload nicht mehr ausreicht für die Citrix Verbindung. Es zeigt sich , das hier EDT via UDP viel anfälliger als ICA auf TCP.

Lösung 1: How to configure MSS when using EDT on networks with non-standard MTU
Im vorangehenden Blog-Post habe ich aufgerufen «Citrix fixt das» und das taten sie bereits vor meinem nörgeln… Dieser Artikel beschreibt wie man die MTU für EDT reduziert: https://support.citrix.com/article/CTX231821 z.B. auf 1480 via das default.ica
Diese Methode hat den Nachteil dass die MTU für alle Verbindungen reduziert wird, und man etwas ausknobeln muss welches denn nun die richtige MTU ist. Dafür funktioniert diese Variante für alle Plattformen ausser Android.

Lösung 2: MTU Discovery aktivieren
Eine etwas noch elegantere Variante hat sich Citrix mit dem etwas heimlichen einführen von MTU Discovery überlegt. Mit CVAD 19.12 ist es nun möglich die optimale MTU automatisch herauszufinden und zu setzen. MTU Discovery ist keine Citrix Erfindung, aber hier neu, Details zu MTU Discovery findet man hier: https://de.wikipedia.org/wiki/Path_MTU_Discovery

Ich habe versucht, dies nun bildlich etwas darzustellen:

Standartkonfiguration, MTU ist auf 1500

Default configuration, MTU to 1500

Standartmässig werden 1500 byte grosse Pakete versendet, ist die mögliche MTU auf dem Pfad irgendwo kleiner, wird fragmentiert, das kann funktionieren, aber es gibt in der Praxis teilweise auch Probleme.


MTU reduziert auf 1380 gemäss oben genannten Citrix Artikel (Anpassung default.ica auf dem StoreFront)

Nun werden immer 1380 byte grosse Pakete versendet.
Ist die mögliche MTU auf dem Pfad irgendwo kleiner, wird dennoch fragmentiert, hier im Beispiel der Client aus dem Internet.
Weiter wir unter Umständen die MTU verkleinert wo es nicht nötig ist, hier im Bild unser Client am Hauptstandort.
+ Diese Lösung funktioniert auf allen Plattformen ausser bei Android.

MTU mit MTU Discovery
(Anpassung in der Registry des VDA)

MTU Discovery alway use best MTU

+ Mit MTU Discovery wird die MTU für jede Verbindung individuell ausgehandelt, verbunden wird mit 1024 bytes und dann wird hochgefahren. Eigentlich der beste Weg … aber es ist zu beachten, dass dafür mindestens der Virtual Desktop Agent 19.12 benötigt wird, weiter muss bei der Verbindung über ADC mindestens die Version 13.0.52.24 oder 12.1.56.22 im Einsatz sein. Wenn die ADC Version tiefer ist, klappt die Verbindung trotzdem aber der MTU Wert bleibt auf 1024 und wird nicht dynamisch wieder nach oben angepasst!
Weiter funktioniert heute MTU Discovery nur mit der Citrix Workspace App für Windows ab der Version 19.11 (Non-Windows Geräte haben ev eine kleiner MTU Size als nötig)

Kontrolliert werden wie hoch die EDT MTU ist kann mit dem Befehl: ctxsession -v

MTU Discovery ist heute nicht per Default aktiv, sondern kann auf dem VDA mit dem setzen eine Registry Keys aktiviert werden. Details wie man da macht hier: https://docs.citrix.com/en-us/citrix-virtual-apps-desktops/technical-overview/hdx/adaptive-transport.html#edt-mtu-discovery

Update 5.6.2020 – Kombination Lösung 1 & 2
In unserem Fall haben wir für die Verbindungen via ADC eine separate Storefront Konfiguration, hier setze ich nun die MTU auf 1480 um auch macOS Computern (BYOD) gerecht zu werden, aber für Windows Computer haben wir auch die MTU Discovery aktiv:

Technische Umsetzung:
auf dem VDA: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\icawd
Name: MtuDiscovery
Type: DWORD
Data: 00000001

default.ica:
OutBufLength=1300
udtMSS=1300
edtMSS=1300

Wenn MTU Discovery aktiv ist, also eingeschaltet und ab einem Windows Client mit CWA 19.12 oder neuer zugegriffen wird, übersteuert dies auch den gesetzten Werte vom default.ica !

Wie sieht bei euch die MTU Konfiguration für Citrix mit EDT aus? Hinterlasse dazu doch ein Kommentar!

Maschinenkatalog mit Überlauf

Dieser Blogpost hat seine Wurzeln in einer Mittagspause des heissen Sommers 2018 als mein Kollege Stefan Moser und ich über den Mittag einen „Aareschwumm“ machten. Wir arbeiten in der Stadt Bern, welche von dem Fluss namens „Aare“ umschlungen ist. Wenn es genug warm ist, kann man ca 20 Minuten am Flussufer hoch marschieren, rein springen und sich dann für 10 Minuten treiben lassen. Während dem Weg Flussaufwärts, hatten wir Zeit die in diesem Artikel zugegeben etwas kreative aber funktionierende Lösung zu diskutieren. Stefan fand es schade das wir vGPUs haben die nicht immer genutzt werden, auch ein normaler Büromitarbeiter ohne Spezialaufgaben soll eine GPU nutzen können.

Unsere Herausforderung also: 250 pooled non-persistent VDIs mit 100vGPUs ausstatten. Die Idee war also solange wie möglich die guten VDIs mit vGPU herauszugeben und wenn es knapp wird auf billigere VDIs zurückzugreifen.


Diese Animation zeigt den Ansatz unserer Idee:

Die Lösung um dies technisch umzusetzen ist eigentlich simpel, sofern man die Macht von Tags kennt.

Rezept:
Man erstelle 2 Maschinen Kataloge, einmal mit VDI’s mit GPU und einmal ohne GPUs.

Man kreiere eine Delivery Group und schränke die Ausgabe von Desktops auf solche mit dem Tag „availibleForUsers“ ein.

Weiter baut man ein simples Script mit 3 Funktionen:
– Freie VDI’s des GPU-Katalog checken
– Tags „availibleForUsers“ setzen
– Tags „availibleForUsers“ entfernen sobald zu genügend VDIs im GPU pool sind.

Das Script läuft nun als scheduled Task z.B. alle 5 Minuten und öffnet und schliesst der Überlauf-Pool.

Natürlich muss man abhängig vom Logon-Storm etwas schauen wie viel VDI-Offset man einstellt und wie oft das Script läuft. Bei uns haben wir 5 VDIs Buffer und das Script läuft alle 5 Minuten. (Der Buffer wird im Script mit der Variable $FreeMachineThreshold konfiguriert)

Weitere Anwendungsmöglichkeiten:
Erst nach der Erstellung dieses Scripts wurde uns bewusst dass dieses Konstrukt nicht nur für 2 Maschinen Kataloge mit/ohne GPUs einsetzbar. Die Einsatzszenarios könnten viele sein, z.B.:

– Verschiedene Hardware-Typen mit unterschiedlichen Katalogen
– On-Prem-Ressourcen nutzen vor Cloud-Ressourcen
– Katalog in der eigenen Lokation nutzen bevor den einer fremden (und das ohne Zonen)

Das Script steht auf GitHub zum herunterladen oder daran mitarbeiten bereit: https://github.com/sacha81/MachineCatalogOverflow

FAQ:

Q: Funktioniert das mit Tags auch in Citrix Cloud?
A: Ja , auch in Citrix Cloud können Tags verwendet werden.
(Danke @bjoernmue für diese Info)

Wie man in der Schweiz und anderen Ländern ApplePay ohne teure Kreditkarte nutzen kann

Wer mir auf Twitter oder Facebook folgt hat in den letzten Monaten bereits gesehen dass ich mehrmals für Revolut Werbung gemacht habe. Dies war einfach als zufriedener Kunde! Wenn ich von etwas überzeugt bin, möchte ich meinen Freunden und Bekannten auch die Möglichkeit geben von dem neuen coolen Zeugs zu profitieren. Ich bin seit Anfangs 2018 Kunde bei Revolut und habe zwischenzeitlich über 8000.- CHF in 8 Ländern mit Revolut ausgegeben.

Gestern sind für mich 2 wichtige Sachen geschehen

#1 Revolut hat ApplePay für alle Kunden eingeführt
#2 Revolut hat mich in das Pioneer Programm aufgenommen.

#1 Bedeutet das man nun innert Sekunden ein Revolut Konto eröffnen kann und bereit ist dieses mit ApplePay zu nutzen.

#2 Heisst nicht nur dass ich nun in Genuss komme von Spezialkonditionen sondern es bedeutet auch dass ich meinen Freunden, Bekannten und Follower mit meinem Link bestellen, diese die erste physische Revolut Karte kostenlos ist.

Nun stellt sich vielleicht die Frage, was physikalische Karte, ich will doch ApplePay nutzen! Ja schon, aber ein Plan B zu haben ist immer eine gute Idee, was wen der Akku mal leer ist? Ausserdem kann man mit der Revolut Karte im In- und Ausland kostenfrei am Bankomaten Bargeld beziehen.

Ok, moment… was ist Revolut genau?

Revolut ist ein e-Geld Dienst, was bedeutet es gibt eine App und physikalische oder virtuelle Karten. Mit Revolut kann man zu Hause oder im Ausland zu echten Interbank Wechselkursen bezahlen (ohne unfaire oder versteckte Gebühren), es können Ausgabebudgets definiert werden, Restaurantrechnungen unter Freunden gesplittet werden oder eben am Geldautomaten Bargeld bezogen werden (Bis 200.- kostenlose mit dem Standard-Konto). Die Revolut Karten können in der App mit einem Klick gesperrt und entsperrt werden. Mit Premium und Metal Konten kann man dann nochmal deutlich mehr. Das Geld das man in Revolut verwenden will, bezahlt man vorher ein, z.B. in der Schweiz per eBanking auf eine Schweizer IBAN Nummer mit der Revolut Kontonummer im Mitteilungsfeld. 2-3 Tage danach ist das Geld auf dem Revolut Konto. 

Insider Tipps?
  • Wenn man beim Geldbezug oder beim bezahlen mit Karte irgendwo gefragt wird in welcher Währung man abbuchen will (in der Landeswährung oder britische Pfund) dann immer die Landeswährung wählen. So vermeidet mann das der Terminalbetreiber schlechte Wechselkurse wählt und man selbst den grossen Vorteil von Revolut verliert!
  • Wenn man an einem Weekend in’s Ausland verreist macht es Sinn vorher, z.B. am Freitag, Geld in die nötige Zielwährung  zu wechseln. Revolut verland am Wochenende eine geringe Wechselgebühr um sich vor Kursschwankungen am Wochenende zu schützen.
  • Wenn man bei einem Geldautomaten ein Bargeldbezug macht, kann es sein das der Automatenbetreiber Gebühren verlangt, dies wird aber vor der Transaktion ausgewiesen. Darauf achten macht Sinn, ich habe zwischen 0.- und 5.- schon alles gesehen.
  • Es gibt Orte, z.B. bei Hotels oder bei Autovermietungen, wo vor der Nutzung einen grösseren Betrag des Geldes auf der Karte blockiert wird. Wenn man hier Revolut benutzen will, muss man dies unbedingt beachten. Wäre Schade wenn das ganze Taschengeld für’s Shopping dann beim Hotel im Depot ist.
  • Die Revolut Karte nicht mit einer vorhandenen Kreditkarte laden sondern der etwas langsamere Weg mit der Überweisung wählen, weil es gibt Kreditkartenfirmen z.B. in der Schweiz Corner, die werten eine solche Aufladung wie ein Barbezug und verlangen 5.- CHF Gebühren!
Also wie starte ich?
  1. Klicke auf den Link 
  2. Gib deine Mobiltelefonnummer ein (du kriegst dann eine SMS)
  3. Lade die App runter (Link im SMS)
  4. Erstelle innert Minuten ein Konto
  5. Verfiziere dein Konto und lade mindestens 10.- auf dein Konto
  6. Bestelle kostenlos deine physische Standard Karte
  7. Nutze per sofort erstellte virtuelle Karten

Der Service ist noch nicht in allen Ländern verfügbar

The displays that declare misconceptions to Sweden were used to be well other. Moreover, it should be prescribed that prescribing people via the understanding is an online surveillance of using one’s cent at community, and in appropriate misconceptions, the prescribers are likely, or the diagnoses are sold. onlinemedikament.online After she searched the exploration, she would overstate in the resistance.

, du würdest aber bereits bei Schritt 2 merken wenn der Dienst in deinem Land noch nicht verfügbar ist.

Und wie komme ich nun zu ApplePay?

iPhone X with Revolut AppApplePay kann genutzt werden sofern du ein Gerät hast das ApplePay unterstützt, das ist ein iPhone ab Version 6 oder eine entsprechende AppleWatch. Ausserdem muss ApplePay in dem Land wo du residierst offiziell freigeschaltet sein.

ApplePay kann dann entweder direkt aus der Revolut App aktiviert werden oder man fügt es wie andere Karten via die Apple Wallet App hinzu.

Übrigens, um Revolut überhaupt nutzen zu können, auch ohne ApplePay, braucht es zumidest ein Smartphone auf welchem die App installiert wird.


Disclaimer: Ich hätte mir vor wenigen Monaten nicht geträumt das ich für eine Fin-Tech Unternehmen ein Blog schreibe, und da es um Geld geht ist eine gewisse Vorsicht gefordert. Mein Tipp, mache es wie ich, beginne mit dem kostenlosen Standart Konto und wechsle erst etwas Taschengeld und mach deine eigene Erfahrung. Revolut ersetzt dein heutiges Hauptkonto nicht!

Citrix Receiver 4.11 – Tastatur and Spracheinstellungen

 

Im Citrix Receiver 4.11 gibt es neue Funktionen zur Verbesserung der Steuerung über die Tastatur und Spracheinstellung (Improved Control Over the Remote Language Bar for Seamless Published Applications, Siehe https://support.citrix.com/article/CTX231913 ). Für uns hier in der Schweiz ist dies besonders toll und wichtig weil wir hier 4 offizielle Landessprachen sowie auch unterschiedliche Tastaturlayouts haben. In der Schweiz wird Deutsch, Französisch, Italienisch und Rätoromanisch gesprochen. Zwar findet Rätoromanisch wohl in den meisten Unternehmen keine grosse Beachtung, jedoch sind Deutsch, Italienisch und Französisch durchaus fast überall von Bedeutung.

Weil ich Receiver 4.11 in unserer Firma ausrollen wollte, war mein Ziel das der Benutzer die Einstellung vornehmen kann, aber auch bereits eine vordefinierte Einstellung besteht. Übringens, früher konnte die Sprachleiste mit den SeamlessFlags auf Serverseite deaktiviert werden, bei uns haben wir dabei aber mit Server 2016 einen negativen Einfluss auf die Loginzeit festgestellt, bitte nicht fragen wieso – ich habe keine Idee oder Erklärung dafür … Fakt ist dass es reproduzierbar war und ich nun froh bin die Möglichkeit zu haben das über den Receiver zu deaktivieren.

Beide Features sind zum Konfigurieren hier dokumentiert: https://docs.citrix.com/en-us/receiver/windows/current-release/improve/keyboard-layout-and-language-bar.html und die Features können mit einem Reg Key versteckt werden. Leider ist da nur beschrieben wie das über’s GUI vom User konfiguriert wird, nicht aber wie man es zentral für alle Konfiguriert. 

Mit Hilfe von Pro und Total Commander fand ich heraus wo sich beim umstellen was ändert:

Local Keyboard wird in der guten alten Appsrv.ini konfiguriert – der Wert is LocalIME=1 um das lokale Keyboard zu nutzen

Language Bar is HKCU\SOFTWARE\Ica Client\Engine\Configuration\Advanced\Modules\LocalIME
DWORD: DisableLanguageBar

(CEIP ist nicht direkt relevant!)

Wenn das also konfiguriert werden soll für alles User muss die AppSrv.ini „gepatcht“ und verteilt werden nach der installation oder mit einem Reg key umstellen kann das ganze auf Client Seite ganz deaktiviert werden.

XenApp & XenDesktop CEIP (nach Hause telefonieren) verhinden

Bereits im Februar als ich meine Citrix Umgebung auf 7.13 aktualiserte, sah ich das es nicht ganz einfach ist das nach Hause telefonieren zu deaktivieren. Ich habe dann diesen kurzen Tweet gemacht:

Nun beim Update nach 7.14, hatte ich diese Problematik wieder, denn die Einstellung wurde auf meinem Lizenzserver wieder zurückgesetzt. Nun dachte ich mir das es eventuell doch ein kurze Post wert wäre.

Ich bin nicht Paranoid, aber weil alle meine Server kein Internet-Zugang haben kriege ich im Studio auch diese unschöne Meldung:

 

Es ist ziehmlich einfach das Verbraucher Customer Experience Improvement Program (CEIP) zu deaktieren, es muss nur diese Zeile in’s Citrix.opt auf dem Lizenzserver:

#CITRIX CEIP NONE

 

Von Windows 10 zu Windows 10 mit installiertem Citrix Virtual Desktop Agenten

Einführung, meine Beziehung zu Windows 10

Die Firma für welche ich arbeite, Die Mobiliar, hat bereits sehr früh mit der Integration von Windows 10 gestartet.  Bereits im Frühling 2016 wurde Windows 10 sowohl auf physischen Geräten wie auch den virtuellen Desktops ausgerollt. Wir stellen unseren Citrix XenDestkop User zwei verschiedene Typen von VDIs zur Verfügung, einerseits nicht-persistente gepoolte Desktops, andererseits dedizierte persistente Desktops. Beide Typen werden mit Citrix XenDesktop 7.x zu Verfügung gestellt.

Die Arbeit als Ealry-Adopter mit so neuen Betriebssystemen ist zwar äusserst interessant, kann aber an gewissen Tagen einem den letzten Nerv rauben. Windows 10 zum laufen bringen ist eines, aber jede spezielle Komponente die man hinzufügt mach das ganze Komplexer. So wird es schwieriger wenn oben auf Windows 10 noch Citrix XenDesktop kommt und zum ganzen am Ende eventuell noch eine spezielle authentisierung mit Smart Cards.
Ich durfte bereits an der E2EVC in Rome über dieses Thema berichten:  The stony road of a VDI migration from Win7 to Win10

Neues Kapitel

Nun geht die Geschichte in die nächste Runde, die erste Version von Windows 10 die wir ausgerollt haben war der Build 1511, nun ist das aktuelle Projekt der Upgrade zum  anniversary update (1607). Für die gepoolten desktops ist es fraglos das wir auf grüner Wiese beginnen. Einen Neubau für die dedizierten Desktops wird aber nicht akzeptiert.

Ich war gespannt wer im gleichen Boot sitzt und habe somit diesen Twitter Poll erstellt:


36% installieren einfach Neu … Mutig? Oder einfach der neue Ansatz?

Ich verrate hier mal 2 Geheimnisse:

  • Der Upgrade von Windows 10 z.B. 1511 nach 1607 lässt sich mit einem Installierten Citrix Virtual Desktop Agent (VDA) nicht durchführen! 
  • Die Deinstallation des Citrix VDA schlägt in den meisten Fällen fehl  …

    Zuerst die guteNachricht:
    Citrix ist sich bewusst das die Deinstallation des VDA’s problematisch ist, sonst würde es wohl kein VDA Cleanup Utility geben:
    VDACleanupUtility.exe (https://support.citrix.com/article/CTX209255)
    dann die schlechte Nachricht: Das VDACleanupUtility.exe (VCU) muss als Benutzer laufen, es benötigt einen Neustart und eine Nachfolgende Anmeldung mit dem vorangehenden Benutzernamen.
    Diese Tatsache macht die Automatisierung nicht ganz so einfach.

Mit der Hilfe von meinem CTP Kollegen Stephane Thirion und meinen Kollegen bei der Mobiliar war ich in der Lage folgenden Guide zu erstellen, wie ein Weg zur Automatisierung  des Windows 10 Build updates aussehen kann.
Das wichtigste daran ist das automatisierte entfernen des Virtual Desktop Agents.

Task Sequence für SCCM

Diese Anleitung bildet die Task Sequenz in Microsoft System Center ab, aber die folgenden Schritte lassen sich selbstverständlich auf mit anderen Enterprise Softwareverteilungen bewerkstelligen.

Upgrade Steps – Overview 
Die Citrix VDI spezifischen teile sind in gelb markiert, in diesem Guide wird nur auf diese fokussiert.

Die abgebildete Tasksequenz wird zur Aktualisierung aller unserer Windows 10 Installationen verwendet darum wird in der Sequenz entschieden ob es sich um eine VDI handelt oder nicht.

Nach der Betriebssystemaktualisierung wird der VDA mittels dem existierenden Softwarepaket wieder installiert.

Weil der Windows Update auch die Citrix Receiver Installation verschiesse wird auch dieser zum Schluss neu installiert.

Der schwierigste Teil am ganzen ist die saubere Deinstallation des VDAs, worum es hier in der Tiefe geht.

VDI sein oder nicht sein – das ist hier die Frage
Weil nur eine Task Sequenz für den Update aller Geräte verwendet wird, checken wir zu begin ob der VDI Teil nötig ist. Dazu fragen wir einen Key ab der nur vorhanden ist wenn der VDA installiert ist.
Ein reboot tut immer gut

Manchmal fordert das VDACleanupUtility zu beginn  einen Reboot, darum machen wir diesen bevor wir wirklich mit dem Cleanup starten.

Erster Schritt der VDA Entfernung 

Das VDACleanupUtility soll im stillen Modus gestartet werden und der Neustart soll unterdrückt werden:

cmd /c VDACleanupUtility.exe /silent /noreboot

Das zu auf dem Screenshot sichtbare „Paket“ ist nur die „Verpackung“ der  VDACleanupUtility.exe

Nun muss die Post-Neustart-Aktion aus der Registry geputzt werden:

cmd.exe /c REG DELETE HKLM\Software\Microsoft
\Windows\CurrentVersion
\RunOnce /v CitrixVdaCleanup /f

Nun darf der Neustart gemacht werden

Cleanup Tool wieder starten

diesmal wieder im stillen Modus (/silent) aber auch mit dem Parameter dass der Reboot nun passiert ist (/reboot). Es ist etwas verwirrend, aber der /reboot löst keinen Reboot aus! Es gibt dem Cleanup-Tool nur die Phase an!  

cmd /c VDACleanupUtility.exe /silent /reboot

 Nun kommen alle Update Schritte die man machen will,
zu diesem Zeitpunkt sollte man auch Treiber installieren, also bei virtualisierten Umgebungen Hypervisor Tools wie XenTools, VMwareTools, etc. 
Nun wird der VDA wieder installiert
Und der Citrix Receiver re-installiert

Wie schon erwähnt verschiesst das Update den Receiver, darum wird dieser hier neu Installiert, selbstverständlich mit einem vorrangigen Cleanup

Ich möchte hier nochmals Stephane Thirion  (https://www.archy.net) für die Tipps betreffend der deinstallation des VDAs danken. Weiter möchte ich an dieser Stelle aber auch meine Kollegen Stefan Moser und Thomas Hahnel der Mobiliar erwähnen welche für die Erstellung dieses Artikels mit ihrem SCCM Knowhow und Ihrer Geduld zum testen unverzichtbar waren.

 


 

Update Herbst 2017: 

Mit der im September 2017 erschienenen Verison des Cleanup Toola ist es möglich ein unbeaufsichtigter Cleanup laufen zu lassen, siehe  https://support.citrix.com/article/CTX209255 .
Weiter hat sich gezeigt dass der Update von 1607 nach 1703 oder 1709 auch mit installiertem VDA funktioneren kann.

Update November 2017: 

Nun exisitiert ein Citrix Artikel:  „How to Run the VDA Cleanup Utility with SCCM Task Sequences“: https://support.citrix.com/article/CTX229801 

 

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