Der typische App-V Fehlercode besteht aus 2 x 4 Bytes in der Form hexadezimal: „0x00000000-0x00000000“. Die ersten sechs Zeichen beziehen sich auf den App-V Quellcode und können ignoriert werden. Für die Fehleranalyse sind die letzten 10 Zeichen interessant. Also „00-0x00000000“. Die ersten beiden Zeichen zeigen die Art des Fehlers und die Quelle. Die letzten acht Zeichen sind der eigentliche Fehlercode. Wenn einmal ein Fehlercode als Dezimalzahl zurückgegeben wird, so muss diese Dezimalzahl zur Analyse in einen Hexadezimalwert gewandelt werden.
Aufbau des App-V Fehlercodes
Wenn das erste Zeichen eine „8“ (4 Bit, Nummer 10 in der Grafik) ist, so handelt es sich nicht um einen Fehler. Bei einer „4“ wurde ein Fehler protokolliert. Eine „2“ zeigt an, dass es sich um einen Windows-Fehlercode handelt.
Das zweite Zeichen (4 Bit, Nummer 9 in der Grafik) zeigt die Quelle aus App-V Sicht. Die folgende Tabelle schlüsselt die Codes auf:
Hex Code |
Kategorie | Weitere Informationen |
01 | Integration | Client-Integration Log |
02 | Orchestration | Client-Orchestration Log |
03 | Client Service | Client-Service Log |
04 | Virtualization Manager | Client-VirtualizationManager Log oder Client-Vemgr Log |
05 | Shared Components | Admin und Operational Logs |
06 | Catalog | Client-Catalog |
07 | Publishing | Client-Publishing Log, Client-PackageConfig Log oder FileSystemmetadataLibrary Log |
08 | Client Common | Admin and Operational Logs |
09 | Policy | PolicyLibrary Log |
0A | Virtualization Subsystem | virtual subsystem debug logs. |
0B | Subsystem Controller | Client SubsystemController Log |
0C | Streaming Manager | streaming debug logs |
0E | Client Host | |
0F | Client Configuration | Registry/PowerShell |
10 | Scripting | Client Scripting Log |
11 | Client User Interface | Client-StreamingUX Log |
12 | Sequencer | Only on Sequencer |
13 | Reporting | Client Reporting Log |
14 | Manifest | ManifestLibrary Log |
App-V Fehlercode
Es folgt der eigentliche Fehlercode. Das kann ein App-V spezifischer Fehlercode (erste Stelle „0“), aber auch ein Windows-Rückgabewert (erste Stelle „2“) als „#HResult“ sein oder ein System Error Code. Letzterer beginnt meistens mit sehr vielen Nullen und kann über den „Net HelpMsg ###“ Befehl analysiert werden.
Die Systemfehlercodes (0x0000xxxx) können hier nachgeschlagen werden:
https://msdn.microsoft.com/en-us/library/windows/desktop/ms681382(v=vs.85).aspx
Zu den #HRESULT Fehlercodes finden sich hier Informationen:
https://msdn.microsoft.com/en-us/library/cc231198.aspx
Ein typischer Fehlercode bei der Skriptintegration ist „10-0000000C“. Die ersten drei Bits sind „0“. Die Fehlerquelle ist „10“, also „Skripting“. Das passt erst einmal. “0C“ in Dezimal ist 12.
PS C:\Users\Andreas> net helpmsg 12
Der Zugriffscode ist unzulässig.
Wenn es sich um ein HRESULT Code handelt, beginnt der Fehlercode meistens mit 0x8. Das beschreibt das erste Bit im HRESULT. Wenn es ein HRESULT Code ist, sind nur noch die ersten 16 Bits mit dem eigentlichen Fehlercode interessant.
Microsoft HRESULT Code
- S: schwerer Fehler. Wenn gesetzt, bedeutet, dass ein Fehler aufgetreten ist. Wenn nicht gesetzt, dann wird eine Erfolgsmeldung zurückgegeben. Bei App-V ist das oft die erste „8“ im HResult (Binär = 1.000).
- R: ist verbunden mit dem „N“-Bit. Wenn N nicht gesetzt ist, muss auch R auf 0 stehen. Wenn das N-Bit gesetzt ist, wird dieses Bit durch den NTSTATUS definiert.
- C: kundendefiniert. Dieses Bit gibt an, ob der Wert kundenspezifisch oder Microsoft-definiert ist. Das Bit wird auf kundeneigene Werte gesetzt oder für Microsoft-definierte Werte deaktiviert.
- N: wenn gesetzt, bedeutet dies, dass der Fehlercode ein NTSTATUS-Wert ist (wie unter http://msdn.microsoft.com/en-us/library/cc231200.aspx angegeben) und Bit gesetzt ist.
- R: reserviert. Sollte auf 0 gesetzt werden.
Facility Codes (Auszug) https://msdn.microsoft.com/en-us/library/cc231198.aspx
1. FACILITY_NULL – der Default-Einstellcode
2. FACILITY_RPC – die Quelle des Fehlercodes ist ein RPC-Subsystem.
3. FACILITY_DISPATCH – die Quelle des Fehlercodes ist ein COM Dispatch.
4. FACILITY_STORAGE – die Quelle des Fehlercodes ist der OLE-Speicher.
5. FACILITY_ITF – die Quelle des Fehlercodes ist das COM/OLE Interface Management.
6. FACILITY_WIN32 – diese Region ist reserviert, um ungeschützte Fehlercodes in HRESULTs abzubilden.
7. FACILITY_WINDOWS – Fehlercodes im Windows-Subsystem
8. (19 HEX) FACILITY_HTTP – Quelle des Fehlercodes ist die HTTP-Unterstützung.
Beispiel: 14-00000007
14 ist das Manifest 07 und liefert mit „Net helpMsg“ „Die Speichersteuerblöcke wurden zerstört.“. Dieser Fehler ist bei einer fehlerhaften AppXManifest.xml im Paket aufgetreten.
Beispiel: 27-80190191
2 – es wurde protokolliert (Eventlog).
07 – App-V Element ist App-V Publishing.
8 – es ist ein HRESULT in Facility Hex:19 (Dez 25) laut Facility-Tabelle „FACILITY_HTTP“
0191 Hex oder 401 Dezimal ist der Fehlercode in der Facility.
http Statuscodes finden sich hier:
https://msdn.microsoft.com/en-us/library/windows/desktop/aa383887(v=vs.85).aspx
HTTP_STATUS_DENIED 401 The requested resource requires user authentication.
Ein letztes Beispiel direkt aus der PowerShell:
Sync-AppvPublishingServer : Application Virtualization Service failed to complete requested operation.
Operation attempted: RefreshPublishingServer.
Windows Error: 0x801901F4 -
Error module: Publishing. Internal error detail: 45500D27801901F4.
Please consult AppV Client Event Log for more details.
At line:1 char:1
+ Sync-AppvPublishingServer 1
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidResult: (:) [Sync-AppvPublishingServer], ClientException
+ FullyQualifiedErrorId : RefreshPublishingServerError,Microsoft.AppV.AppvClientPowerShell.SyncAppvPublishingServer
Getting server publishing data failed.
URL: http://suranav01.uran.local:8091/
Error code: 0x45500D27 - 0x801901F4
Fehlercode 27-0x801901F4
2 – es wurde protokolliert (Eventlog).
07- App-V Element ist App-V Publishing.
8 – es ist ein HRESULT in Facility Hex:19 (Dez 25) laut Facility-Tabelle „FACILITY_HTTP“.
01F4 = Dez. 500 „HTTP_STATUS_SERVER_ERROR“, 500, „The server encountered an unexpected condition that prevented it from fulfilling the request”.
Anmerkung: Einfacher ist es natülich, immer erst den Fehler im Internet zu suchen.
Hier einige Beispiele
050009000A Microsoft Knowledge
070000000B Microsoft
05-00090001 Microsoft Knowledge
04-00000028 anandthearchitect.com Microsoft Knowledge
27-801901F7 microsoft.com Microsoft Docs
0C-80070005 Microsoft Knowledge
0C-8007012F microsoft.com Microsoft Docs
00-c0000142 Microsoft Docs
Hilfreich kann auch dieser Link sein: