Softwarevirtualisierung mit App V 5 192Unser Buch "Softwarevirtualisierung mit App-V 5"

Das deutsche App-V 5 Buch: 496 Seiten Wissen zu Microsoft App-V 5 (5.1 bis HF6). Ab Windows 7 bis Server 2016 mit Zusatzinhalten zu App-V mit VDI, Terminalservern, XenDesktop und SCCM Mit Fragestellungen zum Contentstore, Skripting, Hochverfügbarkeit usw.

Profi-Haussteuerung

LOGO Profi Haussteuerung FinalProfi-Haussteuerung ist, Smart Home, Alarmanlagen und Videoüberwachung zu einer gesamtheitlichen Lösung zu vereinen. Das Herzstück hierbei bilden die Komponenten HomeMatic vom Marktführer eQ-3.

Profi-Haussteuerung

Auto-Sequencer App-V mit Windows 10 1703 auf VMware (Teil 1)

Eine neue Windows Version ist verfügbar und damit neue Funktionen für App-V in der Windows 10 Enterprise Edition. Eine neue Funktion ist der Auto-Sequencer. Das ist eine PowerShell Skriptsammlung, die einen Sequencer automatisiert erstellen kann und zusätzliche Funktionen enthält um in diesem Sequencer automatisiert zu sequenzieren.

image001

Weiterhin ist in dem ADK zu 1703 ein neuer App-V Sequencer verfügbar. Dazu ist inzwischen auch eine neue Version des ADK (Windows Assessment and Deployment Kit). Die Serverkomponenten, wie der App-V Veröffentlichungsserver müssen, wenn diese überhaupt eingesetzt werden sollen, noch immer über das MDOP heruntergeladen werden (Microsoft Desktop Optimization Pack).
In unserem App-V 5 Buch wird u.a. auf das automatische Sequenzieren von MSI Paketen auf einem Remotesystem eingegangen. Weiterhin, wie mit dem App-V Hydration Kit schnell und automatisiert ein Idealer Sequencer bereitgestellt werden kann. Mit dem neuen Windows Release sind für die Automatisierung des Sequenzierungsvorgangs einige Funktionen hinzugekommen, die ich hier insbesondere als Ergänzung zu unserem App-V Buch beschreibe.

Zunächst die Hyper-V Rolle auf dem „Host“ installieren. Hier ein Windows 10 Enterprise Version 1703

Als erstes vorweg. Das alles funktioniert nur mit einer englischen Windows 10 Enterprise Version (Host und Sequencer). Ich habe es zuvor mit einer deutschen 1703 Edition probiert und es gab Probleme bei der Imageerstellung. Aber dazu später mehr.
Ich nutze hier ein Windows 10 Enterprise auf VMWare Workstation (nichts gegen Hyper-V). Daher muss für die VM „Virtualize Intel VT-x/EPT or AMD-V/RVI“ aktiv sein damit der Client die Hyper-V Rolle installieren kann.

image002

Als Gast ist die angesprochene englische 1703 Windows 10 Enterprise zu installieren. Anschließend noch die VMware Tools und mit der folgenden Anweisung die „Hyper-V“ Rolle.

Enable-WindowsOptionalFeature -Feature 'Microsoft-Hyper-V-All' -Online 

Auf dem Windwos Hyper-V Host wird nun noch ein virtueller Switch "vswitch" konfiguriert

Hyper V vswitch

Nun muss das Windows 10 ADK auf dem Host abgelegt werden. Anschließend noch das ADK auf dem Host installieren. Dazu zunächst das adkSetup hier herunterladen:

https://blogs.technet.microsoft.com/ausoemteam/2017/04/06/download-windows-adk-for-windows-10-version-1703/ 
Und Anschließend das setup ausführen ADK und erst einmal alle Dateien laden ohne zu installieren (Download Funktion).

image003

Wir nutzen als Zielverzeichnis „C:\Temp\w101703ADK“.

image004

Anschließend sind die Installationsdateien in diesem Verzeichnis. Das ist zwingend notwendig für alle weiteren Funktionen.
Nun das adksetup unter „C:\Temp\w101703ADK“ aufrufen und den Sequencer sowie den Auto-Sequencer auf dem Host installieren.

image005

Nach der Installation des ADK gibt es die folgenden neuen „1703“ Befehle:

