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

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

Starten einer lokal installieren Anwendung in einer virtuellen App-V Blase

appVBlockedge 180x180App-V 5.x ermöglicht es einer lokal installierten Anwendung auf einem Windows System in eine virtuelle Blase hinein zu starten. Also den Inhalt des Virtuellen Paketes für lokale An-wendung sichtbar zu machen. Das ist nicht nur für Middleware interessant, sondern auch zum Debuggen von App-V Paketen. Hier gibt es mehrere Verfahren.

In diesem Artikel werden die einzelnen Möglichkeiten aufgeführt und mit Beispielen erklärt.

Weiterlesen
  16585 Aufrufe
Markiert in:

NITCtxPatcher for XenApp 6.x

We love XenApp 6.5Here is the next version of our patch manager for Citrix XenApp 6 and XenApp 6.5. This version is free and requires only one registration and the request to announce annotations and error in the support-forum. Now I write first of all no new instructions. Also this Blog will grow with the versions.

Do you search for a version for XenApp or XenDesktop 7.x ? You find them >here<

I would like to thank all for the nice feedbacks to our patch manager for XenDesktop 7.6. Especially still once with my employee Martin von Hessert who had the idea for these tools

For visitors from Germany (special - Niedersachsen, Hannover und  Hamburg) : Wir, die Nick Informationstechnik GmbH, würden Sie gerne bei Ihren Migrationsprojekten, Performance Problemen, Reviews und Automatisierung zu XenApp 7.6 und App-V 5 unterstützen. Wir freuen uns auf Ihre Anfrage! Kontaktformular Info[at]nick-it.de

 

Image 1 : Screenshot with Japanese Citrix hotfixes

Weiterlesen
  27248 Aufrufe

Kurztest Atlantis virtual Appliance USX

image001Diesmal geht es nicht um Software-Virtualisierung, sondern um Storage-Virtualisierung mit dem Hersteller Atlantis und der USX Appliance. Diese gibt es sowohl als Hardware, als auch als Software Lösung. Es geht hier nicht um einen Test bis ins letzte Detail der Appliance.

Die in den USA sehr erfolgreich Atlantis Computing, Inc. ist als Storage Hersteller neu am deutschen Markt. Vor kurzem wurde eine Niederlassung in München gegründet. Die Produkte versprechen die Storage Landschaft radikal zu verändern. Das mit Software-definierten Speicherplattform (Software-defined Storage). Unter Einbeziehung von Arbeitsspeicher und SSD Kapazitäten. Der Hersteller verspricht, mit der Atlantis USX eine bessere Leistung als mit den schnellsten „All-Flash-Array“ Systemen anderer Hersteller. Und das zu einem günstigeren Preis für den Endkunden.

Weiterlesen
  20011 Aufrufe
Markiert in:

Wie kommt man an App-V 5 und zu App-V 5?

App-V-Balls_180x180App-V ist mit dem MDOP (dem Microsoft Desktop Optimization Pack) vor kurzem als Download im Microsoft Action Pack aufgetaucht. Eine Tatsache, die mich sehr gefreut hat. Wir sind selber bei sehr vielen Kunden mit App-V 5 Projekten aktiv und haben extrem viel Erfahrung. Nur hatten wir bis zu diesem Zeitpunkt seit ca. einem Jahr keine Möglichkeit mehr, selber noch an die Produkte zu kommen.
Ein Grund, etwas weiter auszuholen und etwas dazu zu schreiben.

Weiterlesen
  14564 Aufrufe
Markiert in:

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
  21526 Aufrufe
Markiert in:

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.