{"id":2102,"date":"2026-08-25T16:00:00","date_gmt":"2026-08-25T14:00:00","guid":{"rendered":"https:\/\/www.koetzingit.de\/?p=2102"},"modified":"2026-08-24T18:41:17","modified_gmt":"2026-08-24T16:41:17","slug":"this-is-not-a-legacy-application-but-a-current-application","status":"publish","type":"post","link":"https:\/\/www.koetzingit.de\/en\/das-ist-keine-legacy-anwendung-sondern-eine-aktuelle-anwendung\/","title":{"rendered":"This is not a legacy application; it's a modern one."},"content":{"rendered":"<h2 class=\"wp-block-heading\">This is not a legacy application; it's a modern one.<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">If an application on a multi-session host does not behave as expected, we call it \u201e<strong>Legacy<\/strong>\u201c and carry on. This word does a lot of work that it doesn't deserve.\u201d.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The application in this project is current. It is actively being developed, actively being sold, and receives regular releases. And it stores its entire configuration\u2014most notably the database connection\u2014in HKEY_LOCAL_MACHINE. Not per user. Not per session. Once per machine.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">On a Citrix VDA, this means that every user accesses the same database. For a business unit that needs to run production, QA, and development in parallel, this is a deal-breaker. Until now, the customer had <strong>App-V<\/strong> It was in use, but it had been discontinued, so we needed a replacement. My instinctive reaction: <strong>Citrix App Layering \u2013 The decision has already been made, with three exclamation points<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">First, ask what really hurts<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Before I talk about technology, I sit down with the relevant department\u2014not with IT. The question is always the same: What exactly isn't working?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The answer was precise. No isolation. No DLL conflicts. No parallel runtimes. Just a handful of registry values under HKLM that cannot be set on a per-user basis. And, as it turned out, the application can be launched multiple times under different EXE names.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This isn't an application virtualization problem. It's a redirection problem\u2014and App Layering isn't the right solution for it.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The Solution: Citrix Profile Management App Access Control<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Most people know App Access Control as \u201eHide Applications on the Golden Image\u201c\u2014Citrix\u2019s answer to FSLogix App Masking. Less well known is the second half: redirect rules for files, folders, registry keys, and values, assigned per user, machine, or process.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Here's how the redirection from HKLM to HKCU works:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>The <em>Rule Generator for App Access Control<\/em> You can find it in the Citrix Environment Tool Hub. There's also a PowerShell method\u2014you've just heard about it, and you can forget it right away.<\/li>\n\n\n\n<li>Launch Rule Generator \u2192 Create rule \u2192 Redirect \u2192 Registry Key.<\/li>\n\n\n\n<li>Select or enter the key to be redirected: <br><code>HKLM\\Software\\MyApp\\DB<\/code> <br>\u2192 <code>HKCU\\Software\\MyApp\\DB_Prod<\/code><br>\u2192 <code>HKCU\\Software\\MyApp\\DB_QA<\/code> <br>\u2192 <code>HKCU\\Software\\MyApp\\DB_DEV<\/code>.<\/li>\n\n\n\n<li>Assign processes: <code>MyApp_Prod.exe<\/code>, <code>MyApp_QA.exe<\/code>, <code>MyApp_DEV.exe<\/code>.<\/li>\n\n\n\n<li>The Citrix Policy <em>App access control<\/em> Edit, insert the raw data, enable it, and save it.<\/li>\n\n\n\n<li>Distribute the actual HKCU values per user via Group Policy settings.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Done. Supports multiple users\u2014no packaging, no sequencer, no additional layer.<\/p>\n\n\n\n<figure data-spectra-id=\"spectra-mt7g02xi-x3wzsa\" class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"982\" height=\"677\" src=\"https:\/\/www.koetzingit.de\/wp-content\/uploads\/2026\/08\/app-access-raw.png\" alt=\"app access raw\" class=\"wp-image-2104\" title=\"This is not a legacy application; it&#039;s a modern one.\" srcset=\"https:\/\/www.koetzingit.de\/wp-content\/uploads\/2026\/08\/app-access-raw.png 982w, https:\/\/www.koetzingit.de\/wp-content\/uploads\/2026\/08\/app-access-raw-300x207.png 300w, https:\/\/www.koetzingit.de\/wp-content\/uploads\/2026\/08\/app-access-raw-17x12.png 17w, https:\/\/www.koetzingit.de\/wp-content\/uploads\/2026\/08\/app-access-raw-767x529.png 767w\" sizes=\"auto, (max-width: 982px) 100vw, 982px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Since the customer operates multiple database instances, we took it a step further: <strong>The same application was published multiple times<\/strong>, and the redirect rule points to a different destination for each process. One installation, multiple rule sets, no second image.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Better than FSLogix App Masking<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">FSLogix policy files are stored on each server or in the master image; any change requires deployment or a rebuild.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The Citrix rule set is located centrally in the policy\u2014customize it, copy the raw data, and paste it. And on top of that, the Rule Generator can import existing FSLogix rule sets.<\/p>\n\n\n\n<figure data-spectra-id=\"spectra-mt7fyumb-qvwxln\" class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"982\" height=\"677\" src=\"https:\/\/www.koetzingit.de\/wp-content\/uploads\/2026\/08\/App-Access-View.png\" alt=\"app access view\" class=\"wp-image-2103\" title=\"This is not a legacy application; it&#039;s a modern one.\" srcset=\"https:\/\/www.koetzingit.de\/wp-content\/uploads\/2026\/08\/App-Access-View.png 982w, https:\/\/www.koetzingit.de\/wp-content\/uploads\/2026\/08\/App-Access-View-300x207.png 300w, https:\/\/www.koetzingit.de\/wp-content\/uploads\/2026\/08\/App-Access-View-17x12.png 17w, https:\/\/www.koetzingit.de\/wp-content\/uploads\/2026\/08\/App-Access-View-767x529.png 767w\" sizes=\"auto, (max-width: 982px) 100vw, 982px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">This tool is simply better\u2014it has a clean category view and provides much more detail about what you're actually doing.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A project that seemed like it would involve application virtualization ended up amounting to just a few redirect rules in a policy.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>How often do you use infrastructure to fix a manufacturer\u2019s design decisions\u2014and do you ever report that back to them?<\/strong><\/p>","protected":false},"excerpt":{"rendered":"<p>Das ist keine Legacy-Anwendung, sondern eine aktuelle Anwendung. Wenn sich eine Anwendung auf einem Multi-Session-Host nicht benimmt, nennen wir sie [&hellip;]<\/p>\n","protected":false},"author":1755,"featured_media":2110,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[12],"tags":[],"class_list":["post-2102","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-articles-de"],"uagb_featured_image_src":{"full":["https:\/\/www.koetzingit.de\/wp-content\/uploads\/2026\/08\/UPM-AC-43.jpg",2400,1792,false],"thumbnail":["https:\/\/www.koetzingit.de\/wp-content\/uploads\/2026\/08\/UPM-AC-43-150x150.jpg",150,150,true],"medium":["https:\/\/www.koetzingit.de\/wp-content\/uploads\/2026\/08\/UPM-AC-43-300x224.jpg",300,224,true],"medium_large":["https:\/\/www.koetzingit.de\/wp-content\/uploads\/2026\/08\/UPM-AC-43-768x573.jpg",768,573,true],"large":["https:\/\/www.koetzingit.de\/wp-content\/uploads\/2026\/08\/UPM-AC-43-1024x765.jpg",1024,765,true],"1536x1536":["https:\/\/www.koetzingit.de\/wp-content\/uploads\/2026\/08\/UPM-AC-43-1536x1147.jpg",1536,1147,true],"2048x2048":["https:\/\/www.koetzingit.de\/wp-content\/uploads\/2026\/08\/UPM-AC-43-2048x1529.jpg",2048,1529,true],"trp-custom-language-flag":["https:\/\/www.koetzingit.de\/wp-content\/uploads\/2026\/08\/UPM-AC-43-16x12.jpg",16,12,true]},"uagb_author_info":{"display_name":"Thomas K\u00f6tzing","author_link":"https:\/\/www.koetzingit.de\/en\/author\/thomas-koetzing\/"},"uagb_comment_info":0,"uagb_excerpt":"Das ist keine Legacy-Anwendung, sondern eine aktuelle Anwendung. Wenn sich eine Anwendung auf einem Multi-Session-Host nicht benimmt, nennen wir sie [&hellip;]","_links":{"self":[{"href":"https:\/\/www.koetzingit.de\/en\/wp-json\/wp\/v2\/posts\/2102","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.koetzingit.de\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.koetzingit.de\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.koetzingit.de\/en\/wp-json\/wp\/v2\/users\/1755"}],"replies":[{"embeddable":true,"href":"https:\/\/www.koetzingit.de\/en\/wp-json\/wp\/v2\/comments?post=2102"}],"version-history":[{"count":4,"href":"https:\/\/www.koetzingit.de\/en\/wp-json\/wp\/v2\/posts\/2102\/revisions"}],"predecessor-version":[{"id":2118,"href":"https:\/\/www.koetzingit.de\/en\/wp-json\/wp\/v2\/posts\/2102\/revisions\/2118"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.koetzingit.de\/en\/wp-json\/wp\/v2\/media\/2110"}],"wp:attachment":[{"href":"https:\/\/www.koetzingit.de\/en\/wp-json\/wp\/v2\/media?parent=2102"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.koetzingit.de\/en\/wp-json\/wp\/v2\/categories?post=2102"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.koetzingit.de\/en\/wp-json\/wp\/v2\/tags?post=2102"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}