Connect-AppVSequencerVM Function AutoSequencer
New-BatchAppVSequencerPackages Function AutoSequencer
New-AppVSequencerVM Function AutoSequencer

Zu den genannten Befehlen sind PowerShell Module hinterlegt. Diese funktionieren nicht gleich nach der Installation des ADK, sondern müssen zuerst mit Import-module importiert werden. Das ist leider so nicht in der Dokumentation von Microsoft zu finden. Wenn ein Befehl nicht funktioniert, bitte wie folgt als Modul importieren:

import-module "C:\Program Files (x86)\Windows Kits\10\Microsoft Application Virtualization\AutoSequencer\New-AppVSequencerVM\New-AppVSequencerVM.psm1"

Eine VDH (Hyper-V Virtual Hard Disk) für den App-V Auto-Sequencer

Für die Erstellung des Auto-Sequencer wird ein Windows Basisimage als VHD benötigt.
Im Microsoft Blog https://technet.microsoft.com/en-us/itpro/windows/manage/appv-auto-provision-a-vm wird dazu auf das PowerShell Skript „Convert-WindwowsImage.ps1“verwiesen, welches aus einem Windows Datenträger eine selbstbootende VHD erstellt (inkl. Geräteerkennung etc.) Dieses Skript ist hier zu finden ist:

https://gallery.technet.microsoft.com/scriptcenter/convert-windowsimageps1-0fe23a8f 

Mit einem deutschen Windows 10 1703 Enterprise Image kommt es mit diesem Skript keider zu einem Fehler (ERROR : bcdboot.exe failed with code -1073741510!). Der Dism.exe Befehl, der in diesem Zusammenhang häufig genutzt wird ist leider sprachabhängig. Mit dem korrekten Image (englisch) und dem Befehl Convert-WindowsImage schaut nun so aus:

Convert-WindowsImage -SourcePath .\en_windows_8_1_enterprise_x64_dvd_2971902.iso -VHDFormat VHD -VHDPartitionStyle MBR

Windows(R) Image to Virtual Hard Disk Converter for Windows(R) 10
Copyright (C) Microsoft Corporation. All rights reserved.
Version 10.0.9000.0.amd64fre.fbl_core1_hyp_dev(mikekol).141224-3000 Beta

INFO : Opening ISO en_windows_8_1_enterprise_x64_dvd_2971902.iso...
INFO : Looking for D:\sources\install.wim...
INFO : Image 1 selected (Enterprise)...
INFO : Creating sparse disk...
INFO : Attaching VHD...
INFO : Disk initialized with MBR...
INFO : Disk partitioned...
INFO : Volume formatted...
INFO : Access path (G:\) has been assigned...
INFO : Applying image to VHD. This could take a while...
INFO : Signing disk...
INFO : Image applied. Making image bootable...
INFO : Fixing the Device ID in the BCD store on VHD...
INFO : Drive is bootable. Cleaning up...
INFO : Generating name for VHD...
INFO : Closing VHD...
INFO : Closing Windows image...
INFO : Closing ISO...
INFO : Done.

Automatische Sequencer Imageinstallation

Für die automatische Sequencer Imageinstallation gibt es jetzt den Befehl New-AppVSequencer. 

New-AppVSequencerVM -VMName "" -ADKPath "" -VHDPath "" -VMMemory  -VMSwitch ""

Der macht nichts anderes, als in der VHD eine Unattended.xml anzulegen, die dafür sorgt, dass ein generiertes Kennwort funktioniert, welches verschlüsselt auf dem Host unter „C:\ProgramData\Microsoft Application Virtualization\AutoSequencer\SequencerMachines“ abgelegt wird. Damit kann der Sequencer vom Host aus später automatisiert angesprochen werden. Weiterhin wird die Firewall auf dem Sequencer geäffnet und die Sequencersoftware installiert. Die folgenden Befehle werden dazu mit der Unattended.xml ausgeführt:

get-netconnectionprofile | set-netconnectionprofile -NetworkCategory Private
Enable-NetFirewallRule -DisplayGroup „Remote Desktop“
Enable-NetFirewallRule -DisplayGroup „Windows Remote Management“
Enable-PSRemoting -Force
CMD /c reg add „HKLM\System\CurrentControlSet\Control\Network\NewNetworkWindowOff“ /f

