App-V Buch
Unser App-V
Buch

- App-V Infrastruktur
- App-V Client
- App-V Sequenzierung
- Tools & Troubelshooting
- PowerShell mit App-V

Image is not available
Services
Image is not available
Image is not available
Image is not available
Image is not available
Image is not available
Image is not available

Hochwertige Lösungen mit bestem Kundenservice

Terminalserver- und Desktop Umgebungen mit der besten Usability

Schulungen und Workshops

Intuitive individuelle Lösungen

Standartanwendungen
App-V SaS über 20 Standardanwendungen

Alle wichtigen Browser

Wichtige Standardanwendungen

Wöchentlich aktuallisiert

Mit Support

Individuelle Anpassungen sind möglich

Schnell auf Sicherheitslücken reagieren

Bonus: Einige MSIX Pakete für WVD

App-V Buch
Services
Innovative IT-Lösungen
previous arrow
next arrow

Automatische Sequenzierung von App-V Anwendungen

AppVClient 180x180Microsoft bietet mit der Windows PowerShell auf dem Sequencer eine Möglichkeit, die Paketerstellung zu automatisieren. Die Nutzung dieser Module ist einfach. Bei dem Sequencer ist wiederum zu beachten, dass dieser für die genutzte Umgebung Best Practice zu installieren ist. In der Regel wird man die automa-tische Paketierung von außen steuern, also einen Sequencer in einer Hyper-V- oder VMware-Umgebung nutzen und diesen vor jeder Aktion automatisch wieder zurücksetzen.

Weiterlesen
  17385 Aufrufe

Automatic Download and Install all Visual C++ Runtimes

Powershell Switch 180x180Here are two simple Powershell scripts to automatic download and install all Visual C++ Runtimes for X86 and X64 Systems (2005, 2008, 2010, 2012, 2013, 2015).

Download All VisualCRuntimes

Download the Visual C++ Runtime Modules:

Weiterlesen
  38223 Aufrufe

MSP Productcode mit Powershell auslesen

MSPPS 180x180Ein Windows Installer-Patch (MSP-Datei) ist eine Paketdatei, ein die Updates für eine bestimmte Anwendung enthält und beschreibt, welche Versionen der Anwendung gepatcht werden kann. Der Vorteil eines MSPs ist, dass nur die Dateien enthalten sind, die sich zu einem MSI ändern. MSP werden für Minor Releases eingesetzt (i.d.R. kleine Updates). Ich selber habe ein Tool in der Hinterhand, dass  binäre Differenzen für extrem kleine Patches verteilen kann (wird denn demnächst veröffentlicht).

In dem Patch enthalten ist u.a. ein Productcode und ein Patchcode für die zu ändernde Anwendung. Passt der Productcode zu einer installierten Anwendung, kann gepatched werden. Es ist also praktisch, diesen Code schon vor einer Installation zu ermitteln, um eine Softwareverteilung zu optimieren. Im Folgenden werden zwei Lösungen mit Powershell gezeigt.


Wie bekommt man den Productcode heraus? Eine Variante ist die Installation auf Codeplex: MSI Powershell Module. Der Nachteil dieses Modules ist, dass dafür auch wieder ein MSI installiert werden muss. Dies beinhaltet wiederum Komponenten des Windows Installer XML. Also nichts, was einfach in ein Paket eingebunden werden kann.Das MSI Powershell Module ist im übrigen sehr gut und ich kann das sehr empfehlen für komplexere Dinge. Nach der Installation bekommt man beispielsweise so die Daten einer MSI Datei:

get-msicomponentinfo `
    | where { $_.Path -like 'C:\Program Files\*\Common7\IDE\devenv.exe'} `
    | get-msiproductinfo

Vor kurzen habe ich nach einer Möglichkeit, gesucht, den Productcode eines eines MSP auszulesen, ohne diesen Overhead. Das COM Object "WindowsInstaller.Installer" bietet diese Möglichkeit. Der Vorteil ist, dass diese Funktionen leicht bei Installationen eingesetzt werden können. Also zum Abgleich, ob ein Patch für ein System geeigent ist. Demnächst baue ich das genau so in unseren Citrix XenApp Patcher ein.

Auslesen des "Display Name" des Patches mit Powershell. Achtung, dieser ist nicht immer im MSP enthalten:

