MSIX-Massenkonvertierungsskripts
Die Massenkonvertierungsskripts im MSIX Toolkit können verwendet werden, um die Konvertierung von Windows-Apps in das MSIX-Paketformat zu automatisieren. Die Liste der Apps und deren Details finden Sie im Entry.ps1-Skript .
Vorbereiten von Computern für die Konvertierung
Bevor Sie das Massenkonvertierungsskript des MSIX Toolkit ausführen, müssen Sie die Konvertierung Ihrer Anwendung in das MSIX-Verpackungsformat automatisieren, die Geräte, die Sie verwenden (virtuell oder remote), so konfiguriert werden, dass die Remotekommunikation zugelassen wird und das MSIX Packaging Tool installiert ist.
Begriff | Beschreibung |
---|---|
Hostcomputer | Dies ist das Gerät, das die Massenkonvertierungsskripts ausführt. |
Virtueller Computer | Dies ist ein Gerät, das in Hyper-V vorhanden ist, das auf dem Hostcomputer gehostet wird. |
Remotecomputer | Dies ist ein physischer oder virtueller Computer, auf den über das Netzwerk zugegriffen werden kann. |
Hostcomputer
Der Hostcomputer muss die folgenden Anforderungen erfüllen:
- MSIX Packaging Tool muss installiert sein.
- Wenn virtuelle Computer verwendet werden, muss Hyper-V installiert sein.
- Wenn Remotecomputer verwendet werden:
- Das Gerät ist in derselben Domäne wie der(n) Remotecomputer vorhanden:
- Aktivieren von PowerShell-Remoting
# Enables PowerShell Remoting Enable-PSRemoting -force
- Aktivieren von PowerShell-Remoting
- Das Gerät ist in einer Arbeitsgruppe oder in einer alternativen Domäne als Remotecomputer vorhanden:
- Aktivieren von PowerShell-Remoting
- WinRM Trusted Host muss den Gerätenamen oder die IP-Adresse des Remotecomputers enthalten.
# Enables PowerShell Remoting Enable-PSRemoting -force Set-Item WSMan:\localhost\Client\TrustedHosts -Value <RemoteMachineName>,[<RemoteMachineName>,...]
- Das Gerät ist in derselben Domäne wie der(n) Remotecomputer vorhanden:
Remotecomputer
Der Remotecomputer muss die folgenden Anforderungen erfüllen:
MSIX Packaging Tool muss installiert sein.
Wenn das Gerät in derselben Domäne wie der Hostcomputer vorhanden ist:
- Aktivieren von PowerShell-Remoting
- WinRM muss aktiviert sein
- ICMPv4 über die Clientfirewall zulassen
# Enables PowerShell Remoting Enable-PSRemoting -force New-NetFirewallRule -DisplayName “ICMPv4” -Direction Inbound -Action Allow -Protocol icmpv4 -Enabled True
Wenn das Gerät in einer Arbeitsgruppe oder einer alternativen Domäne als Hostcomputer vorhanden ist:
- Aktivieren von PowerShell-Remoting
- WinRM Trusted Host muss den Gerätenamen oder die IP-Adresse des Hostcomputers enthalten.
- ICMPv4 über die Clientfirewall zulassen
# Enables PowerShell Remoting Enable-PSRemoting -force New-NetFirewallRule -DisplayName “ICMPv4” -Direction Inbound -Action Allow -Protocol icmpv4 -Enabled True Set-Item WSMan:\localhost\Client\TrustedHosts -Value <HostMachineName>
Virtueller Computer
Es wird empfohlen, das Hyper-V-Schnellerstellungsimage "MSIX Packaging Tools Environment" zu verwenden, da es vorkonfiguriert ist, um alle Anforderungen zu erfüllen. Der virtuelle Computer muss auf dem Hostcomputer gehostet und in Microsoft Hyper-V ausgeführt werden.
Der virtuelle Computer muss die folgenden Anforderungen erfüllen:
- MSIX Packaging Tool muss installiert sein.
Syntax
entry.ps1
Beschreibung
Dies ist eine Reihe von PowerShell-Skripts, die die Möglichkeit zum Massenpaketieren von Anwendungen im MSIX-Paketformat bieten. Diese Skripts stellen eine Verbindung mit einem lokalen virtuellen Computer oder Remotecomputer her, der zum Packen der einzelnen Anwendungen verwendet wird.
Apps, die in das MSIX-Anwendungsformat verpackt werden, werden in der Reihenfolge konvertiert, in der sie in das Entry.ps1-Skript eingegeben wurden. Remotecomputer, die im Entry.ps1-Skript aufgeführt sind, werden verwendet, um die Anwendungen im MSIX-Format zu packen, wird einzeln verwendet. Virtuelle Computer können mehrmals verwendet werden, um verschiedene Anwendungen im MSIX-Anwendungsformat zu verpacken.
Bevor Sie das Skript ausführen, müssen Sie zuerst die Apps hinzufügen, die Sie in die conversionsParameters
Variable im Skript konvertieren möchten. Der Variablen können mehrere Apps hinzugefügt werden. Das Skript nutzt die App und remote/virtuelle Computer, um eine XML-Datei zu erstellen, die den Anforderungen des MSIX Packaging Tools (MsixPackagingTool.exe) entspricht. Nach dem Erstellen der XML-Datei wird das Skript run_job.ps1 in einem neuen PowerShell-Prozess ausgeführt, der MsixPackagingTool.exe auf dem Zielgerät ausführt, um die App zu konvertieren und im Ordner ".\Out " im Skriptausführungsordner zu platzieren.
Beispiel
PS C:\> entry.ps1
Im Beispiel "entry.ps1" wird das Skript "entry.ps1 " ausgeführt. Dieses Skript konvertiert die in der conversionsParameters
Variablen angegebenen Apps in MSIX-Pakete. Die Apps werden mit den virtuellen Computern oder Remotecomputern konvertiert, die in den Variablen "virtualMachines " und "remoteMachines " angegeben sind.
Parameter
virtualMachines
Der virtualMachines
Parameter ist ein Array, das den Namen und die Anmeldeinformationen der virtuellen Computer enthält, mit denen beim Verpacken einer App im MSIX-Format eine Verbindung hergestellt und darauf zugegriffen werden kann.
- Typ: Array
- Erforderlich: Nein
$virtualMachines = @(
@{
Name = "MSIX Packaging Tool Environment"; # Name of the virtual machine as listed in the Hyper-V Management console
Credential = $credential # Credentials used to connect/login to the virtual machine.
}
)
Der angegebene virtuelle Computer wird verwendet, um Apps im MSIX-Format zu verpacken. Dieser virtuelle Computer wird mit den bei der Aufforderung eingegebenen Anmeldeinformationen verbunden (Aufforderung wird direkt nach der Ausführung des Skripteintrags.ps1 angezeigt). Vor dem Packen einer Anwendung im MSIX-Verpackungsformat erstellt das Skript eine Momentaufnahme der Hyper-V-VM und wird dann nach dem Packen der Anwendung in diese Momentaufnahme wiederhergestellt.
remoteMachines
Der remoteMachines
Parameter ist ein Array, das den Namen und die Anmeldeinformationen der Remotecomputer enthält, mit denen beim Verpacken einer App im MSIX-Format eine Verbindung hergestellt und darauf zugegriffen werden kann. Die angegebenen Remotecomputer sind Einweggeräte, die zum Packen einer einzelnen Anwendung verwendet werden.
Remotecomputer müssen im Netzwerk zugänglich und auffindbar sein.
- Typ: Array
- Erforderlich: Nein
$remoteMachines = @(
@{
ComputerName = "Computer.Domain.com"; # The fully qualified name of the remote machine.
Credential = $credential } # Credentials used to connect/login to the remote machine.
)
Der angegebene Remotecomputer wird verwendet, um eine einzelne App im MSIX-Format zu verpacken. Dieser Remotecomputer wird mit den bei der Aufforderung eingegebenen Anmeldeinformationen verbunden (Aufforderung wird direkt nach der Skripteingabe.ps1-Ausführung angezeigt).
Stellen Sie sicher, dass der vollqualifizierte Domänenname oder der extern zugängliche Alias des Geräts vor der Ausführung des Entry.ps1-Skripts aufgelöst werden kann.
signingCertificate
Der signingCertificate
Parameter ist ein Array, das Informationen zum Codesignaturzertifikat enthält, das zum Signieren der verpackten Anwendung verwendet wird. Dieses Zertifikat muss über eine Verschlüsselungsstufe von mindestens SHA256 verfügen.
- Typ: Array
- Erforderlich: Nein
$SigningCertificate = @{
Password = "Password";
Path = "C:\Temp\ContosoLab.pfx"
}
conversionsParameters
Der conversionsParameters
Parameter ist ein Array, das Informationen zu den Apps enthält, die Sie in das MSIX-Format konvertieren möchten. Jede App im Array wird einzeln analysiert und die MSIX-Paketkonvertierung auf einem Remotecomputer oder virtuellen Computer ausgeführt. Die Apps werden in der Reihenfolge konvertiert, in der sie im Skript angezeigt werden. Wenn die Konvertierung in das MSIX-Format fehlschlägt, versucht das Skript nicht erneut, die Anwendung auf einem anderen Remotecomputer oder virtuellen Computer zu konvertieren.
- Typ: Array
- Erforderlich: Ja
$conversionsParameters = @(
## Use for MSI applications:
@{
InstallerPath = "C:\Path\To\YourInstaller.msi"; # Full path to the installation media (local or remote paths).
PackageName = "YourApp"; # Application Display Name - name visible in the start menu.
PackageDisplayName = "Your App"; # Application Name - Can not contain special characters.
PublisherName = "CN=YourCompany"; # Certificate Publisher information - must match signing certificate
PublisherDisplayName = "YourCompany"; # Application Publisher name
PackageVersion = "1.0.0.0" # MSIX Application version (must contain 4 octets).
},
## Use for EXE or other applications:
@{
InstallerPath = "Path\To\YourInstaller.exe"; # Full path to the installation media (local or remote paths).
PackageName = "YourApp"; # Application Display Name - name visible in the start menu.
PackageDisplayName = "Your App"; # Application Name - Can not contain special characters.
PublisherName = "CN=YourCompany"; # Certificate Publisher information - must match signing certificate
PublisherDisplayName = "YourCompany"; # Application Publisher name
PackageVersion = "1.0.0.0"; # MSIX Application version (must contain 4 octets).
InstallerArguments = "/SilentInstallerArguement" # Arguements required by the installer to provide a silent installation of the application.
},
## Creating the Packaged app and Template file in a specific folder path:
@{
InstallerPath = "Path\To\YourInstaller.exe"; # Full path to the installation media (local or remote paths).
PackageName = "YourApp"; # Application Display Name - name visible in the start menu.
PackageDisplayName = "Your App"; # Application Name - Can not contain special characters.
PublisherName = "CN=YourCompany"; # Certificate Publisher information - must match signing certificate
PublisherDisplayName = "YourCompany"; # Application Publisher name
PackageVersion = "1.0.0.0"; # MSIX Application version (must contain 4 octets).
InstallerArguments = "/SilentInstallerArguement"; # Arguements required by the installer to provide a silent installation of the application.
SavePackagePath = "Custom\folder\Path"; # Specifies a custom folder path where the MSIX app will be created.
SaveTemplatePath = "Custom\folder\Path" # Specifies a custom folder path where the MSIX Template XML will be created.
}
)
Die in der conversionsParameters
Variablen bereitgestellten App-Informationen werden verwendet, um eine XML-Datei mit allen erforderlichen Anwendungsdetails zu generieren. Nach dem Erstellen der XML-Datei übergibt das Skript die XML-Datei an das MSIX Packaging Tool (MsixPackagingTool.exe), das verpackt werden soll.
Logging
Das Skript generiert eine Protokolldatei, in der beschrieben wird, was während der gesamten Skriptausführung transpiriert wurde. Die Protokolldatei enthält Details zur Verpackung von Anwendungen im MSIX-Verpackungsformat sowie Informationen zum Skriptverlauf. Die Protokolle können von jedem Beliebigen Texthilfsprogramm gelesen werden, wurden jedoch mit dem Trace32-Protokollleser zum Lesen konfiguriert. Fehler in der Skriptausführung werden als Rot und Warnungen als gelb hervorgehoben. Weitere Informationen zum Trace 32 Log Reader finden Sie unter CMTrace.
Die Protokolldatei wird im Verzeichnis .\logs\BulkConversion.log
des Skripts erstellt.