Das Template ist hier zu finden: „C:\Program Files (x86)\Windows Kits\10\Microsoft Application Virtualization\AutoSequencer\ Unattend_Sequencer_User_Setup_Template.xml“ und kann leicht erweitert werden.

Wichtig: Windows Remoting auf dem Host aktivieren!!!

Ansonsten kommt es zu einem Fehler („get-item : Cannot find path 'WSMan:\localhost\Client\TrustedHosts' because it does not exist.“)

Enable-PSRemoting

WinRM has been updated to receive requests.
WinRM service type changed successfully.
WinRM service started.
WinRM has been updated for remote management.
WinRM firewall exception enabled.

Configured LocalAccountTokenFilterPolicy to grant administrative rights remotely to local users.

Execution Policy (bei Bedarf)

Nun auch noch die Execution Policy auf dem Host auf remotesigned setzen, damit Skripte ausgeführt werden dürfen. Das Obwohl die Microsoft Module signiert sind. Scheinbar wurde bei mir die Signatur nicht erkannt.

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

Image ausrollen

Jetzt kann endlich das Sequencerimage ausgerollt werden.
Anmerkung: Das zuvor erstellte Image wird nicht kopiert, sondern direkt in die neue VM eingebunden. Wenn man den Prozess also noch einmal durchführen möchte, sollte zuvor eine Kopie des Images erstellt werden. Mit New-AppVSequencer wird jetzt ein Sequencer mit einem Arbeitsspeicher von 1024MB erzeugt.

New-AppVSequencerVM -VMName SEQ1 -ADKPath C:\Temp\w101703ADK -VHDPath C:\Temp\15063.0.amd64fre.rs2_release.1
70317-1834_Client_Enterprise_en-US.vhd -VMMemory 1024MB -VMSwitch vswitch

Log file: C:\Users\Andreas\AppData\Local\Temp\AutoSequencer\Logs\New-AppVSequencerVM-04-09-2017-23-11-50.txt
Report file: C:\Users\Andreas\AppData\Local\Temp\AutoSequencer\Logs\New-AppVSequencerVM-report-04-09-2017-23-11-50.txt
The VM computer will be created with ComputerName: SEQ1
VM SEQ1 created and starting, please wait for few minutes for the first time machine boot up ...
Waiting for VM to finish starting up..
Waiting for VM session........
Copying installer for Application Virtualization Sequencer from ADK to the VM..
No CAB files for Kit Config MSI
Installing Application Virtualization Sequencer on the VM..
Creating sequencer base snapshot sequencer-base for SEQ1
VM provisioning complete.

Nach dem Abschluss gibt es eine neue Hyper-V Maschine (SEQ1) mit einem lokal installierten Sequencer. In den Logs unter „C:\Users\Andreas\AppData\Local\Temp\AutoSequencer\Logs“ kann nachgeschaut werden, ob die Aktion erfolgreich war. Es sind Dienste wie Windows Update aktiv und eine Neustartoption steht aus.

Das Kennwort für die neue VM wird lokal unter „C:\ProgramData\Microsoft Application Virtualization\AutoSequencer\SequencerMachines“ gecached.
Eine RDP Sitzung kann nach dem Neustart mit Connect-AppVSequencerVM gestartet werden. Dabei wird das Kennwort aus dem Cache entnommen.

Connect-AppVSequencerVM -VMName SEQ1

Waiting for VM to finish starting up...
Waiting for VM session.....
DNS Resolving for SEQ1
DNS Resolved SEQ1.localdomain

Das dauert wiederum einige Minuten, da das selbstgenerierte Zertifikat nicht bekannt ist. Ein Dialog muss mit „ja“ beantwortet werden.

image006

Windows Defender und Windows Update sind noch immer aktiv. Aber den neuen Sequencer aus 1703 stört das nun scheinbar nicht mehr. Vermutlich ist das eine der Änderungen in dieser Version. Ich persönlich würde diese Dienste dennoch deaktivieren.
Der Sequencer kennt nun auch Server 2016

image007

Fazit