function Get-MSPDisplayName {
<# 
.SYNOPSIS 
    Get the Display Name from an Microsoft Installer Patch MSP
.DESCRIPTION 
    Get Display Name from an Microsoft Installer Patch MSP (Andreas Nick 2015)
.NOTES 
    $NULL for an error
.LINK
.RETURNVALUE
  [String] Display Name
.PARAMETER
  [IO.FileInfo] Path to the msp file
#>
function Get-MSPDisplayName {
	param (
		[IO.FileInfo] $patchnamepath
	)
	try {
		$wi = New-Object -com WindowsInstaller.Installer
		$mspdb = $wi.GetType().InvokeMember("OpenDatabase", "InvokeMethod", $Null, $wi, $($patchnamepath.FullName, 32))
		$su = $mspdb.GetType().InvokeMember("SummaryInformation", "GetProperty", $Null, $mspdb, $Null)
		[String] $displayName = $su.GetType().InvokeMember("Property", "GetProperty", $Null, $su, 6)
		return $displayName
	}
	catch {
		Write-Output $_.Exception.Message
		return $NULL
	}
}

Auslesen des Productcodes eines Microsoft Patches (MSP) mit Powershell:

<# 
.SYNOPSIS 
    Get the Product Code from an Microsoft Installer Patch MSP
.DESCRIPTION 
    Get a Product Code from an Microsoft Installer Patch MSP (Andreas Nick 2015)
.NOTES 
    $NULL for an error
.LINK
.RETURNVALUE
  [String] Product Code
.PARAMETER
  [IO.FileInfo] Path to the msp file
#>
function Get-MSPProductcode {
	param (
		[IO.FileInfo] $patchnamepath
	)
	try {
		$wi = New-Object -com WindowsInstaller.Installer
		$mspdb = $wi.GetType().InvokeMember("OpenDatabase", "InvokeMethod", $Null, $wi, $($patchnamepath.FullName, 32))
		$su = $mspdb.GetType().InvokeMember("SummaryInformation", "GetProperty", $Null, $mspdb, $Null)
		#$pc = $su.GetType().InvokeMember("PropertyCount", "GetProperty", $Null, $su, $Null)
		
		[String] $productcode = $su.GetType().InvokeMember("Property", "GetProperty", $Null, $su, 7)
		return $productcode
	}
	catch {
		Write-Output $_.Exception.Message
		return $NULL
	}
}

Auslesen des Patchcodes eines MSP Patches mit Powershell:

<# 
.SYNOPSIS 
    Get the Patch Code from an Microsoft Installer Patch MSP
.DESCRIPTION 
    Get a Patch Code from an Microsoft Installer Patch MSP (Andreas Nick 2015)
.NOTES 
    $NULL for an error
.LINK
.RETURNVALUE
  [String] Product Code
.PARAMETER
  [IO.FileInfo] Path to the msp file
#>
function Get-MSPPatchcode {
	param (
		[IO.FileInfo] $patchnamepath
		
	)
	try {
		$wi = New-Object -com WindowsInstaller.Installer
		$mspdb = $wi.GetType().InvokeMember("OpenDatabase", "InvokeMethod", $Null, $wi, $($patchnamepath.FullName, 32))
		$su = $mspdb.GetType().InvokeMember("SummaryInformation", "GetProperty", $Null, $mspdb, $Null)
		$pc = $su.GetType().InvokeMember("PropertyCount", "GetProperty", $Null, $su, $Null)
		#Write-Host $pc
		[String] $patchcode = $su.GetType().InvokeMember("Property", "GetProperty", $Null, $su, 9)
		return $patchcode
	}
	catch {
		Write-Output $_.Exception.Message
		return $NULL
	}
}

 

Weiterlesen
  23646 Aufrufe

Teil 1: AppDna Kurzvorstellung – Einführung und Installation von Citrix AppDna

DNA180x180Nachdem Citrix AppDNA  in der XenApp/XenDesktop Platinum Lizenz inkludiert hat, wird die Nutzung für alle Umgebungen mit einer entsprechenden Lizenz Interessant. Dabei ermöglicht AppDna nicht nur die genaue Analyse von Anwendungen für eine Zielumgebung, sondern auch eine automatische, sehr einfach zu nutzende Sequenzierung mit App-V 5 und App-V 4.6. Dies ist der erste von Drei Artikeln zu AppDna. Vertiefende Informationen sind auf der Citrix Produktseite und in den E-Docs zu finden.

Besonders die Möglichkeit mit AppDNA schnell an App-V Pakete zu kommen, um diese direkt zu nutzen oder durch die Kundeninterne Paketierung weiter zu verarbeiten (Branding) ist ein sehr interessanter Aspekt von AppDna. Die Paketierung bekommt neben dem Anwendungsreport also schon ein vorgefertigtes Paket. Die Zeiteinsparungen sind enorm.AppDna ermöglicht es in kürzester Zeit hunderte von Anwendungen an eine Zielumgebung zu analysieren. Dabei liefert AppDNA Informationen, die es der Citrix Administration ermöglichen, die Risiken von Updates und Installationen neuer Software in der eigenen Umgebung einzuschätzen. 

Weiterlesen
  18062 Aufrufe

AppBot a Citrix Application Streaming profiles to MSI and App-V 5 Free to use

AppBot12 180x180ATTENTION: new Version 1.4 please klick the link!

AppBot CtxStr2AppV version 1.3 is ready and we have decided to offer this tool as "free to use" software! AppBot is Software for the conversion and migration of Citrix Application Streaming packages (Streaming Profiler) to Microsoft App-V 5 (and to Microsoft Windows Installer MSI). The App-V applications (virtual application) can be integrated directly in XenApp 7.5. You can save much time, using the AppBot in your migration projects (from XP, Windows 7 to Windwos 8 and Server 2012). You will find the download and also some test packages at the bottom of this page.

Please support our work and buy support and consulting for your AppBot project! With a support package, we help you in adapting the configuration to suit your environment. With our consultants, we are happy to assist onsite.

Please contact us : Info(AT)Nick-it.de

Weiterlesen
  17288 Aufrufe

Windows Installaer XML Pyro Versionbug

Das Pyro Engine vom Windows Installer XML (WiX) hat einen bekannten Fehler. Mit der Installation eines MSP wird die Version nicht hochgesetzt. Der folgende Workaround (eine CustomAction) hat in meinem Projekt geholfen.

The Pyro Engine in Windows Installer XML (WiX) has a known bug. With the installation of an MSP the DisplayVersion entry version is not updated. The following workaround (a Custom Action) has helped in my project.

 

    <CustomAction Id="DisplayVersionOverride" Script="vbscript" Execute="deferred" Impersonate="no" Win64="yes"><![CDATA[
	'On Error Resume next
	Set wshShell = CreateObject("WScript.Shell")
	wshShell.RegWrite "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{46742e0e-39d3-4a31-b617-4324773c6022}\DisplayVersion", "1.1.0.0", "REG_SZ"
	If Err.Number <> 0 Then
      msgbox "Error in DoStep1: " & Err.Description
    End If
	]]>
    </CustomAction>
    <InstallExecuteSequence>
      <Custom Action="DisplayVersionOverride" After="RegisterProduct"><![CDATA[NOT REMOVE]]></Custom>
    </InstallExecuteSequence>

 

 

Weiterlesen
  13576 Aufrufe

AppBot - new commandline enhancement

The Appbot Citrix Application Streaming to App-V 5 migrator has in the version 1.1, a commandline enhancement.

Now we can automatic convert a hole folder with citrix packages to App-V 5. With this extension you can migrate 100 packages in one day!

Weiterlesen
  13435 Aufrufe

Evaluation und Test AutonoWare ConversionBox – automatisiertes App-V Sequencing

AutowAutonoWare ist mit der ConversionBox angetreten, um den Paketierungsprozess für App-V zu revolutionieren. Die Erstellung von App-V Paketen erfolgt vollautomatisch. Die Installation von MSI Paketen soll robuster ablaufen und somit eine höhere Konvertierungsrate erreicht werden, als bei einem konventionellem Sequencing.

Die Ausgabe mit der ConversionBox erfolgt für App-V 4.6 und für App-V 5.0. Vom Aufbau her können mit der Software hunderte MSI Pakete an einem Tag konvertiert werden.

Der Hersteller AutonoWare verbucht für jede „erfolgreiche“ Konvertierung eine Lizenz über einen Lizenzzähler. Dabei ist mit einer erfolgreichen Konvertierung jedoch nicht die Funktion gemeint, sondern nur die Umwandlung in ein App-V Paket. Die ersten Zehn Umwandlungen sind dabei erst einmal zum Testen. Daher kann man sich diese Software auch erst einmal kostenfrei ins Haus holen und an den eigenen „Problemfälle“ kostenlos ausprobieren.

Weiterlesen
  12641 Aufrufe

App-V to MSI converter demovideo and a new software version

Here is a video to a conversion process with our tool the the App-v to MSI Converter. AppV2Msi is a tool to convert a .appv file to a "real" MSI (Windows Installer).

Weiterlesen
  15901 Aufrufe

AppBot Citrix Application Streaming to App-V converter

AppBot is a tool created to transform Citrix Streaming Applications to Microsoft App-V 5. Additionally, the application creates Microsoft installer files for every application. This way, you can decide if you would like to install an MSI for your old Streaming Profiler application (sccm, matrix 42 or so) or an App-V 5 package.
Demovideo:

Weiterlesen
  18771 Aufrufe

Nick Informationstechnik GmbH
Dribusch 2
30539 Hannover

+49 (0) 511 165 810 190
+49 (0) 511 165 810 199

infonick-it.de

Newsletter

Anmeldung zum deutschen M.A.D. Newsletter mit Informationen zur Anwendungsvirtualisierung!

Wir nutzen Cookies auf unserer Website. Einige von ihnen sind essenziell für den Betrieb der Seite, während andere uns helfen, diese Website und die Nutzererfahrung zu verbessern (Tracking Cookies). Sie können selbst entscheiden, ob Sie die Cookies zulassen möchten. Bitte beachten Sie, dass bei einer Ablehnung womöglich nicht mehr alle Funktionalitäten der Seite zur Verfügung stehen.