Generated Shownotes
Chapters
0:00:04 Vorstellung und Einleitung des Themas
0:02:42 Rückblick auf vergangene PowerShell Saturday Veranstaltungen
0:04:06 Installation von Software auf Raspberry Pi und Windows
0:08:07 Vergleich von Package-Management-Systemen in Linux und Windows
0:12:13 Einführung in Scoop als Paketmanager für Windows
0:15:00 YouTube-Downloader gesperrt, aber alternative Programme verfügbar
0:18:01 Scoop ist Teil der wachsenden Popularität von Paketmanagern
0:21:45 Der Fokus auf Benutzerzentrierung und der Store
0:25:21 Verpacken von Anwendungen mit digitaler Signatur
0:31:36 Einfache Nutzung ohne Lizenzkosten für Softwareeinsatz
0:35:27 Winget - Eine Lösung ohne arbiträren Code
0:43:17 Herausforderungen bei Breaking Changes in der Entwicklung
0:44:40 Fragen zu Code-Beispielen und PowerShell
0:46:30 Vorsicht bei der Verwendung von Winget in der ISE
0:48:13 Programminstallationen ohne administrativen Zugriff möglich
0:51:57 Neue Version der PowerShell (7.2.2)
0:53:29 Anwendungen blockieren und PowerShell 7 Probleme
1:00:39 Abschließende Worte über den userzentrierten Ansatz
Long Summary
In dieser Folge des PowerShare Saturday dreht sich alles um das Thema Paketverwaltung und App-Installer-CLI. Wir geben einen Überblick über die aktuellen Entwicklungen in diesem Bereich und weisen auf die verschiedenen Herausforderungen und Missverständnisse hin, die es in Bezug auf die Paketverwaltung gibt. Wir freuen uns, prominente Gäste in dieser Folge zu begrüßen. Thorsten und Andreas erinnern sich an ihre ersten Begegnungen auf PowerShell-Veranstaltungen und freuen sich, dass sie wieder persönlich zusammenkommen können. Wir diskutieren über die Unterschiede zwischen der Paketverwaltung unter Windows und Linux/Unix. Wir erklären, dass die Linux-Welt mit Aptitude, DPKG ein Vorbild für einen Package Manager hat, während die Windows-Welt immer noch keine ideale Lösung hat. Wir stellen verschiedene Tools vor, die in der Windows-Welt verwendet werden, wie SMS, MSI Exec usw., betonen jedoch die Notwendigkeit eines effizienten und benutzerfreundlichen Package Managers. Wir diskutieren auch die verschiedenen Ansätze für die App-Installation und virtualisierte Bereitstellung von Anwendungen unter Windows, wie Chocolaty, Scoop, MSIX und App-V. Wir erklären, wie diese Tools funktionieren und welche Vorteile sie bieten. Thorsten zeigt eine Demo zur Bereitstellung von Anwendungen mit MSIX und erklärt die verschiedenen Schritte und Optionen. Er erwähnt auch, dass MSIX in der Home Edition von Windows lauffähig ist und somit auch Schulen und Universitäten ermöglicht, Anwendungen ohne zusätzliche Lizenzkosten zu verteilen. Wir diskutieren auch die Unterschiede zwischen gerätezentrierter und benutzerzentrierter Bereitstellung von Anwendungen. Thorsten erwähnt, dass in seiner Firma Winget als Tool zur Paketverwaltung eingesetzt wird, das eine deklarative Herangehensweise verwendet und Pakete mit YAML-Dateien beschreibt. Er lobt die Arbeit des Hauptverantwortlichen für Winget, Demetrius Neeland, und erklärt die Vorteile von Winget gegenüber anderen Paketverwaltungstools wie Chocolaty. Schließlich stellen wir unser eigenes PowerShell-Modul zur Paketverwaltung vor, das in der Alpha-Phase ist und noch viele Verbesserungen benötigt. Wir zeigen eine Demo zur Verwendung von Winget in der ISE und erklären die Funktionalitäten und Überlegungen bei der Verwendung von Winget. Wir installieren verschiedene Anwendungen und betonen die Vorteile von Winget, insbesondere in Bezug auf die einfache und effiziente Paketverwaltung.
Brief Summary
In dieser Folge dreht sich alles um Paketverwaltung und App-Installer-CLI. Wir diskutieren die Unterschiede zwischen Windows und Linux/Unix, stellen verschiedene Tools wie Chocolaty, Scoop, MSIX und App-V vor und präsentieren unser eigenes PowerShell-Modul zur Paketverwaltung namens Winget. Wir betonen die Vorteile von Winget für die einfache und effiziente Paketverwaltung.
Tags
Paketverwaltung, App-Installer-CLI, Windows, Linux/Unix, Chocolaty, Scoop, MSIX, App-V, PowerShell-Modul, Winget
Transcript
Vorstellung und Einleitung des Themas
[0:04] Ja, herzlich Willkommen, PowerShare Saturday. Mein Künstlername, habe ich ja vorhin schon gesagt, aber in Wirklichkeit heiße ich Thorsten Butz und das ist Andreas Nick.
Ich habe schon ein paar Mal über ein ähnliches Thema gesprochen.
Ich fürchte, dass es bei dir auch war, über Paketverwaltung.
Das ist ja erst mal ein Satz mit X.
[0:25] Welche Paketverwaltung? Und ihr wisst schon, Dinget, App-Installer-CLI, das soll ein Schwerpunkt heute sein, aber wir wollen so ein bisschen den großen Bogen an der Stelle nachvollziehbar machen.
Wir wollen mal schauen, was hat sich in den letzten Jahren getan, wo geht die ganze Reise hin.
Das soll natürlich kurzweilig sein, weil wir wissen, es ist Samstag, es ist Wochenende.
Und natürlich wollt ihr auch ein bisschen was sehen. Wir versuchen, das alles hinzubekommen.
Ich bin mehr so die Infrastruktur-Abteilung, habe mal als Netzwerker angefangen, Skripte viel, Schule viel.
Und Andreas, du bist der große, ja, sag mal, was ist der Oberbürgermeister?
Citrix, Anwendungsvirtualisierung, weiß ich nicht.
Auch Infrastruktur im Grunde, nur eher von der software-technischen Seite.
Interessanterweise all genau die Sachen, von denen ich mich immer wieder schwer tue, die ganzen Abkürzungen auseinanderzuhalten. Wir wollen mal schauen.
PowerShell, machen wir beide.
Das ist das verbindende Element. PowerShell ist ein gutes Stichwort.
Ich finde, wir sollten die Leute hier würdigen, die das alles machen.
Ich habe gar keine Ahnung, weißt du noch, wann du das erste Mal PowerShell User Group Hannover wahrgenommen hast, wann du das erste Mal hier dabei warst? 2017.
[1:40] Was war der Anlass, weißt du das noch? Ich habe 2016 Server 2016 Kurs bei Holger gemacht.
Da hatten wir mal Lust, einen Kurs zu machen und wollten hier schon immer mal einen Kurs machen und die Leute mal kennenlernen.
Netzweise war noch relativ neu in Hannover. Vorher war das hier in der Verizon hauptsächlich und wollten die Leute mal kennenlernen.
Dachten wir, uns buchen wir hier mal einen Kurs für Server 2016.
Und der ist gerade halt frisch rausgekommen, kann sogar 2015 gewesen sein, Ende 2015.
Und das Ja darauf halt, erst einmal PowerShare User Group, ja.
[2:15] Ich habe es ehrlich gesagt vergessen. Ich habe wirklich überlegt, was war so der Anfang.
Woran ich mich gut erinnern kann, ist, dass für mich Hannover die Welthauptstadt der PowerShell zu sein schien.
Weil zwei Drittel aller Kollegen aus dem deutschsprachigen Raum, die in dem Kontext mir bekannt waren, und da kommen natürlich immer neue hinzu, die wohnen hier, so wie Andreas, und dann hat es mich dahin gezogen. Ich war dann zweimal hier beim PowerShell Saturday.
Rückblick auf vergangene PowerShell Saturday Veranstaltungen
[2:42] Vielleicht war der eine oder andere damals dabei. Ich meine 2017 und 2018.
Naja, und den Rest ist dann so ein bisschen Geschichte. Ihr wisst schon, Corona und den ganzen Spaß.
Und deswegen freue ich mich sehr, dass wir das jetzt hier wieder in Präsenz geschafft haben.
Es hat immer die Diskussion, macht das eigentlich alles noch Sinn? Wir machen ja sowieso dauernd Teams.
Aber ich finde so in Präsenz, Live-Musik, Bierchen am Abend, das ist eine andere Ebene.
Deswegen freue ich mich, dass ihr das offenkundig auch so seht.
Ja, lasst uns mal darüber diskutieren, die ganzen Missverständnisse.
Wir haben ein paar Prominente mitgebracht, den einen oder anderen werdet ihr vielleicht erkennen.
Ihr werdet sie jetzt in den nächsten 20 Minuten kennenlernen.
Das sind so ein bisschen unsere Hauptdarsteller. Aber natürlich gibt es jede Menge Nebenrollen in diesem Film.
Die wollen wir natürlich auch nicht unbeackert lassen.
Ab jetzt alle Videos in doppelter Geschwindigkeit.
Kommt gleich.
Ja, wenn wir mal angucken, Package Manager, so als Begriff, was ist das?
Und ich glaube, wenn man verstehen will, was das ist, muss man vor allem erst mal eines machen.
[3:45] Man muss mal die Seite umschlagen und ein anderes Betriebssystem öffnen, oder?
Und ich habe mal was mitgebracht, so als erste kleine Demo. Das ist ja heute alles relativ einfach geworden.
Ihr ahnt schon, dass das jetzt nicht so richtig Linux ist, aber wenn man mal hier guckt.
Installation von Software auf Raspberry Pi und Windows
[4:06] Wie installiert man Software? Dann könnte das ungefähr so aussehen.
Wahrscheinlich sieht das so oder so ähnlich auf eurem Raspberry Pi aus.
Und was wir da sehen, die Profis werden es sofort erkannt haben.
Aptitude ist ein Frontend, wenn man so will, was ein paar Sachen mehr kann.
Aber die Technologie dahinter, auf die das alles aufbaut, ist DPKG.
Und das ist der Debian Package Manager.
Und das Interessante ist, dass wir heute halt nicht mal einen Raspberry Pi brauchen, wobei das natürlich schon sehr wenig Widerstand ist.
Das sollte jeder haben, hat wahrscheinlich auch jeder im Raum 20 Stück.
[4:42] Und wir haben das aber mittlerweile natürlich auch mit dem WSL unter Windows.
Und wenn man jetzt Software installieren will, dann kann das sehr, sehr einfach sein.
Dann sucht man halt danach und dann ist es halt upgade install WIM.
Da kann man mal gucken, was würde denn da installiert. Und jetzt ist natürlich immer so ein bisschen die Schwierigkeit, klar mit der Internetverbindung hier bei so einer Konferenz ist das immer ein bisschen wackelig.
Das heißt, hier kann es jetzt natürlich sein, dass sowas an der Netzwerkgeschwindigkeit scheitert.
Aber in dem Fall kommt noch eine Kleinigkeit hinzu.
Wir haben natürlich immer die Frage zu beantworten und die ist ganz wichtig für unseren Vortrag.
Wer darf denn eigentlich Software installieren?
Und natürlich haben wir unter Windows wie auch unter anderen Betriebssystemen immer sofort einen administrativen Blick.
Klar, ein Administrator, was immer das genau sein soll, der darf das.
Und auch in der Linux- und Unix-Welt hat man natürlich relativ schnell erkannt, dass immer alles mit vollen administrativen Rechten zu tun, jetzt nicht das Feinste vom Fein ist.
Also hat man dann dort in den gängigen Distributionen, das ist das heute fast immer so vorkonfiguriert, gesagt, okay, also wenn jemand eine administrative Änderung machen will, dann muss er das dazu schreiben, sudo, und dann kann er installieren, dann muss man das Passwort vielleicht nur eingeben und dann wird das Ganze installiert, einschließlich aller Abhängigkeiten.
Das kennt natürlich jeder.
[6:02] Also ich behaupte mal, jeder im Raum kennt das, so das ist der ideale Package Manager und jetzt muss man natürlich dazusagen, ich hätte tausend andere Lösungen nennen können, auch durchaus Sachen, die noch älter sind, wenn man an die BSD-Welt denkt.
Aber ich glaube, Aptitude, DPKG ist heute wirklich ein Role Model. Wir werden gleich sehen, warum.
Ja, und das Interessante ist, und das macht mich jetzt, ich möchte jetzt eigentlich gar keine Scherze darüber machen, Wie alt das ist?
Debian und Linux? Ich gehe zurück auf zwei Menschen, die das erfunden haben, Deborah und Ian.
Und die traurige Wahrheit ist, ich sage das mal dabei, vielleicht um auch einen Gruß in die Stratosphäre zu schicken, der Ian Murdoch heißt er, glaube ich, der ist schon lange verstorben.
Und wenn man jetzt heute hier sitzt und wir reden über einen Package-Manager für Windows und man guckt sich das an, das erschreckt einen, oder?
Also wir haben einfach in der Linux-Unix-Welt, da ist ein Package-Manager völlig selbstverständlich.
Und wir, wenn ich das so sagen darf, eiern rum. Selbst Aptitude, dieses Frontend, geht in der Zeit zurück, da war ich noch Lehrer, also Referendariat und so.
So lange ist das her. Wahnsinn. Und ja, der Windows-Admin, was macht der?
Dummes Gesicht.
Wir haben im Vorfeld überlegt, was könnte man so nennen? Ich meine, wir haben ja keine Zeit.
[7:26] Wir könnten jetzt darüber diskutieren, welche Anfänge es gegeben hat.
Da wird der eine sagen, ja, wir haben doch SMS, wir haben dieses Tool, jenes Tool, wir haben MSI Exec.
Ist das ein Paketmanager? Da ist die Frage, wie man das definiert.
Aber vor allem dieses eine Tool, mit dem man Software bekommt, wieder entfernen kann, und im Idealfall alle Betriebssystemaspekte, also Anwendungssoftware, Treiber, Betriebssystemupdates, Das, was in der Linux-Welt natürlich auch ein Stück weit einfacher zu implementieren ist, weil der Distributor genau da drin seinen Sinn und Zweck sieht.
[8:00] Weil das ja alles Open Source ist und der Distributor diese losen Fäden zusammenbringt.
Vergleich von Package-Management-Systemen in Linux und Windows
[8:07] Deswegen macht das unter Linux hundertprozentig Sinn, aber umgekehrt heißt es nicht auch in der Windows-Welt, dass wir da nicht vielleicht auch mal irgendwie was bräuchten an der Stelle.
Ja, damit komme ich dann auch zu dem, wie ist das denn unter Windows im Moment gemacht, was ist für uns Alltag?
Und natürlich ist das so bizarr, dass ich in jedem PowerShell-Grundkurs mit diesem Registry Key reüssiere. Eine der Übungen, die ich ständig mit den Leuten mache, wir schreiben mal eine Inventarisierung.
Diese Beispielgrippe gibt es Hunderttausende im Netz und die basieren im Kern alle darauf, dass man, und jetzt man muss sich die Feinheiten an der Stelle natürlich mal angucken, dass, einen Uninstall-String ausliest. Wenn man das jetzt zu Ende denkt. Software unter Windows ist einfach, da werden Dateien rüber kopiert. Und wenn man Glück hat, erstellt der Installer, der von mir aus MSI-Exec oder irgendwas, hinterlässt hier etwas, dass man es wieder wegbekommt. Und daran sieht man, dass was installiert ist. Jetzt könnte man kätzerisch sagen, ja, unter macOS ist das noch archaischer. Gut, darüber wollen wir nicht diskutieren.
Das wäre ein anderes Thema, aber im Vergleich zu dem, was wir gerade gesehen haben, ist das mehr als fragwürdig.
Ja, und dann ist halt der Punkt, was machen wir jetzt?
[9:24] Und dann hat er, jetzt müsste ich eigentlich dir das Wort übergeben.
[9:28] Dann hat es vor einigen Jahren mal Package Management gegeben in Form von OneGet.
Ja, und vielleicht kannst du ein, zwei Sätze sagen. Du hast mal vor einem der vergangenen PowerShell-CDDs darüber einen Fußrag gehalten, weil das eigentlich eine geniale Architektur ist, oder?
Ja, diese OneGet-Architektur, die nutzen wir heute zum Beispiel dazu, um PowerShell-Pakete zu installieren.
Darauf basiert das nämlich genau.
Diese Package Provider kann man sich über Get-Package Provider direkt in der PowerShell anschauen.
Da gibt es einige, die wir nutzen, unter anderem eben, wie gesagt, für die Installation von PowerShell-Modulen aus der PowerShell-Gallery, aber auch für andere Themen.
Es gibt zum Beispiel einen Provider von Schokolatti, vielleicht kennt das der eine oder andere Vorgänger von dem, was wir jetzt gleich noch hier zeigen werden.
Und in dem, ich glaube, in dem letzten PowerShell Saturday hatte ich einen primitiven eigenen Package Provider vorgestellt. Wir haben uns das jetzt vor ein paar Tagen angeschaut.
Es ist in meinem GitHub-Account zu finden und ist tatsächlich dem Winget von heute sehr ähnlich.
Also ich habe da auch mit ein paar Konfigurationsdateien gearbeitet, um Pakete zu installieren und zu deinstallieren.
Das war nur so ein technisches Gedankenmodell, weil ich sehr viel auch im Bereich Software-Deployment arbeite und warum nicht eben diesen Package-Provider dafür verwenden.
[10:54] Mit XML-Manifest. Und das ist interessant, wer sich jetzt ein bisschen mit Winget auskennt, der weiß, das ist der besondere Pitch.
Das war da auch schon drin. Sehr, sehr interessant.
Wichtig ist, heute denken wir im PowerShell-Kontext eigentlich nur noch an eine Schnittstelle, die brauchen wir eigentlich.
Können wir nicht eigentlich auch alles mit Nugget machen? Also eine Schnittstelle, die irgendwie so der Klebstoff ist, damit wir Module downloaden.
Aber OneGit könnte viel mehr. Und ich glaube, das war auch mal angedacht in einem viel größeren Rahmen.
Aber, wie so oft, ich weiß gar nicht, ob ihr das alle mitgekriegt habt.
Ich glaube, du hattest das noch gar nicht mitgekriegt.
Das ist ein weiteres von vielen, vielen Projekten auf dem Friedhof.
Das hat Microsoft aufgegeben. Da sind die ganz groß drin. Da geht schnell mal was über Bord.
Und das ist der einzige Grund, warum ich die Folien mitgebracht habe.
Ihr werdet sehen, ich habe nicht so viele Folien, aber die wollte ich mal mitbringen.
Ja.
Und er hat es gerade gesagt, Chocolaty, oder wie immer man das ausspricht.
Was ist jetzt angesichts dieser Misere? Also wir hätten vielleicht mal was gehabt.
[11:57] Haben sie aufgegeben. Jetzt kann man diskutieren, wo sind so Ansätze.
Aber was auch klar ist, ist, wir haben halt vor allem Third-Party-Applikationen, die ganz interessant sind.
Davon gibt es welche wie Sand am Meer. Chocolaty ist vielleicht die prominenteste.
Einführung in Scoop als Paketmanager für Windows
[12:13] Da weiß man gar nicht, wo man anfangen, wo man aufhören soll.
Ich will euch eine zeigen, die später noch interessant wird, nämlich Scoop. Später in zehn Minuten.
Und dafür gehe ich mal einmal kurz hier rein. Und wundert euch jetzt bitte nicht, wenn ich hier mit der ISE arbeite.
Das ist ein relativ leeres System, mit dem ich hier arbeite.
Da ist nicht so wirklich viel drauf. Auch noch kein Visual Studio Code.
Deswegen muss ich jetzt hier mal eben diesen Weg gehen.
Wer arbeitet noch mit der ISE? Mal so nebenher gefragt. Wer nur noch mit Code?
Ja, also würde man sagen, es ist sogar eine Minderheit.
[12:52] Was ist Scoop? Ich habe jetzt aus Zeitgründen und wie gesagt, auf Konferenzen hast du immer ein wackeliges Internet. Da wollte ich nichts riskieren. Deswegen habe ich die Befehle zum Teil. Ich zeige euch das gleich schon ausgeführt. Scoop ist einer von vielen.
Das Interessante an Scoop ist, dass der oder die Entwickler einen etwas anderen Ansatz verfolgen, der gleich noch interessant wird, nämlich den Ansatz, dass man Pakete bitte grundsätzlich im Benutzerkontext herunterladen und bereitstellen kann.
Also keine Installation in diesem traditionellen Sinne. Da denken die meisten Windows Admins an eine systemweite Installation, sondern eine Installation, die sich eher mit Flatpak vergleichen lässt, die sich vielleicht vergleichen lässt mit dem, was der Store macht.
Wir kommen gleich zu MSIX und so weiter.
Also dieses etwas Modernere, was wir alle hassen, Weil wir wollen ein System weiterentwickeln.
[13:44] Und bei Scoop ist es so, das ist im Prinzip PowerShell-Code oder zumindest der größte Teil.
Du kannst dir das alles angucken.
Ich habe das bereits heruntergeladen an der Stelle.
Dafür muss ich nur in den richtigen Ordner gehen. Wer sich jetzt Spaß hat, kann sich das hier mal angucken.
Das ist dann etwas längerer Ansatz.
Ja, damit kann man dann eben Sachen installieren.
Und damit das jetzt technisch funktioniert, kennt der etwas, einen Begriff, den viele andere auch kennen, wenn in einem anderen Zusammenhang, nämlich sogenannte Shims, Application Shims, so Zwischenscheiben, kennt man an vielen anderen Stellen aus Tools auch. Also kleine Erweiterungen, die es ermöglichen, Programme, die nicht für diesen benutzerzentrierten Ansatz gedacht sind, dass man überhaupt installieren kann.
So, wenn ich das jetzt installiere, das habe ich, das habe ich bereits einfach ausgeführt, das ist der Zustand, in dem der ist. Da kann man dann mal gucken, was geht hier ab und ein Bucket, Ihr kennt wahrscheinlich den Begriff, das ist ein Eimer oder sowas, das ist eine Kategorie.
Da kann man mal gucken, was hat man, der unterscheidet zwischen Main und anderen Dingen.
Und wenn man dann jetzt hier zum Beispiel sagt, ich würde gerne mal Firefox bereitstellen.
[14:56] So die Verbindung, das jetzt mitmacht, werdet ihr das finden.
YouTube-Downloader gesperrt, aber alternative Programme verfügbar
[15:00] Da wird ihr mir die Möglichkeit geben, ähnlich wie bei Winget auch, das werden einige ja schon kennen, die entsprechenden Installationsoptionen mir anzuzeigen oder hier sowas und installieren würde man es dann auf diese Art und Weise.
Jetzt passiert direkt was richtig Lustiges. Ich habe es mal mitgebracht, weil das so interessant finde.
[15:22] Ihr wisst wahrscheinlich, dass der YouTube Downloader, der ursprüngliche, dass er so ein bisschen unter Beschuss ist von den Content Inhabern, weil man damit ja auf YouTube Film herunterladen kann. Und was ich jetzt lustig fand, ist, dass sie das tatsächlich gesperrt haben.
Also ihr seht in der Fehlermeldung, wenn ich den herunterladen will, das klappt nicht. Andere, Sachen klappen, werdet ihr gleich sehen. Fand ich ganz interessant, deswegen habe ich das mal mitgebracht. Die Profis wissen, es gibt jede Menge Alternativen zu dem YouTube-Downloader. Und schauen, Wollen wir mal hin?
Der funktioniert und ihr seht an ist already install ich habe das vorher schon gemacht aber ihr werdet mir glauben dass das funktioniert und jetzt sieht man hier da ist das ganze drin.
[16:06] Interessant ist ihr werdet es sehen hier das ist mein benutzerkonto der kepten kirk er hat darunter in unterhalb seines home directories und scoop verzeichnis da landen die sachen alle drin wenn die ganzen quatsch loswerden will shift entfernen und vorbei ist der spaß das ist natürlich das Interessante. Ist das geeignet für ein unternehmensweites Deployment bei der, Commerzbank, bei der Behörde XY? Wahrscheinlich nicht. Ich weiß es nicht.
Kann er gleich was zu erzählen bei MSIX. Aber das ist natürlich erstmal ein tolles Werkzeug für uns, für Entwickler, für IT-Pros, Dinge, die man ausprobieren will etc. Eine Sache, die ich noch gerne zeigen würde, ich hoffe die Zeit reicht am Ende des Tages. Ich habe ja gesehen, ich habe ja gerade gezeigt, Firefox ist hier eine der Optionen.
[16:56] Wenn man das jetzt installiert, stellt man fest, das gehört nicht zum Kernbereich, das gehört unter Extras. Deswegen muss man dann erst mal noch ein Bucket installieren. Das seht ihr hier. Dann kann man das Ganze machen. Und ihr seht im Hintergrund, der braucht dann auch ein Git, damit das Ganze funktioniert ich erspare das jetzt aus zeitgründen ich habe ein bisschen was vorbereitet und kann euch schon mal zeigen ich hoffe das habe ich jetzt hier auch auf der maschine richtig gemacht also die powershell zum beispiel powershell 703 habe ich genau mit dem quellcode den ihr gerade gesehen habt mit den zwei drei zahlen bereits installiert und ja ihr seht das funktioniert alles ganz normal warum ich jetzt ausgerechnet so eine alte version installiert habe da komme ich gleich noch zu aber ihr seht, das funktioniert. Es war diese Woche noch 715. Bestens. Also das ist eine alte Version, aber es hat gute Gründe, warum ich das jetzt genau so gemacht habe. Ja, interessant ist Scoop.
Scoop ist Teil der wachsenden Popularität von Paketmanagern
[18:01] Weil es recht populär geworden ist in den letzten Monaten. Nach meinem Wahrnehmen begegnet das immer häufiger. Es gibt wahnsinnig viele Package Manager. Chocolaty, habe ich gesagt, ist vermutlich einer, der Prominenterin. Aber den wollte ich mal zeigen, um euch zu zeigen, dass dieser benutzerzentrierte Ansatz offensichtlich für viele Leute ein Thema ist. Und das ist natürlich genau der Übergang zu Andreas, der jetzt natürlich diesen Faden aufnehmen kann und nochmal so ein bisschen zurückspulen und mal überlegen kann, was ist denn jetzt in der Zwischenzeit bei Microsoft passiert?
Und in der Zwischenzeit meine ich jetzt natürlich nicht gestern und vorgestern, sondern in den letzten Jahren.
Und deswegen übergebe ich jetzt mal.
An dich und ich klicke gerne für dich. Windows Universal Apps, Windows Universal Plattform ist da das Stichwort.
[18:55] Das haben wir so ab Windows 8, 8.1. Das ging noch ein bisschen früher los.
Thorsten hat jetzt gerade hier die Folie aufgelegt von Softwikity.
Das ist quasi so der erste, der so mal angefangen hat mit Anwendungsvirtualisierung.
Das ging so kurz nach 2000 los.
Ich habe es 2003 kennengelernt. Ich erinnere mich noch daran an den Dienstleister.
Das war damals ADN beziehungsweise Distributor, der das damals bei meinem damaligen Arbeitgeber vorgestellt.
Und seitdem bin ich da Feuer und Flamme.
Microsoft hat es dann 2006 gekauft, tatsächlich relativ schnell umgenannt in Microsoft Application Virtualization oder App-V.
Gibt es nach wie vor und ist auch nicht 2026 abgekündigt, wie man es im Internet sieht, sondern ist eben Teil des Betriebssystems.
Also tatsächlich ist das M-Dop abgekündigt und den hier gibt es auch nach wie vor unter Server 2022.
[19:45] Und unter Windows 11 und unter Licht im Windows Lifecycle. Andere Sachen verschwinden 2026, aber der bleibt.
Und der gedachte Nachfolger, wie gesagt, basierend auf Microsoft AppX, da haben wir so die ersten Varianten mit der Windows Universal Plattform für Windows 8, Windows 8.1 gesehen, als dann auch der Store rauskam.
Also Store Deployment gedacht ist eben das Ganze auch als moderne Anwendungsvirtualisierung und Anwendungsisolation.
Das Ganze läuft hier auch mit AppX in einem Container.
Später ist dann der Begriff MSIX dazugekommen. Das ist quasi ein aufgebohrtes AppX, im Grunde ist es heute das Gleiche.
Aber wir können darüber eben auch Windows 32 Applikationen virtualisiert userzentriert bereitstellen.
Und im Gegensatz zu Scoop nutzen wir da nur ganz, ganz wenig ähm...
Speicher im Benutzerprofil, also Scoop, was der Thorsten gerade gezeigt hat, installiert sich komplett ins Benutzerprofil.
Teams macht sowas zum Beispiel auch. Ganz eklig, habe ich gerade beim Kunden mitzukämpfen, wo sich die Profile dann mal eben auf ein Gigabyte aufblähen, nur weil Teams installiert wurde.
Also mit MSIX haben wir dieses Problem nicht, weil die Daten dann unter C, Program Files, Windows Apps quasi als Cache installiert werden und nur Der Benutzerteil der Applikation landet an dem Benutzerprofil, aber die Bereitstellung ist eben.
[21:14] Benutzerbasieren. Da kann man auch ganz ganz viel PowerShell drumherum machen. Das spare ich euch heute. Sondern wir haben uns halt überlegt, was wir zeigen. Thorsten sagte, zeigt doch mal das MSRX Packaging Tool, mit dem man so eine Windows 32 mit Applikation bauen kann. Und ich habe gesagt, Nein, das dauert zu lange und vielleicht kann ich dann aber ein Video machen und dazu ein bisschen was erzählen.
Und das haben wir dann auch getan. Bevor wir dazu kommen, ich würde ganz gerne nochmal so diesen roten Faden aus meiner Sicht.
Der Fokus auf Benutzerzentrierung und der Store
[21:45] Das Interessante ist, dass wir bei dieser Geräteklasse zum ersten Mal diesen Benutzerfokus ganz klar im Vordergrund haben.
Und warum war das damals so? Ja, weil es Windows Phone noch gab.
[21:57] Und beim Windows Phone reden wir nicht von Mehrbenutzersystemen und von Systemweiterinstallation, sondern wir haben ganz selbstverständlich, wie bei iPhone, wie bei Android, wir haben selbstverständlich eine Plattform, die benutzerzentriert ist und wo alles andere im Hintergrund läuft, ohne dass der Benutzer jetzt nochmal Run as Administrator ausführen muss.
Und der eigentliche Witz ist natürlich, das wissen wir alle, dass der eigentliche Pitch an dieser ganzen Plattform, nämlich die ARM-Architektur und dieses Zusammenspiel von mobilen Geräten und Desktop-PCs, dass das lange Geschichte ist.
ARM-Windows gibt es eigentlich nur noch in der Theorie.
Telefone sind längst verschwunden, aber übrig geblieben ist der Store, den kaum jemand mag.
Das haben wir aber schon wieder jetzt. Das ist ja zurückgekommen quasi.
Und diese Applikationsbereitstellung ist immer auch plattformindependent gedacht gewesen.
Also die Pakete können heute 32-bit, 64-bit.
[22:51] Und auch ARM-Applikationen in einem MSIX-Bundle oder AppX-Bundle enthalten.
Wie gesagt, eigentlich dasselbe, nur dass Microsoft halt damals dazu gesehen hat, dass eben das AppX auch klassische Anwendungen bereitstellen kann und soll, damit eben die Hersteller auch in den Store gehen und von dort aus ihre Applikationen verteilen.
Also der Store war eigentlich immer so der Vordergrund und das entwicklungstreibende Element.
Heute ist es Windows Virtual Desktop.
Microsoft empfiehlt halt heute MSIX und App Attached für Windows Virtual Desktop, bis die Anwender dann feststellen, mit der Kompatibilität ist es nicht so toll.
Gibt dann auch keinen Anbieter, der den Anwendern beibringen kann, wie man die Sachen doch kompatibel machen kann. Da gibt es eine ganze Menge Möglichkeiten.
Aber wenn ihr nach dem Thema MSRX und MSRX Training sucht, ich glaube, da findet ihr nur zwei, drei Unternehmen und eins davon ist meins.
Ja, dazu haben wir eine Demo mitgebracht. So auf die Schnelle.
Aus Zeitgründen haben wir ein bisschen Feenstaub versprüht.
[23:50] Und nochmal auch da wieder der Ansatz, Anwendungen eben in diesem Kontext auch wieder benutzerzentriert bereitzustellen.
Es benutzerzentriert oder auch applikationsbasiert, es geht beides, aber in der Regel will man halt, dass die Anwendung am Benutzerprofil hängt.
Das gelingt da nicht ganz so toll wie mit App-V, aber es geht, man weiß wie. Geht los.
Okay, ja, ich erkläre hier ein bisschen was dazu. Es gibt ein ganz interessantes Goodie, Schnellerstellung, hier oben im Hyper-V, das auf jedem Windows Windows 11 Client installiert und dann kann man hier unter anderem ein Paket finden, Windows 10 MSIX, Packaging Environment und das kann man sich hier quasi automatisiert installieren lassen. Ihr seht, ich habe eine exzellente Bandbreite, also ich muss hier mal die Uhr ausblenden. Das ist also nicht ganz das, was es sein soll, aber wir haben das ein bisschen komprimiert, das Video, um das zu zeigen.
Also hier kann man sich tatsächlich ein komplettes Paket teilen.
[24:47] Komplette Paketierungsumgebung herunterladen und auch recht schnell installieren.
Vielleicht jetzt nicht ganz so schnell wie hier in diesem Video.
Und dann ist man schon in der Lage, solche Pakete zu bauen. Und diese Pakete kann man unter anderem mit PowerShell, mit AddAppX Package auf dem System bereitstellen.
So, genau. Das ist jetzt hier nochmal ein bisschen beschleunigt.
Du hast das schon festgestellt, der Andreas ist ein schneller Tipper und muss einen superschnellen PC haben.
Also das ist quasi so in 20 Jahren, guck mal, so die Vorschau.
Verpacken von Anwendungen mit digitaler Signatur
[25:22] Hier sieht man unter anderem das SelfSign Package, was ich da drauf, SelfSign Certificate, was ich jetzt hier auf den Desktop packe.
Eine der Voraussetzungen für die Art der Paketierung ist, dass man alles digital signiert.
Und das mache ich mit dem SelfSign Zertifikat. Für meine Kunden habe ich auch ein gekauftes, habe ich gerade erst erneuert von Certum.
Ja, paketieren werden wir hier in 7-zip, Einfach, weil es ein sehr kleines Tool ist und weil ich zeigen möchte, dass mittlerweile eben auch bestimmte Sachen funktionieren, die lange Zeit nicht funktioniert haben.
Das geht dann auch relativ schnell. Erst wird das System vorbereitet hier.
Hier oben sieht man den MSIX Packaging Driver, den zeigt er ja jetzt installt.
Der kommt tatsächlich als Optional Feature daher.
Das heißt, der wird nicht über dieses MSIX Packaging Tool verteilt, sondern kommt quasi über eine andere Schiene.
Also wenn man sich das MSI Expecting Tool aus dem Store holt, dann...
[26:14] Installiert er sich halt den Treiber von einer anderen Quelle.
So, hier sieht man, ich wähle das Signaturzertifikat aus, das Self-Signing-Certificate, gebe das Passwort an.
Hier noch ein Timestamp-Server, ganz wichtig, wenn die Pakete auch nach Ablauf des Zertifikats laufen sollen, muss man ein Timestamp-Server angeben.
Ich habe jetzt hier von meinem gekauften Zertifikat mal die Zertum.pl genommen.
Im Grunde ist es egal, welchen man dann nimmt. Also wie gesagt, es muss halt nur digital signiert sein.
Der Name ist auch egal. Was wichtig ist, ist dann wiederum hinter hier der Publisher Name.
Der muss dem Zertifikat entsprechen, sonst kann es nicht signiert werden.
Versionsnummer kann ich im Grunde auch fast alles eintragen, was ich möchte.
Die letzte Nummer ist gesperrt.
[27:04] Das ist dadurch storekompatibel. Das heißt, dieses Paket, wenn es dann mit dem offiziellen Zertifikat signiert wäre, könnte ich auch in den Store hochladen und da veröffentlichen.
Aber ich kann es auch freigeben, gerade so, wenn ich ein Chrome zum Beispiel, paketiere, der hat immer Standard Microsoft Versionsnummern und dann hätte ich gern vier Stellen.
Und im Grunde diese Pakete hier, die sind für den Kunden, die sind für Windows Virtual Desktop Umgebung und da brauche ich sowas nicht.
So jetzt starten wir hier das Ganze auch nochmal. Haben wir jetzt installiert.
Also hier läuft die Installation, die Paketierung.
Haben wir einmal gestartet das Ganze, damit die entsprechenden Komponente registriert werden.
Hier ist der userspezifische Teil, der hier nochmal einmal mit aufgezeichnet wird, ist eine vorher-nachher Aufzeichnung, also ein Snapshot-Verfahren und jetzt wird das eigentliche Paket gebaut.
Services hat er nicht gefunden deswegen passiert hier auch nix und das Paket ist hier jetzt auch schon fertig also es ging zum 7-zip blitzschnell.
[27:59] Jetzt können wir es auch schon einmal ausprobieren. Also wir hatten jetzt zwei Möglichkeiten, aber ich habe das hier auch noch mal mit aufgezeichnet, wie es getestet wird.
[28:08] Installiert wird das hier per Doppelklick in dem Video. Und die Komponente, die das macht oder die es ermöglicht auf dem Windows 11 System ist der App-Installer.
Und der App-Installer hat eine ganz interessante zweite Funktion, die der Thorsten dann gleich wieder zeigen wird.
Da wird es dann spannend. Also hier kann ich halt das MSIX Paket oder auch ein Apex Paket per Doppelklick installieren.
Dann ist es hier auf meinem System drauf.
[28:33] Übrigens brauche ich keine administrativen Rechte, da reichen Anwenderrechte für. Und ich kann es genauso einfach wieder runterschmeißen.
Ihr seht mir jetzt das Kontextmenü ist da von 7-Zip. Das 7-Zip ist einsatzfähig, und die Anwendung ist hier an der Stelle auch schon bereitgestellt.
MSIX ist jetzt quasi für euch in 5 Minuten auf die Schnelle.
Länger hat das Video nicht gedauert.
Erklärt. Also das Paket ist bereitgestellt. Oft geht es nicht ganz so leicht. Da muss man nämlich dann im Paket auch Schims einbauen. Soll jetzt aber ein relativ großes Update kommen. Gerüchteweise habe ich zumindest von, Microsoft Kollegen in München gehört. Mit 23 H2 kommen dann eine ganze Menge Erweiterungen, die dann auch wiederum ganz viele Kompatibilitäten direkt über das Manifest innerhalb des Pakets ermöglichen, sodass dann die Bereitstellung ein bisschen leichter wird für größere Umgebungen. Und wie gesagt, in Azure Virtual Desktop, haben wir noch eine Funktion, die nennt sich App Attach, wo wir dann diese MSIX-Pakete in eine virtuelle Festplatte hinein installieren.
Diese virtuelle Festplatte muss dann einfach nur ins System ran gemountet werden, sodass dann Installationszeiten auch entfallen. Das heißt gerade für Terminal Services wiederum sehr interessant.
Aber.
[29:44] Weiß kaum einer was von, hat sich auch noch nicht so richtig quasi durchgesetzt, das Ganze.
Und wenn app wie schon kaum einer gekannt hat mit MSRX, sieht es da eher noch schlimmer aus.
Aber wie gesagt, ich bin da zuversichtlich, dass da jetzt einiges passiert.
Ich weiß auch, dass da an einem größeren Konvertierungsprojekt wohl gearbeitet wird.
Wir haben da den Kollegen von Microsoft in München Pakete bereitgestellt für diesen Konverter.
Also da können wir uns überraschen lassen.
Das wird auf jeden Fall noch mal spannend.
Und wenn die Anwendung läuft, wie gesagt, läuft die gekapselt, läuft in der eigenen virtuellen Umgebung und kann auch genauso schnell wiederum deinstalliert werden, indem man dann über Start, über Startmenü geht, rechte Maustaste, uninstalliert, ist es weg.
Also wird vom Anwender installiert und kann auch genauso schnell wieder deinstalliert werden.
[30:32] Also so in der Kürze MSIX. Was ist mit der Windows-Lizenz?
Keine. Also das ist das Interessante daran, dass mit der Home Edition läuft das schon.
Also ja, im Grunde sind das die gleichen Pakete, nur eben, dass die so ein bisschen Erweiterung drin haben, aber das Format wird, also ist das gleiche wie für AppX, also heute. AppX sind die Windows, Modern Windows Application, Universal Windows Plattform, ist die gleiche Lizenz. Das Ding kann mehr. Und Microsoft hat das marketingtechnisch einfach mal irgendwann MSIX genannt. Man muss es ja verkaufen, das Ganze. Und das macht es auch interessant. Also wir haben da Kunden gerade so im schulischen Umfeld, Universitätsbereich.
Wir sind da ganz begeistert von, weil ich eben auf einfachste Art und Weise, ohne dass ich noch Lizenzkosten habe, Applikationen verteilen kann.
Die kann ich auf den USB-Stick mitgeben, die kann ich aus dem Internet direkt über ein Portal oder so herunterladen.
Da gibt es schon tolle Lösungen, die man da nutzen kann.
Einfache Nutzung ohne Lizenzkosten für Softwareeinsatz
[31:36] Was gibt es da noch zu erzählen? Also, wenn man es einsetzen möchte, hat man da sehr, sehr viele Einsätze und ich brauche keine Lizenzkosten zu fürchten.
Im Gegensatz dazu, wie brauche ich Enterprise, eine Enterprise-Lizenz oder einen Server, bevor ich es einsetzen kann?
Das funktioniert hier auch schon in der Home Edition.
Was bei all diesen Themen sich immer wiederholt, ist, dass die eigentlich interessante Zielgruppe an der Stelle Totermann spielt, nämlich die Softwarehersteller.
Also, wenn man sich jetzt anguckt, haben denn die ganzen Softwarehäuser Paketoptionen für Technik X, Y, Z, bietet Adobe von Haus aus MSI X-Pakete an oder vielleicht ein Manifest für Winged und so weiter, da werden wir gleich noch drauf kommen.
Das ist oft das wirkliche Problem. Aber was hoffentlich als roter Faden ankommt, ist dieser benutzerzentrierte Ansatz.
Der schwebt über alledem.
Denn auch hier steht wieder, das kommt halt aus der Citrix-Welt, aus der Terminal-Services-Welt, da steht wieder der Benutzer und nicht die Maschine im Fokus der Aufmerksamkeit.
Also genau konträr zu dem, was die meisten von uns im Kopf haben, wenn wir an Verwaltung.
[32:45] Reden, über Softwareverwaltung reden.
Wenn wir jetzt ehrlich sind miteinander, der beste Computer, den ich besitze, ist mein Smartphone.
Und was bedeutet der beste? Naja, wenn ich mir angucke, Stromaufnahme versus Leistung, die da rauskommt, wenn ich mir angucke, wie sicher ist so ein Gerät, wie einfach ist es zu bedienen, da habe ich, kann ich für mich sagen, kein besseres Gerät als mein Telefon. Und dass man natürlich aus dieser Welt dann die Anleihen nimmt, da ist alles benutzerzentriert, ist nachvollziehbar. Und ich fange jetzt nicht mit Abo-Diensten aka Cloud an, weil das kann sich jeder zu Ende denken, wo das Sinn macht für den Hersteller. Ja, der dritte Teil ist natürlich das, was so ein bisschen plakativ draußen vorstand warum wahrscheinlich hier viele hier sind. App-Installer!
[33:32] App-Installer, diese Sideloading-Applikation, war schon lange da, als Vinget hinzukam.
Und es gehört zu diesen großen Mythen, warum?
Warum gehört das zusammen? Das passt doch überhaupt gar nicht zusammen.
Und da sind wir jetzt bei den vielen, vielen Missverständnissen.
Ich fange mal an, ohne dass ich mich jetzt komplett wiederholen will.
Ich muss kurz dazu sagen, ich habe schon häufiger Vorträge darüber gehalten, unter anderem auch einen hier in Hannover.
Da gibt es ein Video von, das ist verfügbar.
Und wer ja so ein bisschen Basics kennenlernen will, dem kann ich sehr dieses Video empfehlen.
Und zwar nicht, weil ich so ein toller Typ bin, sondern weil ich all die Sachen da erklärt habe, die ich jetzt nicht noch ein zweites Mal erkläre, sondern ich würde gerne die Neuerungen und ergänzenden Dinge jetzt heute dazu beitragen.
Aber eine Sache will ich kurz wiederholen, weil ich es gar nicht oft genug erklären kann.
Im innersten Kern ist Vinget eine abgekupferte Idee, lasst es mich so sagen.
Dieser junge Mann, Kewan Beji, einer meiner Hauptdarsteller, hat sowie Scoop auch, sowie Chocolaty, eine weitere Lösung gebaut, vor einigen Jahren, ganz alleine interessanterweise.
Und die hieß...
[34:44] UpGate, sage ich das jetzt richtig? Und hat die unter eine MIT-Lizenz gestellt.
Und wenn man das jetzt höflich ausdrückt, Dann kann man sagen, die Entwickler bei Microsoft haben das gesehen, fanden das klasse und haben dieses Konzept übernommen.
Interessanterweise haben sie tatsächlich das Konzept, aber nicht die Software übernommen, was man schon daran sieht, dass seine Software in C-Sharp programmiert war und aus Gründen, zu denen ich gleich komme, ist Wingate in C++ programmiert, was einen vollkommen vielen Rückschritt, aber dafür gibt es einen guten Grund.
Entscheidend ist, und das eint dann natürlich seine Idee mit den Vorzügen, die Winget heute.
Winget - Eine Lösung ohne arbiträren Code
[35:27] Entscheidend ist, dass Winget genau wie seine ursprüngliche Lösung ohne arbiträren Code auskommt.
Das heißt, im Gegensatz zu Scoop, im Gegensatz zu Chocolaty, funktioniert Winget vollkommen ohne irgendwelche Skripte.
[35:41] Und das heißt für dich in deiner Firma, wenn du ein sogenanntes Manifest herunterlädst, wenn du Winget benutzt, dann führst du den Code aus, der zu Winget gehört, aber du führst nicht irgendwelche Skripte aus, die irgendjemand bereitgestellt hat.
Das ist irgendjemand, da sind wir jetzt wieder bei dem, was wir gerade hatten mit Open Source, so positiv viele von uns Open Source sehen.
Ich kenne jede Menge Kunden, die sagen, ja, okay, und wer garantiert mir Doppelpunkt?
Naja, ich sage dann immer zurück, und wer garantiert Ihnen das in der gekauften Software alles?
Aber es ist natürlich ein Argument, dass man sagt, da muss man auch ein bisschen vorsichtig sein.
Und deswegen war von vornherein seine Idee, wir verzichten auf Code, sondern wir nehmen einen deklarativen Ansatz, so wie das übrigens du auch gemacht hast in dem Ansatz, und wir beschreiben nur in Form von YAML-Dateien, in dem Fall, du hast das damals mit XML gemacht, wir beschreiben, wo kann man ein Paket herunterladen, was für einen Modus braucht der, welche Einstellungen brauchen wir da, und dann bauen wir das. Und ihr seht, er hat damals sehr provokant formuliert, er hätte das nur entwickelt, weil Schokoladetheorie so Mist ist und sein, Mein Hauptkritikpunkt neben diesem Ansatz des arbitraren Codes war, dass.
[37:01] Und jetzt, Achtung, wem das bekannt vorkommt, bei Chocolaty gibt es immer Project Owner.
Jede einzelne Software, die da bereitgestellt wird als Paket, hat einen, dem das gehört, dieses Installations-Skript, nämlich der, der als erster da war.
Und ein großes Problem in der Chocolaty-Welt ist, dass, wenn ich das jetzt mache und übermorgen habe ich darüber gesprochen.
[37:21] Dann verweisen diese Installations-Skriptien.
Und dann ist es in Chocolaty relativ kompliziert, bis mir das einer wegnimmt, weil das ja offen sein will.
Und die Leute einem dann nichts aus der Hand reißen.
Und deswegen, das hat ihn damals extrem gestört. Und da hat er gesagt, das kann man anders machen.
Das muss man anders machen.
Und heute, wenn wir über Winget reden, ist das im Prinzip eins zu eins, was er damals entwickelt hat.
Als Microsoft das übernommen hat, diese Idee, haben sie aus merkwürdigen Gründen.
[37:52] Das Ganze neu implementiert und haben das einfach seitlich angeflanscht an den App-Installer, Und haben das dann App-Installer-CLI.exe genannt.
Das heißt, wer diesen Vortrag von mir hört, der schon ein bisschen älter ist, da werde ich erklären, dass das eigentliche Executable App-Installer-CLI.exe heißt.
[38:12] Das haben sie dann irgendwann umbenannt. Und jetzt wisst ihr, was mit Scott Hanselman damit zu tun hat, denn der hat das zu verantworten.
Der hat im Austausch mit dieser Produktgruppe gesagt, Leute, ihr habt sie nicht alle, da kann kein Mensch was mit anfangen.
Ihr müsst einen knackigen Namen nehmen.
Und so ist Winget entstanden.
Das heißt, sein Beitrag dazu ist, dass er das Ding quasi durch den Vorschlag der Umbenennung so einen kleinen Boost gegeben hat, fand ich sehr interessant. Woher weiß ich das?
Ich weiß das daher, weil ich längere Gespräche mit diesem jungen Mann hatte, Demetrius Neeland, ein, wie ich finde, ganz toller, interessanter Microsoft-Mitarbeiter, der spät zu diesem Projekt gekommen ist und der jetzt der Teamleiter, sag ich mal, der Projektleiter, der Hauptverantwortliche für Wingate ist.
Der macht in meinen Augen wirklich eine exzellente Arbeit, weil er gleichzeitig so diese totale Loyalität zu seinem Arbeitgeber verströmt. Das heißt, man muss immer genau hinhören, weil natürlich alles positiv formuliert wird.
Aber wenn man ihm folgt und er spricht ein gutes Englisch, dann hört man eben an dem, was er nicht sagt, sehr genau, was er nicht so toll findet.
Und welche Sachen er denkt, das sind Challenges, da kann man Sachen anders machen.
[39:28] Vielleicht kennt der ein oder andere das Interview. Ich habe das auf meinem Podcastkanal veröffentlicht.
Es gibt dazu ein Video, das seht ihr jetzt heute zum ersten Mal.
Einen ganz kurzen Ausschnitt.
Und das ist jetzt natürlich so ein bisschen shameless platt, weil ich hier Werbung mache für meinen blöden Podcast.
Aber ich sage das, auch wenn das jetzt Raimund das Interview geführt hätte, würde ich das mindestens genauso bewerben.
Weil es geht nicht um mich, es geht um ihn. Ich habe nur die Fragen gestellt.
Das Gespräch geht relativ lang. Ich habe eine kurze zwei Minuten, drei Minuten mitgebracht, die besonders interessant sind, um das Ganze hier rund zu machen, denn...
Der Elefant im Raum ist, warum bitte haben Sie das in C++ programmiert?
Jetzt kann man natürlich sagen, die Entwickler konnten halt C++.
Jetzt würde ich davon ausgehen, dass in Redmond die Entwickler auch C Sharp können oder irgendeine andere Sprache, die vielleicht etwas geeigneter zu sein scheint.
[40:17] Aber der Witz ist, es ist nicht 100 Prozent überliefert, aber es scheint so zu sein, dass der ursprüngliche Ansatz war, dass man eine Paketverwaltung für den Nano-Server haben wollte.
Und deswegen musste man auf die unterste Ebene zu runtergehen, auf eine COM-API, weil in dem Nano-Server ist nicht viel, wo du dich dran andocken kannst.
Und deswegen hat man das seinerzeit, um an die COM-API, also Technik aus den 90ern, da.
[40:43] Ranzukommen, hat man das in C++ programmiert.
Der Witz ist, dass schon bevor er ins Unternehmen kam, war dieser Entwurf längst Geschichte.
Und die sind dann hingegangen und haben den extrem gegenteiligen Entwurf verfolgt.
[40:57] Anstatt das für den Server weiterzuentwickeln, was vermutlich der ursprüngliche Ansatz war, haben wir den Server komplett weggelassen und entwickeln heute ausschließlich für den Client, was viele von uns ärgert, warum wir, Andreas und ich, immer uns den Spaß machen, ein Skript zu aktualisieren, das werdet ihr wiederfinden in den Repositories hierzu, womit, man Winget auch auf dem Server installiert bekommt, einfach immer als Proof of Concept, dass das geht und dass man sieht, Microsoft will das nicht, die können das nicht, die, wollen das nicht. Und warum sie das nicht wollen, erklärt er in dem Interview. Aber der interessantere Punkt ist, und Sie kennen sich ja natürlich so ein bisschen die Zeit davon, deswegen kommen wir jetzt hier an der Stelle zum letzten Teil. Der interessantere Punkt ist, warum gibt es eigentlich keine PowerShell-Commandlets? Dazu sagt er was, denn ja, es gibt sie mittlerweile. Aber jetzt, müsst ihr genau zuhören, was er über die Qualität der PowerShell-Commandlets sagt. Und dann könnt Wie viele Minuten wir noch haben, da kommen wir zum Ende.
Das ist aber der Architektur geschuldet, muss man sagen. Also das Winget läuft ja in einer virtuellen Blase.
Das muss man sich überlegen. Das ist ja ein Universal Windows App, läuft in einer virtuellen Blase, läuft in einem Container.
Und das soll jetzt plötzlich über ein PowerShell gerappt werden.
Also das ist das Problem dabei.
Also deswegen auch überhaupt überkommen, das PowerShell Modul.
Also ich will jetzt nicht zu viel erzählen, Aber das wollte ich noch loswerden.
[42:25] Wenn wir Glück haben, startet es an der richtigen Stelle. Aber ich habe da so einen dicken Hals auch, wenn ich das ganze Thema da tiefer betrachte.
Aus Ihrer Sicht, wie matur ist das PowerShell-Modul heute?
Ich würde es fast alpha betrachten.
Wir veröffentlichen es ohne die Prerelease-Flags. Das ist, weil das DSC-Modul eine Abhängigkeit hat.
Und wir konnten kein Prerelease-Package haben, das auf ein anderes Prerelease-Package abhängig ist.
Ich denke, es ist momentan 0.2.1 und wenn Sie sich mit Semantic Versioning kennen, was ich hoffe, dass Sie es sind, wenn nicht, dann gehen Sie zu Simver.org.
Sie werden realisieren, dass, seit wir mit einem 0 in der primären Position leiten, das ist unstabiles Software.
Es wird nicht so wichtig sein, welche Versionen wir danach machen.
Herausforderungen bei Breaking Changes in der Entwicklung
[43:17] Nach den Semantic Versioning-Versionen.
I can make breaking changes in every single version that we ship.
I would try not to do that as much as possible. Because when you rename things or you add constraints that are breaking, that's really challenging.
And it makes it harder for the consumers of that application from a dependency management standpoint.
But what I'm really looking for is for people to tell me, Ob wir die richtigen Namen auf den Namen und Verben und die Kommandos bekommen, ob wir die richtigen Objekte bauen, damit die Dinge, die man erwartet, die Pipe und Chaining-Dinge, so verhalten, wie man es erwartet.
Und was wir gelernt haben, ist, bis wir es in die Galerie eingeschickt haben, werden wir wirklich nicht viel Feedback bekommen.
Auch wenn es die Komplexität und die Verwirrung gibt, dass wir es nicht vor der Veröffentlichung markieren, Ich denke, wir bekommen den Vorteil, dass mehr Leute es benutzen und wir bekommen mehr Feedback.
Fragen zu Code-Beispielen und PowerShell
[44:40] Die nächsten Vorträgen. Das müssen wir gleich beim kalten Getränk draußen klären, denn wir haben, jetzt die Viertelstunde, die man uns geklaut hat, auch schon wieder hinter uns. Das heißt, wir müssen jetzt hier zum Ende kommen. Ich habe natürlich eine Reihe von Code-Beispielen mit gebracht zu der PowerShell. Die packe ich mit in das Repository. Wer dazu noch Fragen hat, kann uns natürlich gleich beim Bier auch nochmal. Ich zeige das gerne, nur ich will jetzt den nachfolgenden Sprecher hier nicht die Zeit klauen.
Die Formulierung, it is barely alpha, die ist wirklich nett formuliert.
Dieses Modul ist im Moment so kaputt, es läuft nicht mal unter Bauschell 5, aber das ist kein Feature, sondern es funktioniert einfach nicht.
Da gibt es ein langes Issue im Moment für.
Alleine die Benennung dieser Commandlets, und da erzählt er ganz viel zu, und ich kann das vollkommen nachvollziehen, das ist ein Riesending.
Du würdest ja zum Beispiel meinen, dass ein Paket zu finden aus diesem Repository ist so etwas wie Get Windows Package.
Ja, weit gefehlt ist das Find-Windows-Package, aber es gibt ein Get-Windows-Package.
Und bis man herausgefunden hat, wo die Unterschiede zwischen diesen Commandlets sind, dann entdeckt man auf einmal, wie anspruchsvoll diese Idee der PowerShell für den Entwickler ist, nämlich Dinge einfach zu machen.
Die richtigen Namen zu finden, wir lachen darüber, kann wirklich herausfordernd sein.
Und der Ansatz von WinGet an der Kommandozeile mit diesen Subcommands ist dann natürlich ein vollkommen anderer.
[46:01] Semantic Versioning, Semver.org, guckt es euch an und vergleicht das mit der Nummer von dem Apple Stellar PowerShare Commandlets und ihr werdet wissen, was er damit meinte. Ja, wir sind noch einmal zurück, hier auf dem Testsystem und jetzt in der gebotenen Kürze ganz gerne noch mal ein paar interessante Neuerungen zeigen, damit das nicht so theoretisch bleibt. Ich habe ein ein bisschen was mitgebracht. Versuch das jetzt mal.
Vorsicht bei der Verwendung von Winget in der ISE
[46:30] Einmal kurz und effizient zu zeigen und ich starte noch mal, werde ein bisschen wortbrüchig bei den Basics. Ich sagte ja, ich will mich ungern wiederholen, aber vielleicht noch ein, zwei Bemerkungen vorneweg, damit das klar ist, falls jetzt jemand in dem Thema noch nicht so drin ist. Punkt eins, man sollte vorsichtig sein, wenn man Winget in der ISE benutzt. Das funktioniert nicht sauber, das startet beim Encoding und geht dann darüber, dass wir immer dann mit Native Probleme haben in der ISE, wenn die so einen interaktiven Modus haben, also Nachfragen stellen etc. Ausnahmsweise kann man das hier mal machen, weil ich ja noch kein Visual Studio Code installiert habe und das auf diese Art und Weise dann glaube ich hier in der Präsentation besser lesbar ist.
Wenn man WinGad aktualisiert hat, das macht man über den Store, über die App Installer Software.
[47:24] Dann sollte man das irgendwo im Dateisystem befinden und zwar ganz genau hier und man, sieht das liegt im Benutzerprofil. Was daran jetzt interessant ist, ist dass wenn ich den Befehl hier mal in einer neueren Version der PowerShell starte, dann sieht man mit ein bisschen Glück, dass das ein sogenannter AppExec Alias ist, also eine Umleitung im Dateisystem, die von einem benutzerbezogenen Pfad umleitet auf einen System Waltenpfad. Das sind genau die Kunstgriffe, die über diese Store Applikationen dann eben möglich beziehungsweise notwendig sind und interessant ist, dass man das hier in der PowerShell 703 auf eine sehr einfache Art und Weise sieht. Ich Ich komme gleich dazu, dass das nicht immer so ist.
Programminstallationen ohne administrativen Zugriff möglich
[48:13] Wenn man dann so ein Programm wie VSCode, wahrscheinlich eine der ersten Geschichten, die wir installieren, wenn wir das uns dann hier dazu holen, dann wird auch hier wieder sichtbar, dass es mittlerweile eine Reihe von Programmen gibt, die keine administrativen Berechtigungen erfordern, die das optional machen.
Und wie man jetzt hier sehen wird, es wird die VSCode-Installation hier sauber durchlaufen.
Der installiert sich per Default im User-Mode. Kann man über Minus-Minus-Scope-Machine anpassen.
Wenn man das als Parameter übergibt, dann wiederum bräuchte man natürlich Adminrecht.
[48:46] Ich glaube wir glauben, dass das sauber funktioniert. Ich bleibe der Einfachheit halber hier kurz in der Ise und zeige noch eine letzte Geschichte, die man unbedingt einrichten sollte. Wenn man hier mit Wingate arbeitet, dann wäre es natürlich ganz schön, wenn man diese Subcommands, diese Subcommands, wenn man die Auto vervollständigen könnte. So und ich versuche das mal. Ich drücke den Tabulator. Müsst ihr mir jetzt glauben, dass ich das tue und ihr seht, da kommt nichts. Das kann man aber sehr leicht ändern, indem man einfach einen Agilement Completer aktiviert.
Das ist gut dokumentiert auf den Hilfeseiten von Vingert. Und wenn ich jetzt das nochmal wiederhole, zweiter Versuch, dann seht ihr, das hat tatsächlich funktioniert. Und damit drückt die Arbeit in der PowerShell mit einem Native Command doch schon sehr sehr nah ran an die Benutzererfahrung, an den Komfort, den wir mit einem Commandlet verbinden, so dass wir Commandlets dann vielleicht nicht mehr ganz so stark vermissen und uns ganz gut mit den Native Commands anfreunden können. Den, Argument Completer kann man natürlich in Profilartei packen, brauche ich jetzt glaube ich nicht im Detail zeigen und dann steht er einem immer zur Verfügung. Was dann eigentlich nur noch fehlt.
[50:04] Die Rückgabe von Objekten, dass also Winget anstelle von Text uns strukturierte Daten zurückgibt. Und diese Diskussion wird durchaus auch geführt. Ich habe auch das in meinem Interview mit Dimitrius Mielen angesprochen. Und da rennt man offene Türen ein. Das ist durchaus eine Idee, dass man dort zum Beispiel JSON-Dateien zurückgeben kann, wie man sehr, sehr einfach in Objekte umwandeln kann. Schauen wir mal, was die Zukunft bringt.
[50:29] Jetzt das erste was wirklich komplett neu ist das sogenannte pinning application pinning wozu dient das es mag ja sein dass man vielleicht mal eine spezifische version einer applikation braucht ich mache das hier mal mit der powershell 722 und vielleicht hat man nur eine lizenz für diese variante oder es gibt irgendwelche sonstigen gründe kompatibilitätsgründe wenn wir jetzt mit WinGetUpdates fährt, läuft man natürlich immer Gefahr, dass mit WinGetUpdate-All das alle Anwendungen aktualisiert, wenn auch genau die, wo man ein Problem damit hat. Hier sieht man jetzt sehr schön, diese Installation der PowerShell braucht Admin-Rechte, deswegen hakt danach und jetzt gleich sollte dann neben der Variante, die ich schon über Scoop installiert habe, noch eine neuere PowerShell-Version kommen. Das gleiche, wir gucken uns das gleiche noch mal an.
Stoße ich schon mal im Hintergrund an für die Powertoys. Auch hier kann man wieder gucken was ist gerade aktuell 0.7.4 und wenn ich dann eine spezifische Version habe auch hier installiere ich die mal während ich jetzt im Vordergrund eine Kleinigkeit zeigen will und zwar wir hatten ja gerade die Geschichte hier mit dem App Execution Alias und ich hatte gezeigt dass wir dort, dass wir dort.
Neue Version der PowerShell (7.2.2)
[51:57] Sehen können worauf das zeigt. Ich hoffe jetzt mal diese neue Version der PowerShell hier auf, und wir gucken mal rein. Das ist jetzt die Version 7.2.2 und wenn ich jetzt den Befehl hier fallen lasse, Zweiter Versuch. Während im Hintergrund lustig die PowerToys installieren. Was immer der Erda so lange macht, finde ich auch spannend, aber gut, Lassen wir ihn das im Hintergrund machen.
[52:20] Und dann sieht man sehr schön, ich habe hier eine neuere Version der PowerShell, eine aus der 7.2er Variante und die zeigt das nicht mehr an. Also das ist so eine kleine Anekdote, wo ich mir denke, das ist relativ unschön. Der Hintergrund, ich hatte Steve Lee mal darauf angesprochen, warum sie das wieder rausgenommen haben, ist so eine Mischung aus ungeklärte Rechteverhältnisse der Bibliotheken, Private IPIs, naja und dann ist es halt so gewesen, dass man in neueren Versionen der PowerShell dann diese Funktion zur Anzeige wieder rausgenommen hat. Was natürlich unschön ist, weil hier so ein Pfeil zu haben, der dann ins Nichts zeigt, ist blöd.
Aber damit sehen wir dann eben auch einmal mehr. Es gibt halt gute Gründe, warum man vielleicht noch mal eine ältere Version braucht. Da bietet sich jetzt sowas wie Scoop natürlich wesentlich besser an, weil man da Dinge entspannt parallel installieren kann. Weil genau dafür ist das gemacht. So, jetzt kommen wir nochmal zurück. Die Powertoys sind mittlerweile auch installiert und jetzt gucken wir uns mal an was heißt dieses pinning wenn ich jetzt hier unten einfach mal schaue, welche Updates gibt es.
Anwendungen blockieren und PowerShell 7 Probleme
[53:29] Dann sollten mir mehrere anwendungen gezeigt werden an der stelle und dann sieht man ok dafür gibt es neue versionen und jetzt kann ich hingehen und kann sagen ok ich möchte ganz gerne dass das hier geblockt wird und dann sieht man ok der hat das hier gefunden jetzt kann man mal in die pin liste gucken ich hatte vorher da schon mal ein bisschen mit rum experimentiert und dann sieht man ach ja guck mal hier da blockt er die PowerShell 7 das hat er jetzt offensichtlich noch nicht angenommen oder noch mal ein achso jetzt weiß ich wo mein fehler ist ich hatte jetzt ausversehen die, PowerShell geblockt und nicht die PowerToys ok so schnell kann man sich vertun aber egal und sehen wir wenigstens worum es geht also ich hatte jetzt zwei applikationen in diese liste aufgenommen.
[54:25] Und jetzt sieht man, diese beiden Elemente sind jetzt vor Updates geschützt. Wichtig dabei immer, dass man hier Minus und Minus vorschreibt, damit er das auch wirklich berücksichtigt.
[54:36] Wenn man jetzt ein Get-Update macht, dann sieht man, okay, hier wir haben noch ein Update oder Upgrade und zwei weitere wären zwar auch Kandidaten, aber die haben wir jetzt geschützt mit diesem sogenannten Pinning. Also eine sehr sinnvolle Zusatzgeschichte. Kommen wir zu dem eigentlich interessanten teil nämlich zu dem kleinen module und das soll jetzt hier auch tatsächlich der abschluss sein barely alpha haben wir gerade gehört also nach aussage von dem jps nielen sollte man da ganz ganz ganz ganz vorsichtig sein die powercell version findet sich unter dem schönen namen microsoft winget client und da es mehrere module gibt die sich mit dem thema wenn geht beschäftigen muss man noch vorsichtig sein dass man aufs richtige erwischt haben schon einige kollegen vorher erweiterungen geschrieben wenn ich das jetzt installiere ich mache das hier zum ausprobieren mal ins benutzerprofil dann sehe ich hier okay da ist was ich kann das versuchen zu importieren das sieht soweit ganz gut aus und ich habe eine ganze reihe von neuen elementen so soweit ganz gut auf den ersten blick scheint das alles zu funktionieren auch hier sehen wir sieht einigermaßen vertraut aus get win win get settings.
[55:58] Find win get package das wirkt alles auf den ersten blick relativ logisch rufen wir mal ein paar sachen auf und dann gehen wir mal hier zum beispiel in die settings hinein da muss man ein ein bisschen aufpassen, weil...
[56:12] Bei den Windows-Winget-Settings gibt es einige administrative Geschichten, dazu gehört das.
Da sieht man die Befehle an sich funktionieren, scheinen zu funktionieren, er sagt mir aber, er braucht Adminrechte dafür, okay, ignoriere ich das.
Und dann gibt es noch natürlich die Möglichkeit, den aktuellen Stand aufzurufen und dagegen gibt es dann noch die User-Frontend-Einstellungen, Also so Sachen wie, dass man zum Beispiel den Maschinen Scope als Default angeben möchte oder dass man die Progressbar ein bisschen aufhübschen möchte und ähnliches mehr. Das ist sehr gut dokumentiert auf dieser Webseite. Ich habe hier drüben nochmal so ein, zwei Beispiele mitgebracht.
[56:54] Also hier würde man jetzt sehen, damit kann man die Einstellung beeinflussen. Wenn man das jetzt ändern will alles was man tun muss ist dann hier auf der kleinen seite wenn der settings aufzurufen das wäre der klassische befehl und dann kann man diese jason datei ändern wie öffnet sich jetzt passenderweise direkt in versko kann die sachen da reinpacken aber ich wollte ja nicht so sehr darauf gehen eingehen sondern ich wollte auf die pauschal modul eingehen also diese beiden sachen bitte nicht verwechseln gucken wir mal an ob das denn auch mit der installiererei funktioniert und da sehen wir jetzt wenn ich das aufrufe einige befehle funktionieren andere befehle funktionieren wieder nicht fragt man sich natürlich ok also das wind an sich funktioniert aber was ist hiermit feindling package ja wenn man das ein bisschen recherchiert lernt man es.
[57:54] Gibt da ein problem und zwar ich kopiere das mal eben rüber und zwar lernt man wenn man ein bisschen recherchiert dass es mit der aktuellen version von windgate ein paar kompatibilität probleme gibt das heißt ich rufe jetzt mal diesen befehl der da gerade nicht funktioniert hat in der neuen version auf und dann sieht man also hier scheint das zu funktionieren zweiter befehl geht winget, Package suchen wir mal nach VSCode. Okay das scheint soweit zu funktionieren. Also um es kurz zu machen nehmen wir noch mal das hier als weiteres Beispiel und schließen das ganze ab. Also hier sieht man dann sowas wie Vivaldi und natürlich will man das dann auch installieren über die Pipeline.
[58:55] Und auch das mache ich wieder im User-Scope. Das wäre so meine Erwartung, wie das Ganze funktioniert.
Vorsichtig muss man hier sein mit so Verben wie find und get. Da kann man sich schnell verlaufen, aber das wird sich am Ende des Tages finden mit ein bisschen Erfahrung.
Entscheidend ist, dass man hier an sehr, sehr, sehr, sehr vielen Stellen merkt.
[59:16] Wie unfertig diese Commandlets sind. Und alleine die Tatsache, das ist jetzt sicherlich nur eine Momentaufnahme, dass es im Moment nicht PowerShell 5 kompatibel ist. Übrigens auch mit PowerShell 7.1 habe ich das auch nicht ans Laufen gebracht. Also wirklich nur mit den neueren Versionen der PowerShell 7 funktioniert. Das ist sicherlich keine Absicht, sondern man sieht, das ist Work in Progress. Und, was ich mir natürlich am Ende des Tages wirklich wünsche, wir sehen Vivaldi als Browser ist installiert und das soll dann hier jetzt auch das letzte das letzte sein was ich mir natürlich wünsche ist gar nicht so viel weil wenn geht an der kommandozeile mit dem argument computer funktioniert wunderbar aber sie mir natürlich auf jeden fall wünschen würde ist dass sowas hier funktioniert dass ich das ganze an auch radio weiter schicken kann und kann mir dann irgendwelche beliebigen Browser installieren, auf die ich Lust habe und dann hier einfach sagen ok und auf diese Art und Weise mit dem magischen Einzeiler kann ich dann, so wie ich das in der PowerShell erwarte, über die Pipeline x beliebig viele Browser Erweiterungen installieren. Also.
[1:00:28] Das soll es gewesen sein als kurzes Schmankerl. Alle Codebeispiele landen wie gehabt, wie angekündigt in den Repository zu dem Vortrag.
Abschließende Worte über den userzentrierten Ansatz
[1:00:39] Ja, und abschließend, ich glaube, und den Rest fähren wir dann beim Kaltgetränk, aber Andrea sollte auch noch ein abschließendes Wort sagen.
Ich glaube, woran wir uns wirklich gewöhnen müssen ist dieses Widewidewitt, ich mache mir die Welt, wie sie mir gefällt.
Ich glaube, wir müssen Realist sein, gegen die Hersteller kommen wir nicht an.
Und die Welt hat eindeutig, ganz offenkundig den userzentrierten Ansatz im Fokus.
Das heißt, wenn wir jetzt über Package-Management reden, dann können wir natürlich beklagen, dass Wingate viele von den Sachen, die wir gerne hätten, nicht implementiert.
Dafür können wir Store-Anwendungen bereitstellen, die euch alle nicht interessieren, wenn ihr den Store alle abschaltet.
Aber mein Schlusspunkt wäre, darüber solltet ihr noch mal nachdenken.
Also sich auf diese neue Welt einlassen und dann überlegen, was passt.
Und vielleicht ist dann MSIX oder so die bessere Plane. Ja, also definitiv.
Also ich finde den nutzerbasierenden Ansatz immer besser. Da gibt es ganz viele verschiedene Gründe dafür.
Zumindest wenn es richtig gemacht wird und auch wenn es richtig implementiert wird in der eigenen Umgebung.
Und da kommt heute auch nach wie vor ganz, ganz stark PowerShell ins Spiel, weil es bestimmte Werkzeuge einfach nicht gibt, die das so können.
Das heißt, man muss zumindest, wenn man MSRX einsetzen will, aktuell sehr viel drumherum skripten.
Und die Infrastruktur für App-V, zumindest die Infrastruktur für App-V, wird 2026 wegfallen.
Das wird also noch ein spannendes Thema.
[1:01:59] Ansonsten, wer da Fragen zu hat, ich stehe heute natürlich auch gern noch bereit.
Also ich werde auch bis zum Grillen bleiben, beantworte ich gern.
Und auf jeden Fall vielen Dank von meiner Seite für die Aufmerksamkeit.
Und der Link, muss man noch mal sagen, zu Raimund ist, ich habe es gerade schon angedeutet, es gibt jetzt das letzte heiße Ding, DSC und Winged wird verheiratet im Kontext von Intune und Ähnlichem.
Könnte das sehr, sehr, sehr, sehr interessant werden und darüber können wir dann nachher, noch mal drüber gehen. Vielen lieben Dank!