In der hier beschriebenen ADK Version funktioniert alles nur mit englischen Windows 10 Enterprise Systemen. Sowohl der Host, als auch die VM müssen englisch sein. Dabei ist eine ganze Menge zu beachten. Der anschließend erzeugte „Auto Sequencer“ überzeugt mich nicht, da viele Optimierungen fehlen, die für saubere Pakete notwendig sind. Aber man kann durchaus nacharbeiten und beispielsweise einige Dienste wie den Defender deaktivieren. Wenn der Sequencer genutzt werden soll, so bitte auf deutsche Sonderzeichen im Startmenü achten.
Ansonsten ist das Paket bis hierhin durch die fehlende Unterstützung deutscher Systeme eingeschränkt. In Unserem Buch „Softwarevirtualisierung mit App-V 5“ wird beschrieben, wie das Ganze auch mit VMware vSphere funktioniert. Und mit dem dort beschriebenen Hydration Kit ist die Erzeugung eines Installationsimages auf Basis der MDK (Microsoft Deployment Kit) flexibler gestaltet. Letztlich ist die Basis des Auto Sequencers auch ein PowerShell Skript.
Im nächsten Teil zu diesem Blog wird beschrieben, wie man den Auto-Sequencer remote nutzen kann.

Hinweise zu deutschen Versionen

Mit einem deutschen Windows 10 Ent. 1703 wird auch ein deutsches ADK herunter geladen. Leider mit den gleichen Skripten. Nun kommt es zu Fehlern bei der Imageerstellung, aber auch beim Roll-Out
Scheinbar hat Microsoft nicht ausprobiert, was in dem Blog steht. Mit einem Windows 8.1 Image, dass wir auch für das App-V Hydration Kit nutzen, kommt es zu dem gleichen Fehler (ERROR : bcdboot.exe failed with code -1073741510!).

image008
Für das Image wird im Skript New-SequencerVM der folgende Befehl aufgerufen:

dism /get-imageinfo /imagefile:$VhdPath /index:1
dism /get-imageinfo /imagefile:c:\temp\9600.16404.amd64fre.winblue_gdr.1309132141_Client_Enterprise_en-US.vhd

Liefert:
Fehler: 87
Falscher Parameter.
Die DISM-Protokolldatei befindet sich unter "C:\WINDOWS\Logs\DISM\dism.log".

Also, nur Convert-WindowsImage genügt hier nicht. Die VHD muss in eine virtuelle Maschine eingebunden werden und anschließend konfiguriert. Wenn es funktioniert, bekommen wir die folgende Ausgabe:

dism /get-imageinfo /imagefile:c:\temp\9600.16404.amd64fre.winblue_gdr.130913-2141_Client_Enterp
rise_en-US.vhd /index:1 Tool zur Imageverwaltung für die Bereitstellung Version: 10.0.15063.0 Details für Image: "c:\temp\9600.16404.amd64fre.winblue_gdr.130913-2141_Client_Enterprise_en-US.vhd" Index: "1" Name: "" Beschreibung: "" Größe: 8.272.227.328 Bytes WIM startbar: Nein Architektur: x64 Hal: acpiapic Version: 6.3.9600 Service Pack-Build: 16408 Service Pack-Nummer: 0 Edition: Enterprise Installation: Client Produkttyp: WinNT Produktsuite: Terminal Server Systemstamm: Windows Verzeichnisse: Dateien: Erstellt: 09.04.2017 - 14:52:31 Geändert: 09.04.2017 - 14:52:31 Sprachen: en-US (Standard)

Und nun? Die Fehlermeldung kommt noch immer! Mein Hostsystem ist ein deutsches Windows 10 Enterprise. Gesucht wird im Skript aber nach englischen Begriffen! Also, automatisches Sequenzieren nur für ein englisches Windows 10? Ja, zumindest wenn man nicht nachbessern möchte. Da ich schon einmal dabei bin, mache ich das nun. Dann paßt natürlich die digitale Signatur nicht mehr.

In Zeile 31 und 37 des PowerShell Modules unter „C:\Program Files (x86)\Windows Kits\10\Microsoft Application Virtualization\AutoSequencer\New-AppVSequencerVM“ ändern wir „Architecture“ zu „Architektur“. Nun läuft es erst einmal weiter. Aber funktionieren wird es dennoch nicht. Microsoft hat auch in der Unattenden.xml englische Anweisungen genutzt.

App-V mit Windows 10 1703 automatische Paketierung...
Citrix XenDesktop PVS oder MCS Image Skripte

Ähnliche Beiträge

 

Kommentare 4

Gäste - Christian am Freitag, 30. Juni 2017 14:01

