{"id":1058,"date":"2017-12-08T01:26:48","date_gmt":"2017-12-08T00:26:48","guid":{"rendered":"https:\/\/hitco.at\/blog\/?p=1058"},"modified":"2023-08-29T08:31:35","modified_gmt":"2023-08-29T06:31:35","slug":"dateiendungen-automatisiert-unter-windows-10-mit-den-gewuenschten-applikationen-verknuepfen","status":"publish","type":"post","link":"https:\/\/hitco.at\/blog\/dateiendungen-automatisiert-unter-windows-10-mit-den-gewuenschten-applikationen-verknuepfen\/","title":{"rendered":"Dateiendungen automatisiert unter Windows 10 mit den gew\u00fcnschten Applikationen verkn\u00fcpfen"},"content":{"rendered":"<p>Bis Windows 7 war die Verkn\u00fcpfung von Dateiendungen mit den zugeh\u00f6rigen Programmen mittels &#8222;einfacher&#8220; Registry-Keys realisiert. Wollte man z.B. per Script die Datei-Zuordnungen herstellen, so war dies bequem mittels Registry-Manipulation (z.B. reg.exe, regedit, etc&#8230; ) m\u00f6glich.<\/p>\n<p>Mit Windows 10 und der Einf\u00fchrung von Universal-Apps ist dies (zumindest f\u00fcr einige g\u00e4ngige Datei-Endungen wie z.B. *.pdf, *.html etc&#8230;) nicht mehr so einfach m\u00f6glich. Die Problematik wird nachfolgend anhand der Verkn\u00fcpfung von PDF-Dateien erl\u00e4utert, welche standardm\u00e4\u00dfig mittels Edge ge\u00f6ffnet und dargestellt werden &#8211; selbst wenn <em>Adobe Reader<\/em> installiert wurde!<\/p>\n<p>Applikationen (wie z.B. Adobe Acrobat Reader) k\u00f6nnen sich unter Windows 10 nicht mehr selbst als Default registrieren, Anwender k\u00f6nnen Ihre Pr\u00e4ferenz ausschlie\u00dflich \u00fcber ein von Windows bereitgestelltes GUI interaktiv festlegen, welches nicht nur die Auswahl von Win32-Anwendungen sondern auch von Universal-Apps anbietet:<\/p>\n<figure id=\"attachment_1059\" aria-describedby=\"caption-attachment-1059\" style=\"width: 390px\" class=\"wp-caption aligncenter center\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-1059 size-full\" src=\"https:\/\/hitco.at\/blog\/wp-content\/uploads\/Applikationen-Verknuepfen_Auswahldialog.png\" alt=\"Applikationen verkn\u00fcpfen Auswahldialog\" width=\"390\" height=\"452\" srcset=\"https:\/\/hitco.at\/blog\/wp-content\/uploads\/Applikationen-Verknuepfen_Auswahldialog.png 390w, https:\/\/hitco.at\/blog\/wp-content\/uploads\/Applikationen-Verknuepfen_Auswahldialog-259x300.png 259w\" sizes=\"auto, (max-width: 390px) 100vw, 390px\" \/><figcaption id=\"caption-attachment-1059\" class=\"wp-caption-text\">Applikationen verkn\u00fcpfen: Auswahldialog<\/figcaption><\/figure>\n<p>\u00c4ndert man diese Zuordnung, wird dies wie folgt gespeichert:<\/p>\n<pre>HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\FileExts\\.pdf\\UserChoice<\/pre>\n<figure id=\"attachment_1061\" aria-describedby=\"caption-attachment-1061\" style=\"width: 691px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1061\" src=\"https:\/\/hitco.at\/blog\/wp-content\/uploads\/Applikationen-Verknuepfen_RegistryKeys.png\" alt=\"Applikationen verkn\u00fcpfen: Registry-Keys\" width=\"691\" height=\"158\" srcset=\"https:\/\/hitco.at\/blog\/wp-content\/uploads\/Applikationen-Verknuepfen_RegistryKeys.png 691w, https:\/\/hitco.at\/blog\/wp-content\/uploads\/Applikationen-Verknuepfen_RegistryKeys-300x69.png 300w\" sizes=\"auto, (max-width: 691px) 100vw, 691px\" \/><figcaption id=\"caption-attachment-1061\" class=\"wp-caption-text\">Applikationen verkn\u00fcpfen: Registry-Keys (Default: verkn\u00fcpft mit Microsoft Edge Browser)<\/figcaption><\/figure>\n<p>Auff\u00e4llig hierbei: Neben dem schon aus fr\u00fcheren Windows-Versionen bekannten &#8222;ProgId&#8220; Wert, der hier die kryptisch anmutende Zeichenfolge &#8222;AppXd4nrz8ff68srnhf9t5a8sbjyar1cr723&#8220; beinhaltet (es handelt sich hiebei schlicht um den Well-Known-Identifyer f\u00fcr Microsoft Edge), existiert nun auch eine weitere Zeichenfolge &#8222;Hash&#8220; mit einem kurzen Base64-kodierten Wert.<\/p>\n<p>Verkn\u00fcpft man nun mittels des oben dargestellten Auswahl-Dialogs den gew\u00fcnschten <em>Adobe Reader DC<\/em> mit der Dateiendung PDF, so \u00e4ndern sich die Registry-Keys wie folgt:<\/p>\n<blockquote>\n<pre>ProgId:&nbsp;AcroExch.Document.DC\r\nHash:  &nbsp;Pol5Ki6OyIM=   (neuer, stets wechselnder Wert!)<\/pre>\n<\/blockquote>\n<p>Folgende Erkenntnis gewinnt man, wenn man den Mechanismus n\u00e4her untersucht:<\/p>\n<ul>\n<li>Versucht man diese Registry-Keys zu manipulieren, z.B. manuell oder gescriptet anzulegen, so werden diese nicht akzeptiert. Der Auswahl-Dialog erscheint wieder, bzw. die Verkn\u00fcpfung wird auf Edge wiederhergestellt.<\/li>\n<li>Die Kombination ProgId + Hash&nbsp; funktioniert nur auf diesem PC, mit diesem Benutzer und nur solange man den UserChoice Registry-Key nicht &#8222;touch&#8217;t&#8220;.&nbsp;<\/li>\n<li>Im Hash sind daher allem Anschein nach zumindest folgende Merkmale enthalten:\n<ul>\n<li>Dateiendung (.pdf) und ProgId, z.B.:&nbsp;AcroExch.Document.DC<\/li>\n<li>Zeitstempel des UserChoice Registry Keys<\/li>\n<li>SID des aktuellen Benutzers, z.B.:&nbsp;S-1-5-21-2884647033-3605804368-1986949432-1005<\/li>\n<\/ul>\n<\/li>\n<li>Dies f\u00fchrt dazu, dass man dieses Tupel bestehend aus ProgId und Hash nicht auf andere User oder andere Maschinen transferieren kann. Man kann es nicht einmal sichern und wiederherstellen, da der TimeStamp des Registry-Keys hierbei nicht identisch bleibt.<\/li>\n<\/ul>\n<h2>L\u00f6sung a&#8217;la Microsoft<\/h2>\n<p>Microsoft schl\u00e4gt vor in einer Enterprise-Umgebung die Verkn\u00fcpfungen mittels <a href=\"https:\/\/blogs.technet.microsoft.com\/windowsinternals\/2017\/10\/25\/windows-10-how-to-configure-file-associations-for-it-pros\/\" target=\"_blank\" rel=\"noopener\">Gruppenrichtlinien bzw. DISM<\/a> zu konfigurieren. Der Haken hierbei: Das funktioniert nicht so, wie man sich das vorstellt. Damit kann man &#8211; sofern die aktuelle Windows-Version dies \u00fcberhaupt beherrscht, offenbar gibts in diversen Releases Bugs &#8211; nur den Default von frischen (noch nie angemeldeten) Profilen beeinflussen. Eine \u00c4nderung bestehender Profile l\u00e4sst sich so nicht durchf\u00fchren. Siehe z.B. <a href=\"https:\/\/social.technet.microsoft.com\/Forums\/en-US\/d5fad871-8f5e-4c74-abaf-627809f8844b\/dism-import-defaultappassociations-doesnt-work-anymore-since-build-1511?forum=win10itprosetup\" target=\"_blank\" rel=\"noopener\">hier<\/a> &#8211; ein \u00fcber bereits mehrere Jahre und Windows-Versionen hinweg sehr emotional gef\u00fchrter Diskussions-Thread, in dem Microsoft wohl nicht ganz zu unrecht vorgeworfen wird hier unt\u00e4tig zu sein und die Kunden bzw. Administratoren im Stich l\u00e4sst. Offenkundig haben selbst zahlende Kunden die Enterprise-Support in Anspruch genommen haben um eine L\u00f6sung zu finden nichts zufriedenstellendes erhalten!<\/p>\n<h2>L\u00f6sung: Tool das den Hash errechnet<\/h2>\n<p>Ich war kurz davor zu versuchen die geheimnisvolle Microsoft&#8217;schen Hash-Implementierung selbst zu debuggen. Mit den Suchbegriffen <em>ProgId Hash Timestamp SID<\/em> kommt man jedoch recht rasch zur Website von&nbsp;<a href=\"http:\/\/kolbi.cz\/blog\/?p=346\" target=\"_blank\" rel=\"noopener\">Christoph Kolbicz<\/a>. Sein bereitgestelltes Tool&nbsp;<a href=\"http:\/\/kolbi.cz\/blog\/?p=346\" target=\"_blank\" rel=\"noopener\">SetUserFTA<\/a>&nbsp;berechnet den Hash und kann zum gescripteten Setzen der gew\u00fcnschten Applikation als Default-Handler verwendet werden:<\/p>\n<blockquote><p><em>SetUserFTA sets User File Type Associations per commandline or script on Windows 10 and Server 2016.<\/em><\/p><\/blockquote>\n<p>Beispiel:<\/p>\n<pre>SetUserFTA.exe .pdf AcroExch.Document.DC<\/pre>\n<figure id=\"attachment_1062\" aria-describedby=\"caption-attachment-1062\" style=\"width: 731px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-1062 size-full\" src=\"https:\/\/hitco.at\/blog\/wp-content\/uploads\/Applikationen-Verknuepfen_AdobeReader-SetUserFTA.png\" alt=\"Applikationen mittels SetUserFTA.exe verkn\u00fcpfen: .pdf mit AdobeReader-DC\" width=\"731\" height=\"230\" srcset=\"https:\/\/hitco.at\/blog\/wp-content\/uploads\/Applikationen-Verknuepfen_AdobeReader-SetUserFTA.png 731w, https:\/\/hitco.at\/blog\/wp-content\/uploads\/Applikationen-Verknuepfen_AdobeReader-SetUserFTA-300x94.png 300w\" sizes=\"auto, (max-width: 731px) 100vw, 731px\" \/><figcaption id=\"caption-attachment-1062\" class=\"wp-caption-text\">Applikationen mittels SetUserFTA.exe verkn\u00fcpfen: .pdf mit AdobeReader<\/figcaption><\/figure>\n<p>Funktionskontrolle zeigt: Doppelklick auf eine PDF-Datei startet nun unmittelbar Adobe Reader =&gt; Problem elegant gel\u00f6st.&nbsp;<\/p>\n<p>Sorge ob das von&nbsp;<a href=\"http:\/\/kolbi.cz\/blog\/?p=346\" target=\"_blank\" rel=\"noopener\">Christoph Kolbicz<\/a>&nbsp;bereitgestellte Tool Malware enthalten k\u00f6nnte hatte ich freilich, eine intensive ProcMon-Analyse hat meinerseits jedoch keinerlei Anhaltspunkte f\u00fcr diese Bef\u00fcrchtung ergeben &#8211; das Tool tut offenkundig wirklich nur das, was es tun soll und nicht mehr.<\/p>\n<p>Die gleiche Problematik ergibt sich \u00fcbrigens, wenn die Protokoll-Handler f\u00fcr HTTP\/HTTPS etc&#8230; ge\u00e4ndert werden sollen, also der Default-Browser. Auch hierf\u00fcr steht ein Tool bereit:&nbsp;<a href=\"http:\/\/kolbi.cz\/blog\/?p=396\" target=\"_blank\" rel=\"noopener\">SetDefaultBrowser.exe<\/a><\/p>\n\n\n<h2 class=\"wp-block-heading\">Alternative L\u00f6sungen<\/h2>\n\n\n\n<p>Nachtrag (ein paar Jahre sp\u00e4ter :-)) &#8230; es gibt mittlerweile auch alternative L\u00f6sungen. Die mir am zweckm\u00e4\u00dfigsten erscheinende ist z.B. folgende Implementierung als PowerShell-Script, dieser Autor hat aber in seinem GitHub-Repo auch AutoIt-basierte L\u00f6sungen und mehr im Fundus: <a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/DanysysTeam\/PS-SFTA\" target=\"_blank\">https:\/\/github.com\/DanysysTeam\/PS-SFTA<\/a><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bis Windows 7 war die Verkn\u00fcpfung von Dateiendungen mit den zugeh\u00f6rigen Programmen mittels &#8222;einfacher&#8220; Registry-Keys realisiert. Wollte man z.B. per Script die Datei-Zuordnungen herstellen, so war dies bequem mittels Registry-Manipulation (z.B. reg.exe, regedit, etc&#8230; ) m\u00f6glich. Mit Windows 10 und der Einf\u00fchrung von Universal-Apps ist dies (zumindest f\u00fcr einige g\u00e4ngige Datei-Endungen wie z.B. *.pdf, *.html etc&#8230;) nicht mehr so einfach&#8230; <\/p>\n","protected":false},"author":1,"featured_media":1062,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[23],"tags":[185,186,188,187,191,190,189,105],"class_list":["post-1058","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-windows","tag-dateiverknuepfungen","tag-file-associations","tag-hash","tag-progid","tag-registry","tag-script","tag-userchoice","tag-windows-10"],"_links":{"self":[{"href":"https:\/\/hitco.at\/blog\/wp-json\/wp\/v2\/posts\/1058","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hitco.at\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hitco.at\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hitco.at\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hitco.at\/blog\/wp-json\/wp\/v2\/comments?post=1058"}],"version-history":[{"count":15,"href":"https:\/\/hitco.at\/blog\/wp-json\/wp\/v2\/posts\/1058\/revisions"}],"predecessor-version":[{"id":2095,"href":"https:\/\/hitco.at\/blog\/wp-json\/wp\/v2\/posts\/1058\/revisions\/2095"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/hitco.at\/blog\/wp-json\/wp\/v2\/media\/1062"}],"wp:attachment":[{"href":"https:\/\/hitco.at\/blog\/wp-json\/wp\/v2\/media?parent=1058"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hitco.at\/blog\/wp-json\/wp\/v2\/categories?post=1058"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hitco.at\/blog\/wp-json\/wp\/v2\/tags?post=1058"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}