Vielen Dank für die Tolle Anleitung. Was von MS bereitgestellt wurde hat bei mir viele Fragen offengelassen, die von dir Beantwortet werden
Leider bleibt das "Image Ausrollen" bei mir hier stehen:

The VM computer will be created with ComputerName: SEQ1
VM SEQ1 created and starting, please wait for few minutes for the first time machine boot up ...
Waiting for VM to finish starting up..
Waiting for VM session........

und im log steht:
[SEQ1] Connecting to remote server SEQ1 failed with the following error message : The WinRM client cannot process the request because the server name cannot be resolved. For more information, see the about_Remote_Troubleshooting Help topic.

stimmt hier noch was mit dem Netzwerk nicht?

Vielen Dank für die Tolle Anleitung. Was von MS bereitgestellt wurde hat bei mir viele Fragen offengelassen, die von dir Beantwortet werden :) Leider bleibt das "Image Ausrollen" bei mir hier stehen: The VM computer will be created with ComputerName: SEQ1 VM SEQ1 created and starting, please wait for few minutes for the first time machine boot up ... Waiting for VM to finish starting up.. Waiting for VM session........ und im log steht: [SEQ1] Connecting to remote server SEQ1 failed with the following error message : The WinRM client cannot process the request because the server name cannot be resolved. For more information, see the about_Remote_Troubleshooting Help topic. stimmt hier noch was mit dem Netzwerk nicht?
Andreas Nick am Freitag, 30. Juni 2017 19:21

Hi Christian, der löst den Namen wohl über Netbios auf. Was genau bei Dir blockieren könnte kann ich von hier auch nicht sagen AAber probioer doch einmal einen Ping auf den Namen. Manchmal hat bei mir die erste Verbindung aber bei mir auch ungewöhnlich lange gedauert. Die Einschränkungen sind bei dem Verfahren wie ich finde auch zu groß. Wir nutzen hierfür Skripte die auf PSExec aus den Sysinternals basieren und die können dann auch ein appvt Template mit bekommen um beispielsweise den Müll im Paket zu filtern.

Hi Christian, der löst den Namen wohl über Netbios auf. Was genau bei Dir blockieren könnte kann ich von hier auch nicht sagen AAber probioer doch einmal einen Ping auf den Namen. Manchmal hat bei mir die erste Verbindung aber bei mir auch ungewöhnlich lange gedauert. Die Einschränkungen sind bei dem Verfahren wie ich finde auch zu groß. Wir nutzen hierfür Skripte die auf PSExec aus den Sysinternals basieren und die können dann auch ein appvt Template mit bekommen um beispielsweise den Müll im Paket zu filtern.
Gäste - Christian am Freitag, 30. Juni 2017 19:32

Ich habe vorher noch nen eintrag in die host datei gemacht, dann ging es weiter auf "Access Denied" ich schau am Montag mehr.

Ich habe vorher noch nen eintrag in die host datei gemacht, dann ging es weiter auf "Access Denied" :D ich schau am Montag mehr.
Gäste - Christian am Montag, 03. Juli 2017 11:05

kleines Update: ich habe jetzt in der hyper-v umgebung einen dhcp und dns server aufgesetzt und nur noch internal netzwerk. damit geht es fehlerfrei.

kleines Update: ich habe jetzt in der hyper-v umgebung einen dhcp und dns server aufgesetzt und nur noch internal netzwerk. damit geht es fehlerfrei.
Bereits registriert? Hier einloggen
Gäste
Dienstag, 26. September 2017

Sicherheitscode (Captcha)

Kontakt

Nick Informationstechnik GmbH
WEB : http://www.nick-it.de
TEL : +49 511 165.810.190
MAIL: info(at)nick-it.de

App-V Workshop

@nickinformation Tweets

Most Popular Post

04. Mai 2015
NITCtxPatcher a patchmanager for Citrix XenApp and XenDesktop 7.x May 2017 The NITCtxPatchManager is back, after some changes from Citrix on the webs...
02. April 2015
NIT-GPOSearch is a free tool to search in the Group Policy (admx, adml) definitions for a specific setting. New in Version 1.2 - search in the domain ...
28. Oktober 2013
English translation created with http://translate.google.de/ ! AppV2Msi a tool that is being created to transform Microsoft App-V 5 Files into a "rea...