<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Bart Jacobs &#8211; Carl Webster</title>
	<atom:link href="https://www.carlwebster.com/author/bartjacobs/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.carlwebster.com</link>
	<description>The Accidental Citrix Admin - The site for those who find themselves supporting Citrix involuntarily or accidentally</description>
	<lastBuildDate>Mon, 25 Jul 2022 15:20:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.2</generator>
<site xmlns="com-wordpress:feed-additions:1">42228915</site>	<item>
		<title>Bart Jacobs’s Toolbox Inventory Update 22H1</title>
		<link>https://www.carlwebster.com/bart-jacobss-toolbox-inventory-update-22h1/</link>
		
		<dc:creator><![CDATA[Bart Jacobs]]></dc:creator>
		<pubDate>Mon, 25 Jul 2022 15:20:09 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[PowerShell]]></category>
		<guid isPermaLink="false">https://www.carlwebster.com/?p=62298</guid>

					<description><![CDATA[Unlike last time, here, I didn&#8217;t wait another full year to do another Inventory Update. With a little over 6 months, here&#8217;s what&#8217;s new: Toolbox #012: Citrix UPM Reset Tool&#8230;]]></description>
										<content:encoded><![CDATA[<p>Unlike last time, <a href="https://www.carlwebster.com/bart-jacobss-toolbox-inventory-update/" target="_blank" rel="noopener">here</a>, I didn&#8217;t wait another full year to do another Inventory Update.</p>
<p>With a little over 6 months, here&#8217;s what&#8217;s new:</p>
<p><span data-preserver-spaces="true">Toolbox #012: Citrix UPM Reset Tool</span></p>
<ul>
<li><span data-preserver-spaces="true">Blog: <a href="https://www.cloudsparkle.be/2021-12-20-UPMResetFramework/" target="_blank" rel="noopener">https://www.cloudsparkle.be/2020-10-31-PSHostInfo/</a></span></li>
<li><span data-preserver-spaces="true">GitHub: <a href="https://github.com/Cloudsparkle/UserProfileReset" target="_blank" rel="noopener">https://github.com/Cloudsparkle/PSHostInfo</a></span></li>
<li><span data-preserver-spaces="true">Summary: Citrix UPM reset framework</span></li>
</ul>
<p><span data-preserver-spaces="true">Toolbox #013: IISLogMonitor</span></p>
<ul>
<li><span data-preserver-spaces="true">Blog: <a href="https://www.cloudsparkle.be/2022-02-10-IISLogMonitor/" target="_blank" rel="noopener">https://www.cloudsparkle.be/2021-03-17-CTXAutolaunch/</a></span></li>
<li><span data-preserver-spaces="true">GitHub: <a href="https://github.com/Cloudsparkle/IISLogMonitor" target="_blank" rel="noopener">https://github.com/Cloudsparkle/CTXAutoLaunch</a></span></li>
<li><span data-preserver-spaces="true">Summary: A PowerShell tool to continuous IIS Log file monitoring</span></li>
</ul>
<p><span data-preserver-spaces="true">Toolbox #014: FAS-CertCheck</span></p>
<ul>
<li><span data-preserver-spaces="true">Blog: <a href="https://www.cloudsparkle.be/2022-03-29-FAS-CertCheck/">https://www.cloudsparkle.be/2022-03-29-FAS-CertCheck/</a></span></li>
<li><span data-preserver-spaces="true">GitHub: <a href="https://github.com/Cloudsparkle/FAS-CertCheck">https://github.com/Cloudsparkle/FAS-CertCheck</a></span></li>
<li><span data-preserver-spaces="true">Summary: Powershell scripts to check certificates for Citrix FAS</span></li>
</ul>
<p><span data-preserver-spaces="true">Toolbox #015: PS-ScheduleTask</span></p>
<ul>
<li><span data-preserver-spaces="true">Blog: <a href="https://www.cloudsparkle.be/2022-06-08-ScheduledTasks/">https://www.cloudsparkle.be/2022-06-08-ScheduledTasks/</a></span></li>
<li><span data-preserver-spaces="true">GitHub: <a href="https://github.com/Cloudsparkle/PS-ScheduleTask">https://github.com/Cloudsparkle/PS-ScheduleTask</a></span></li>
<li><span data-preserver-spaces="true">Summary: Scheduled Tasks done in a special way.</span></li>
</ul>
<p><span data-preserver-spaces="true">Toolbox #016: A simple provisioning tool</span></p>
<ul>
<li><span data-preserver-spaces="true">Blog: <a href="https://www.cloudsparkle.be/2022-06-16-PSApplaunch/">https://www.cloudsparkle.be/2022-06-16-PSApplaunch/</a></span></li>
<li><span data-preserver-spaces="true">GitHub: <a href="https://github.com/Cloudsparkle/PS-AppLaunch">https://github.com/Cloudsparkle/PS-AppLaunch</a></span></li>
<li><span data-preserver-spaces="true">Summary: A framework to launch published applications</span></li>
</ul>
<p>Toolbox #016 was a big one for me, one that I look forward to in developing further in the future. Please get in touch with any questions or suggestions!</p>
<p><span data-preserver-spaces="true">That&#8217;s it for now. Stay tuned for more and above all: stay safe.</span></p>
<p><span data-preserver-spaces="true">Thank you</span></p>
<p><span data-preserver-spaces="true">Bart Jacobs</span></p>
<p><span data-preserver-spaces="true">CTP</span></p>
<p>&nbsp;</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">62298</post-id>	</item>
		<item>
		<title>Bart Jacobs’s Toolbox Inventory Update</title>
		<link>https://www.carlwebster.com/bart-jacobss-toolbox-inventory-update/</link>
		
		<dc:creator><![CDATA[Bart Jacobs]]></dc:creator>
		<pubDate>Mon, 13 Dec 2021 11:09:01 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[PowerShell]]></category>
		<guid isPermaLink="false">https://www.carlwebster.com/?p=61854</guid>

					<description><![CDATA[A little over a year ago I posted an inventory of my Toolbox, you can find it here. So I guess an update was, to say the least, overdue. Let&#8217;s&#8230;]]></description>
										<content:encoded><![CDATA[<p>A little over a year ago I posted an inventory of my Toolbox, you can find it <a href="https://www.carlwebster.com/bart-jacobss-toolbox-inventory/" target="_blank" rel="noopener">here</a>.</p>
<p>So I guess an update was, to say the least, overdue.</p>
<p>Let&#8217;s jump right in:</p>
<p><span data-preserver-spaces="true">Toolbox #007: PSHostInfo</span></p>
<ul>
<li><span data-preserver-spaces="true">Blog: <a href="https://www.cloudsparkle.be/2020-10-31-PSHostInfo/" target="_blank" rel="noopener">https://www.cloudsparkle.be/2020-10-31-PSHostInfo/</a></span></li>
<li><span data-preserver-spaces="true">GitHub: <a href="https://github.com/Cloudsparkle/PSHostInfo" target="_blank" rel="noopener">https://github.com/Cloudsparkle/PSHostInfo</a></span></li>
<li><span data-preserver-spaces="true">Summary: A PowerShell based version of the old tool HostInfo</span></li>
</ul>
<p><span data-preserver-spaces="true">Toolbox #008: CTXAutolaunch</span></p>
<ul>
<li><span data-preserver-spaces="true">Blog: <a href="https://www.cloudsparkle.be/2021-03-17-CTXAutolaunch/" target="_blank" rel="noopener">https://www.cloudsparkle.be/2021-03-17-CTXAutolaunch/</a></span></li>
<li><span data-preserver-spaces="true">GitHub: <a href="https://github.com/Cloudsparkle/CTXAutoLaunch" target="_blank" rel="noopener">https://github.com/Cloudsparkle/CTXAutoLaunch</a></span></li>
<li><span data-preserver-spaces="true">Summary: A PowerShell tool to launch Citrix Published resources (automatically).</span></li>
</ul>
<p><span data-preserver-spaces="true">Toolbox #009: Citrix UPM fix</span></p>
<ul>
<li><span data-preserver-spaces="true">Blog: <a href="https://www.cloudsparkle.be/2021-07-27-UPMFix/" target="_blank" rel="noopener">https://www.cloudsparkle.be/2021-07-27-UPMFix/</a></span></li>
<li><span data-preserver-spaces="true">GitHub: <a href="https://github.com/Cloudsparkle/Citrix-UPM-FileFix" target="_blank" rel="noopener">https://github.com/Cloudsparkle/Citrix-UPM-FileFix</a></span></li>
<li><span data-preserver-spaces="true">Summary: Some PowerShell to fix file permissions on Citrix UPM.</span></li>
</ul>
<p><span data-preserver-spaces="true">Toolbox #010: Counting Session Logon and Logoff</span></p>
<ul>
<li><span data-preserver-spaces="true">Blog: <a href="https://www.cloudsparkle.be/2021-09-30-CTXSessionActivity/" target="_blank" rel="noopener">https://www.cloudsparkle.be/2021-09-30-CTXSessionActivity/</a></span></li>
<li><span data-preserver-spaces="true">GitHub: <a href="https://github.com/Cloudsparkle/CTXSessionActivityCounter" target="_blank" rel="noopener">https://github.com/Cloudsparkle/CTXSessionActivityCounter</a></span></li>
<li><span data-preserver-spaces="true">Summary: Count those session logon and logoff events with PowerShell</span></li>
</ul>
<p><span data-preserver-spaces="true">Toolbox #011: A simple provisioning tool</span></p>
<ul>
<li><span data-preserver-spaces="true">Blog: <a href="https://www.cloudsparkle.be/2021-10-13-PS-ADUserRoleProv/" target="_blank" rel="noopener">https://www.cloudsparkle.be/2021-10-13-PS-ADUserRoleProv/</a></span></li>
<li><span data-preserver-spaces="true">GitHub: <a href="https://github.com/Cloudsparkle/PS-ADUserRoleProv" target="_blank" rel="noopener">https://github.com/Cloudsparkle/PS-ADUserRoleProv</a></span></li>
<li><span data-preserver-spaces="true">Summary: Provide a simple tool to provision application resources.</span></li>
</ul>
<p><span data-preserver-spaces="true">That&#8217;s it for now. Stay tuned for more and above all: stay safe.</span></p>
<p><span data-preserver-spaces="true">Thank you</span></p>
<p><span data-preserver-spaces="true">Bart Jacobs</span></p>
<p><span data-preserver-spaces="true">CTP</span></p>
<p>&nbsp;</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">61854</post-id>	</item>
		<item>
		<title>My truth on EUC, with a touch of #DevOps</title>
		<link>https://www.carlwebster.com/my-truth-on-euc-with-a-touch-of-devops/</link>
		
		<dc:creator><![CDATA[Bart Jacobs]]></dc:creator>
		<pubDate>Fri, 30 Oct 2020 09:00:43 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<guid isPermaLink="false">https://www.carlwebster.com/?p=21278</guid>

					<description><![CDATA[This post was originally posted on my blog at  https://www.cloudsparkle.be/2020-10-19-EUC-DevOps/ on October 19, 2020. See what I did there? Some sneaky clickbait. But just keep reading; I promise the rest&#8230;]]></description>
										<content:encoded><![CDATA[<p><em>This post was originally posted on my blog at  https://www.cloudsparkle.be/2020-10-19-EUC-DevOps/ on October 19, 2020.</em></p>
<p><span data-preserver-spaces="true">See what I did there? Some sneaky clickbait. But just keep reading; I promise the rest of the article is not.</span></p>
<p><span data-preserver-spaces="true">It&#8217;s not THE truth either. It doesn&#8217;t even want to be. It&#8217;s my own view on the world EUC today.</span></p>
<p><span data-preserver-spaces="true">Initially, I was about to write something just on Citrix. While correct, it would only be part of the story. There are other EUC vendors out there, and they are all facing similar issues. </span></p>
<p><span data-preserver-spaces="true">We&#8217;ve all been there. The end-user reports that his Business Application is not working to their liking by some form of communication.</span></p>
<p><span data-preserver-spaces="true">That kind of message can go two ways:</span></p>
<ul>
<li><span data-preserver-spaces="true">&#8220;I&#8217;ve got a Citrix problem because of Application X malfunctions.&#8221;*</span></li>
<li><span data-preserver-spaces="true">&#8220;Application X does not work, so it has to be a Citrix problem.&#8221;*</span></li>
</ul>
<p><span data-preserver-spaces="true">*Replace Citrix with EUC Vendor of choice</span></p>
<p><span data-preserver-spaces="true">EUC vendors have been innovating at an extraordinary pace. Gone are the days when we have to wait for a significant OS release to get some shiny new code bits. It&#8217;s always changing; to that extent, it can be a real struggle to keep up.</span></p>
<p><span data-preserver-spaces="true">But does this matter to the end-user? Not really; they just want their Business App. They don&#8217;t care if the technology provides a watermark, prevents them from taking a screenshot, etc. They wish to use their application to get their job done.</span></p>
<p><span data-preserver-spaces="true">When the application doesn&#8217;t work, however, the application rarely gets the blame. It will be EUC technology. Even the original developers of the application can be reluctant to accept responsibility and just blame &#8220;Citrix&#8221; or whatever. </span></p>
<p><span data-preserver-spaces="true">As EUC admins, operators, specialists, (insert fancy job title here), &#8230; we&#8217;re often caught in the middle of this. We will be called upon to explain &#8220;why&#8221; it doesn&#8217;t work. And we always have been, since the dawn of EUC technology. You could even say, EUC engineers were the very first DevOps engineers. </span></p>
<p><span data-preserver-spaces="true">Let me unpack that.</span></p>
<p><span data-preserver-spaces="true">DevOps originates from 2 words:</span></p>
<ul>
<li><span data-preserver-spaces="true">Development: the creation of new stuff</span></li>
<li><span data-preserver-spaces="true">Operations: making sure that (new) stuff keeps running</span></li>
</ul>
<p><span data-preserver-spaces="true"> So, why am I calling EUC engineers DevOps Engineers then?</span></p>
<ul>
<li><span data-preserver-spaces="true">Operations: we need to make sure things keep running. It can be as a day to day job or to come up with a design that maximizes this simple fact: the App needs to be available.</span></li>
<li><span data-preserver-spaces="true">Development: we don&#8217;t write &#8220;real&#8221; code. Not the application code itself anyway. We might need to write scripts to mitigate some application shortcomings. But more than anything, we develop the solution. The solution to the end-users problem: get that working Business Application.</span></li>
</ul>
<p><span data-preserver-spaces="true">So, let&#8217;s reconsider for a moment. EUC engineers will need to answer the question of why it doesn&#8217;t work. So why &#8220;operations&#8221; of the application is impacted. And we&#8217;ll be asked to fix it or to put in another way: to develop the solution.</span></p>
<p><span data-preserver-spaces="true">Technology will and can help us with both of those tasks. But technology by itself will never be the solution. It will help us get there. Sometimes so fast we don&#8217;t realize it. But it will always be &#8220;the tool&#8221; that will help us get there, not the endpoint of the journey of fixing something.</span></p>
<p><span data-preserver-spaces="true">To wrap up this blog post, this is a question to all EUC vendors out there: if you can&#8217;t explain why (new) technology will help us solve issues or make it better in general, go back to the drawing board and come back when you can.</span></p>
<p><span data-preserver-spaces="true">Technology doesn&#8217;t matter; it&#8217;s about the people knowing how to make the most of it.</span></p>
<p>&nbsp;</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">21278</post-id>	</item>
		<item>
		<title>Bart Jacobs&#8217;s Toolbox Inventory</title>
		<link>https://www.carlwebster.com/bart-jacobss-toolbox-inventory/</link>
		
		<dc:creator><![CDATA[Bart Jacobs]]></dc:creator>
		<pubDate>Thu, 08 Oct 2020 13:52:58 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://www.carlwebster.com/?p=21031</guid>

					<description><![CDATA[Back in March 2020, just before things got really weird, I finally started my own blog: https://www.cloudsparkle.be/. My very first post was also published on this very site here: https://www.carlwebster.com/bart-jacobss-toolbox-copyadgroupmembers/). For&#8230;]]></description>
										<content:encoded><![CDATA[<p><span data-preserver-spaces="true">Back in March 2020, just before things got really weird, I finally started my own blog: </span><a class="editor-rtfLink" href="https://www.cloudsparkle.be/" target="_blank" rel="noopener noreferrer"><span data-preserver-spaces="true">https://www.cloudsparkle.be/</span></a><span data-preserver-spaces="true">.</span></p>
<p><span data-preserver-spaces="true">My very first post was also published on this very site here: </span><a class="editor-rtfLink" href="https://www.carlwebster.com/bart-jacobss-toolbox-copyadgroupmembers/" target="_blank" rel="noopener noreferrer"><span data-preserver-spaces="true">https://www.carlwebster.com/bart-jacobss-toolbox-copyadgroupmembers/</span></a><span data-preserver-spaces="true">). For the posts that followed, I didn&#8217;t do that anymore.</span></p>
<p><span data-preserver-spaces="true">No regrets, but I feel it&#8217;s about time to revisit this site and to publish an overview of what I&#8217;ve been up to.</span></p>
<p><span data-preserver-spaces="true">To kick things off, let&#8217;s get this out of the way. Every script/tool I&#8217;ve published on this here is now also present on Github:</span></p>
<ul>
<li><span data-preserver-spaces="true">XenGhost: </span><a class="editor-rtfLink" href="https://github.com/Cloudsparkle/XenGhost" target="_blank" rel="noopener noreferrer"><span data-preserver-spaces="true">https://github.com/Cloudsparkle/XenGhost</span></a></li>
<li><span data-preserver-spaces="true">XenApp Server Monitor: </span><a class="editor-rtfLink" href="https://github.com/Cloudsparkle/XenApp-Server-Monitor" target="_blank" rel="noopener noreferrer"><span data-preserver-spaces="true">https://github.com/Cloudsparkle/XenApp-Server-Monitor</span></a></li>
<li><span data-preserver-spaces="true">XenApp Server Health Check: </span><a class="editor-rtfLink" href="https://github.com/Cloudsparkle/XenApp-Server-Health-Check" target="_blank" rel="noopener noreferrer"><span data-preserver-spaces="true">https://github.com/Cloudsparkle/XenApp-Server-Health-Check</span></a></li>
<li><span data-preserver-spaces="true">HostInfo: </span><a class="editor-rtfLink" href="https://github.com/Cloudsparkle/HostInfo" target="_blank" rel="noopener noreferrer"><span data-preserver-spaces="true">https://github.com/Cloudsparkle/HostInfo</span></a></li>
<li><span data-preserver-spaces="true">Deploy Printer Drivers: </span><a class="editor-rtfLink" href="https://github.com/Cloudsparkle/Deploy-Printer-Drivers" target="_blank" rel="noopener noreferrer"><span data-preserver-spaces="true">https://github.com/Cloudsparkle/Deploy-Printer-Drivers</span></a></li>
</ul>
<p><span data-preserver-spaces="true">I&#8217;m not really planning anything for them; I just want them out there to make my GitHub &#8220;complete&#8221; in a certain way.</span></p>
<p><span data-preserver-spaces="true">That&#8217;s it for my &#8220;legacy&#8221; tools. Let&#8217;s continue with the new stuff already.</span></p>
<p><span data-preserver-spaces="true">Toolbox #001: CopyADGroupMembers</span></p>
<ul>
<li><span data-preserver-spaces="true">Blog: </span><a class="editor-rtfLink" href="https://www.cloudsparkle.be/2020-03-31-CopyADGroupmembers/" target="_blank" rel="noopener noreferrer"><span data-preserver-spaces="true">https://www.cloudsparkle.be/2020-03-31-CopyADGroupmembers/</span></a></li>
<li><span data-preserver-spaces="true">GitHub: <a href="https://github.com/Cloudsparkle/CopyADGroupMembers" target="_blank" rel="noopener noreferrer">https://github.com/Cloudsparkle/CopyADGroupMembers</a></span></li>
<li><span data-preserver-spaces="true">Summary: A PowerShell tool to copy group members from one AD group to another.</span></li>
</ul>
<p><span data-preserver-spaces="true">Toolbox #002: PrinterMonitor</span></p>
<ul>
<li><span data-preserver-spaces="true">Blog: <a href="https://www.cloudsparkle.be/2020-04-06-Printmonitor/" target="_blank" rel="noopener noreferrer">https://www.cloudsparkle.be/2020-04-06-Printmonitor/</a></span></li>
<li><span data-preserver-spaces="true">GitHub: <a href="https://github.com/Cloudsparkle/PrinterMonitor" target="_blank" rel="noopener noreferrer">https://github.com/Cloudsparkle/PrinterMonitor</a></span></li>
<li><span data-preserver-spaces="true">Summary: A PowerShell tool to monitor printers on a print server.</span></li>
</ul>
<p><span data-preserver-spaces="true">Toolbox #003: PSProfileCleaner</span></p>
<ul>
<li><span data-preserver-spaces="true">Blog: <a href="https://www.cloudsparkle.be/2020-04-27-PSProfileCleaner/" target="_blank" rel="noopener noreferrer">https://www.cloudsparkle.be/2020-04-27-PSProfileCleaner/</a></span></li>
<li><span data-preserver-spaces="true">GitHub: <a href="https://github.com/Cloudsparkle/PSProfileCleaner" target="_blank" rel="noopener noreferrer">https://github.com/Cloudsparkle/PSProfileCleaner</a></span></li>
<li><span data-preserver-spaces="true">Summary: Powershell script to clean user profile left-overs.</span></li>
</ul>
<p><span data-preserver-spaces="true">Toolbox #004: GetIISLogEndpoints</span></p>
<ul>
<li><span data-preserver-spaces="true">Blog: <a href="https://www.cloudsparkle.be/2020-07-10-GetIISLogEndpoints/" target="_blank" rel="noopener noreferrer">https://www.cloudsparkle.be/2020-07-10-GetIISLogEndpoints/</a></span></li>
<li><span data-preserver-spaces="true">GitHub: <a href="https://github.com/Cloudsparkle/GetIISLogEndpoints" target="_blank" rel="noopener noreferrer">https://github.com/Cloudsparkle/GetIISLogEndpoints</a></span></li>
<li><span data-preserver-spaces="true">Summary: Powershell &#8211; Gets all unique Endpoint IP&#8217;s from IIS Logfiles.</span></li>
</ul>
<p><span data-preserver-spaces="true">Toolbox #005: CountCTXAppUsers</span></p>
<ul>
<li><span data-preserver-spaces="true">Blog: <a href="https://www.cloudsparkle.be/2020-09-14-CountCTXAppUsers/" target="_blank" rel="noopener noreferrer">https://www.cloudsparkle.be/2020-09-14-CountCTXAppUsers/</a></span></li>
<li><span data-preserver-spaces="true">GitHub: <a href="https://github.com/Cloudsparkle/CountCTXAppUsers" target="_blank" rel="noopener noreferrer">https://github.com/Cloudsparkle/CountCTXAppUsers</a></span></li>
<li><span data-preserver-spaces="true">Summary: A PowerShell tool to Count user numbers per published resource on Citrix.</span></li>
</ul>
<p><span data-preserver-spaces="true">Toolbox #006: CleanADGroupMembers</span></p>
<ul>
<li><span data-preserver-spaces="true">Blog: </span><a class="editor-rtfLink" href="https://www.cloudsparkle.be/blog-staging/2020-09-30-CleanADGroupMembers/" target="_blank" rel="noopener noreferrer"><span data-preserver-spaces="true">https://www.cloudsparkle.be/2020-09-30-CleanADGroupMembers/</span></a></li>
<li><span data-preserver-spaces="true">GitHub: <a href="https://github.com/Cloudsparkle/CleanADGroupMembers" target="_blank" rel="noopener noreferrer">https://github.com/Cloudsparkle/CleanADGroupMembers</a></span></li>
<li><span data-preserver-spaces="true">Summary: A PowerShell tool clean disabled accounts from an AD group, recursively if desired.</span></li>
</ul>
<p><span data-preserver-spaces="true">That&#8217;s it for now. Stay tuned for more and above all: stay safe.</span></p>
<p><span data-preserver-spaces="true">Thank you</span></p>
<p><span data-preserver-spaces="true">Bart Jacobs</span></p>
<p><span data-preserver-spaces="true">CTA</span></p>
<p>&nbsp;</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">21031</post-id>	</item>
		<item>
		<title>Bart Jacobs&#8217;s Toolbox: CopyADGroupMembers</title>
		<link>https://www.carlwebster.com/bart-jacobss-toolbox-copyadgroupmembers/</link>
		
		<dc:creator><![CDATA[Bart Jacobs]]></dc:creator>
		<pubDate>Fri, 20 Mar 2020 14:11:51 +0000</pubDate>
				<category><![CDATA[Active Directory]]></category>
		<guid isPermaLink="false">https://www.carlwebster.com/?p=18125</guid>

					<description><![CDATA[Another easy, simple addition to my toolbox: a PowerShell script to copy group members from one AD group to another. Why? Because I recently needed to do precisely that: after&#8230;]]></description>
										<content:encoded><![CDATA[<p>Another easy, simple addition to my toolbox: a PowerShell script to copy group members from one AD group to another.</p>
<p>Why? Because I recently needed to do precisely that: after having created a new AD Group, I needed it to have the same members as another AD Group. You can copy AD users, but not groups. Honestly, it was my initial thought I would be able to find this out there somewhere. I didn&#8217;t. Some scripts I found took a user account as the basis and copied &#8220;Member Of&#8221; to another user. That&#8217;s not what I needed. Other scripts were too &#8220;basic&#8221; like not offering support for an AD Forest with multiple domains.</p>
<p>So I decided to create my own. From the start, I decided I wanted something of a GUI. Nothing fancy, nothing custom. I have used Out-GridView before, and it would do the job perfectly this time around too.</p>
<p>The general idea was to make this publicly available, not just for my single use case. Hence the decision to put some checks in place, without taking it too far and over-complicate things for a simple copy script.</p>
<p>For example, the script checks if you selected the same AD group as source and destination.  It does not care if the destination AD group is empty or not. At the same time, it does not take AD Group Scopes into account and their specific membership constraints, etc. A simple Try-Catch to capture errors is just what I need for now.</p>
<p>Finally, Github is all the rage right now, so I thought I would give it a go.</p>
<p>Here is the link to the Repo:<br />
<a href="https://github.com/Cloudsparkle/CopyADGroupMembers" target="_blank" rel="noopener noreferrer">https://github.com/Cloudsparkle/CopyADGroupMembers</a></p>
<p>I&#8217;ll try to get this uploaded to the PowerShellGallery as well.</p>
<p>Thanks!</p>
<p>Bart Jacobs<br />
CTA</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">18125</post-id>	</item>
		<item>
		<title>The Citrix Cloud Connector and the Network</title>
		<link>https://www.carlwebster.com/the-citrix-cloud-connector-and-the-network/</link>
					<comments>https://www.carlwebster.com/the-citrix-cloud-connector-and-the-network/#comments</comments>
		
		<dc:creator><![CDATA[Bart Jacobs]]></dc:creator>
		<pubDate>Fri, 05 Apr 2019 11:57:49 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<guid isPermaLink="false">https://www.carlwebster.com/?p=14276</guid>

					<description><![CDATA[This article was posted originally at https//mycugc.com/&#8230; Let&#8217;s talk Citrix Cloud. More specifically, the Citrix Cloud Connector and its relationship with your network. So, what is the Cloud Connector? Docs.citrix.com&#8230;]]></description>
										<content:encoded><![CDATA[<p><em>This article was posted originally at <a href="https://www.mycugc.org/blogs/bart-jacobs/2019/03/19/the-citrix-cloud-connector-and-the-network?CommunityKey=7f3f3da7-755e-4be6-ba8f-7262e4c324f6&amp;tab=">https//mycugc.com/&#8230;</a></em></p>
<p>Let&#8217;s talk Citrix Cloud. More specifically, the Citrix Cloud Connector and its relationship with your network.</p>
<p>So, what is the Cloud Connector?<br />
Docs.citrix.com tells us:</p>
<p><em>&#8220;Citrix Cloud Connector: Provides communication between the resources in the resource location and the Citrix Cloud.&#8221;</em></p>
<p>In other words, it&#8217;s a vital component. It&#8217;s the bridge between the resources your users do their work on, and the management plane for you as an admin, in the (Citrix) cloud.</p>
<p>Citrix recommends deploying two Cloud Connectors per resource location to provide high availability. What is a resource location you may ask?<br />
Again, docs.citrix.com tells us:</p>
<p><em>&#8220;Resource locations contain the resources required to deliver cloud services to your subscribers.&#8221;</em><br />
<em>&#8220;Your resource location is wherever your resources reside, whether that’s a public or private cloud, a branch office, or a data center. &#8220;</em></p>
<p>So, let&#8217;s say you have a &#8220;classic&#8221; two datacenter setup, with actively used resources in both of them. They are interconnected and share a common Active Directory. Should you deploy this as one resource location or create a resource location for each datacenter? The latter would look something like this:</p>
<figure id="attachment_14277" aria-describedby="caption-attachment-14277" style="width: 530px" class="wp-caption alignnone"><img fetchpriority="high" decoding="async" class="wp-image-14277 size-medium" src="https://www.carlwebster.com/wp-content/uploads/2019/03/reference-architectures_virtual-apps-and-desktops-service_004-530x298.png" alt="" width="530" height="298" srcset="https://www.carlwebster.com/wp-content/uploads/2019/03/reference-architectures_virtual-apps-and-desktops-service_004-530x298.png 530w, https://www.carlwebster.com/wp-content/uploads/2019/03/reference-architectures_virtual-apps-and-desktops-service_004-768x432.png 768w, https://www.carlwebster.com/wp-content/uploads/2019/03/reference-architectures_virtual-apps-and-desktops-service_004-900x506.png 900w, https://www.carlwebster.com/wp-content/uploads/2019/03/reference-architectures_virtual-apps-and-desktops-service_004-600x338.png 600w, https://www.carlwebster.com/wp-content/uploads/2019/03/reference-architectures_virtual-apps-and-desktops-service_004.png 1280w" sizes="(max-width: 530px) 100vw, 530px" /><figcaption id="caption-attachment-14277" class="wp-caption-text">Source: docs.citrix.com</figcaption></figure>
<p>As with any Cloud-based service, don&#8217;t forget about the network. What if the Cloud Connector in datacenter A uses the Internet connection in datacenter B to connect to Citrix Cloud instead of the &#8220;local&#8221; connection? This would obviously add some latency to the connection.</p>
<p>Remember that the Cloud Connector can also be used as an HDX Proxy for your user sessions. To make matters more complicated, let&#8217;s assume that the same Cloud Connector in datacenter A connects the user with his workload in datacenter B. It will work, authentication will be just fine, and the session will connect.</p>
<p>As I was reminded of on Twitter (by Martyn Dews, @Yorkie71), starting with (CVADS and) VDA 7.18, there&#8217;s an option for a Direct connection from the VDA -&gt; Citrix Cloud. In that scenario, it&#8217;s every single VDA that will need a path to the Citrix Cloud. Not just the Cloud Connectors anymore.  It&#8217;s using the Rendezvous protocol, as described in more detail in this blogpost on Citrix.Com: <a href="https://www.citrix.com/blogs/2020/03/10/ica-and-the-gateway-service-have-a-new-rendezvous/" target="_blank" rel="noopener noreferrer">https://www.citrix.com/blogs/2020/03/10/ica-and-the-gateway-service-have-a-new-rendezvous/</a></p>
<p>It will all work, authentication will be just fine, and the sessions will connect. But is it ideal? Probably not, would be my guess. Why? It&#8217;s a working path, but not the ideal path. Take into consideration that Citrix manages the Cloud Connector. Which means that Citrix has the technological means to optimize the connection all the way to the Cloud Connector. After that, it&#8217;s basically just ICA/HDX traffic on your own network to your VDA endpoint. Deploy your Cloud Connectors and their connectivity to Citrix Cloud accordingly.</p>
<p>So, to wrap this up, what&#8217;s the key takeaway? In every Cloud deployment, Citrix Cloud or otherwise, always consider your network.</p>
<p>Thanks</p>
<p>Bart Jacobs<br />
Citrix CTA</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.carlwebster.com/the-citrix-cloud-connector-and-the-network/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">14276</post-id>	</item>
		<item>
		<title>Setting the Playing Field Right for Citrix Cloud</title>
		<link>https://www.carlwebster.com/setting-the-playing-field-right-for-citrix-cloud/</link>
					<comments>https://www.carlwebster.com/setting-the-playing-field-right-for-citrix-cloud/#comments</comments>
		
		<dc:creator><![CDATA[Bart Jacobs]]></dc:creator>
		<pubDate>Fri, 26 Oct 2018 06:00:13 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://www.carlwebster.com/?p=13905</guid>

					<description><![CDATA[Let&#8217;s get this one out there first: Citrix Cloud has enormous potential. But is it living up to that potential? To put it as a football metaphor: I wouldn&#8217;t want&#8230;]]></description>
										<content:encoded><![CDATA[<p>Let&#8217;s get this one out there first: Citrix Cloud has enormous potential. But is it living up to that potential? To put it as a football metaphor: I wouldn&#8217;t want to be feeding all the &#8220;next Messi&#8217;s&#8221; or &#8220;next Ronaldo&#8217;s&#8221; out there.</p>
<p>A series of events triggered this blog post. Or rather: my observations of Citrix Sales pitching Citrix Cloud to C-level execs.</p>
<p>Let&#8217;s start with the very basics: what is Citrix Cloud? And equally important what it isn&#8217;t.</p>
<p>Definition:<br />
Citrix Cloud is a workspace management platform for IT administrators to design, deliver, and manage virtual desktops and applications and other services, such as file sharing, on any device.</p>
<p>In layman&#8217;s terms: the Citrix servers needed for the management of a Citrix environment, such as Delivery controllers, license servers, the SQL database, are provided to you by Citrix. Citrix takes care of the VMs running underneath, Citrix updates the platform and looks out for high availability of the platform. To put it very bluntly: Citrix provides you with a working, hosted version of Citrix Studio and then it&#8217;s up to you, the admin.</p>
<p>So, now that we&#8217;ve set the stage let&#8217;s discuss what Citrix Cloud is not. And this is the part where a lot of misconceptions start to show.</p>
<p><em>1) Is Citrix Cloud a managed service?</em><br />
No. Citrix provides the management tools, not the management activities carried out by using those tools. Citrix will not publish any resources to any of your users.</p>
<p><em>2) Does Citrix Cloud host your apps and desktops?</em><br />
No. This is about where your beloved users are doing their work, meaning: run those (pesky) apps. That &#8220;location&#8221; is completely up to you: public, private or hybrid cloud, or even just your good &#8220;old&#8221; on-premises resources. Any resource ties into Citrix Cloud through Citrix Cloud Connectors.</p>
<p><em>3) What about the &#8220;Service&#8221; naming then?</em><br />
Citrix has a very rich history of name changes. XenApp Service is now Virtual Apps Service. This may set you on the wrong foot there. The &#8220;service&#8221; piece is not Citrix servicing your environment. It&#8217;s about Citrix providing/hosting the tools to you to maintain your environment from the cloud.</p>
<p>So, the question may arise: should you consider Citrix Cloud, and why?<br />
It&#8217;s always a good idea to keep an open mindset and to be aware of all the possibilities out there. That&#8217;s a genuine challenge in today&#8217;s rapidly evolving world, I know.</p>
<p>The obvious answer is: it depends. A new company, starting with a green field deployment? Or an enterprise with custom, legacy apps? It all depends. Maybe I&#8217;ll turn the answer into another article someday.</p>
<p><strong>Does Citrix Cloud have a &#8220;killer feature&#8221;?</strong><br />
Maybe it was a bit lacking in that department until recently with the Workspace App. Unification has always been a &#8220;thing&#8221; but presenting it &#8220;as a service&#8221; now is an entirely different ball game. Again, Citrix is providing you with the capabilities to create a unified Workspace. Citrix is not managing that workspace for you. But don&#8217;t dismiss that Workspace idea just yet. If anything, this may very well be your entry point to Citrix Cloud.</p>
<p>So, the future for Citrix Cloud looks all bright and shiny then?</p>
<p>Not so fast. Workspace (App) is evolving rapidly and will change. As will the entire platform. You need to be able to cope with that.</p>
<p>Just think about your endpoints for a second. They need to be able to connect. This means that you&#8217;ll have to keep them updated, just to keep up with the changing demands from Citrix Cloud. If sometime in the future Citrix requires a certain level of encryption, your endpoints need to be able to establish that encrypted connection.</p>
<p>There are other challenges too. Citrix requires that you purchase a minimum number of Cloud seats. This means that a lot of small businesses will not meet those numbers and have the option to pay too much or to look elsewhere. It&#8217;s not the first time I&#8217;ve hit on that topic.</p>
<p>Equally, even in a cloud world, there&#8217;s nothing like &#8220;seeing is believing&#8221;. Therefore, it&#8217;s a real shame there are no NFR or internal use licenses of Citrix Cloud for Partners. Partners that have built relationships with their customers will have to pay to show those customers their way to the cloud. Another missed chance, one that will drive adoption forward.</p>
<p>Thanks</p>
<p>Bart Jacobs</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.carlwebster.com/setting-the-playing-field-right-for-citrix-cloud/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">13905</post-id>	</item>
		<item>
		<title>Does the Cloud fail?</title>
		<link>https://www.carlwebster.com/does-the-cloud-fail/</link>
		
		<dc:creator><![CDATA[Bart Jacobs]]></dc:creator>
		<pubDate>Mon, 24 Sep 2018 12:44:25 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<guid isPermaLink="false">https://www.carlwebster.com/?p=13826</guid>

					<description><![CDATA[The short answer: yes. The consultant answer: it depends. One could also ask the question &#8220;Should the Cloud fail?&#8221; My answer is: yes, failures are bound to happen in the&#8230;]]></description>
										<content:encoded><![CDATA[<p>The short answer: yes.<br />
The consultant answer: it depends.<br />
One could also ask the question &#8220;Should the Cloud fail?&#8221;</p>
<p>My answer is: yes, failures are bound to happen in the Cloud. Why? Because the cloud is designed and built by humans. And we all know humans are not perfect, present company included.</p>
<p>A &#8220;perfect&#8221; example of this is the latest Azure outage. While we still have to wait for the final RCA (Root Cause Analysis) a lot can (and has been already) written on that topic. I do recommend however to listen to the Microsoft Azure Podcast on the matter. It provides some fundamental human insight into the problem.</p>
<p>Yes, forces of nature did show that Mother Nature will always have the final word. But one part of the discussion included some internal Microsoft services still to be reliant on Azure ASM (aka Classic aka old school) technology. While Microsoft has been pushing everyone to ASR, they kept on using ASM themselves. And that has now failed. There&#8217;s no doubt that migrating from ASR to ASM was on some project sheet or to-do list. But they just never got around to it. Doesn&#8217;t that sound familiar? It should, and it&#8217;s called being human.</p>
<p>There&#8217;s also the matter of some storage account that wasn&#8217;t correctly configured and therefore not as highly available as everyone believed. Again, this sounds all too familiar, doesn&#8217;t it?</p>
<p>Still, I do find myself puzzled by the fact that the failure also impacted European users. But I&#8217;m not going to speculate any further, let&#8217;s wait and see in the final RCA in a few weeks.</p>
<p>I&#8217;ve heard and read comments on Microsoft&#8217;s poor design, their lack of In-Region availability zones, etc. The fact of the matter is, humans have designed the infrastructure of the competition too. So are they less prone to failure? Probably not, they just haven&#8217;t surfaced yet is a more likely answer.</p>
<p>But let&#8217;s take a moment to put this into perspective. The Cloud doesn&#8217;t present more failures compared to on-premises Enterprise IT. In fact, one might argue the opposite is even true. Cloud failures are likely to be more visible, but that doesn&#8217;t mean they happen more often.</p>
<p>What differentiates a good IT engineer from a great one? In my opinion, their ability to learn from their mistakes. Microsoft has been very open to the nature of the failure to date and has presented a clear vision to learn from their mistakes and adapt.</p>
<p>Some will say &#8220;too little, too late&#8221;. I&#8217;m not one of them. I do believe Microsoft does deserve some credit for their willingness to move forward and solve their issues. Those who think it can&#8217;t happen to them&#8230; that&#8217;s probably worth a future blog article.</p>
<p>Thanks</p>
<p>Bart Jacobs</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">13826</post-id>	</item>
		<item>
		<title>Connecting to the Cloud: Name Resolving Matters!</title>
		<link>https://www.carlwebster.com/connecting-to-the-cloud-name-resolving-matters/</link>
		
		<dc:creator><![CDATA[Bart Jacobs]]></dc:creator>
		<pubDate>Tue, 11 Sep 2018 14:51:34 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[DNS]]></category>
		<guid isPermaLink="false">https://www.carlwebster.com/?p=13769</guid>

					<description><![CDATA[Every modern-day Citrix admin will probably agree with me. Using Office 365 on Citrix Servers and Desktops can be a challenge, let&#8217;s leave it at that. That&#8217;s not the topic&#8230;]]></description>
										<content:encoded><![CDATA[<p>Every modern-day Citrix admin will probably agree with me. Using Office 365 on Citrix Servers and Desktops can be a challenge, let&#8217;s leave it at that.</p>
<p>That&#8217;s not the topic of this blog post, however. It&#8217;s not even a Citrix problem. But again, every Citrix admin will agree on this too; if the problem or issue is present on Citrix, then it&#8217;s a Citrix problem, period. So I won&#8217;t be writing on how to install and configure Office 365 applications on Citrix, it&#8217;s how those apps will connect to the magical entity, otherwise known as &#8220;The Cloud&#8221;.</p>
<p>Let&#8217;s take a look at Outlook. Outlook will always try to connect to outlook.office365.com. Now before Outlook can establish that connection, it needs to resolve that name into an IP address. Enter DNS. DNS is a vital part of today&#8217;s connected world. Microsoft will even tell you that Outlook uses a geolocation mechanism based on DNS to point you to the &#8220;best&#8221; entry point into their network. The latter is a crucial statement; you need the fastest connection to their network. Once there, they&#8217;ll take care of things for you.<br />
Another important fact for you: &#8220;The Cloud&#8221; changes at an extraordinary pace. What&#8217;s relevant today, may be completely obsolete by tomorrow. In that light, it may or may not be true for you to see something like this when you do nslookup of outlook.office365.com.</p>
<p><a href="https://www.carlwebster.com/wp-content/uploads/2018/09/2018-09-11-16_22_58-Command-Prompt.png" target="_blank" rel="noopener"><img decoding="async" class="alignnone wp-image-13771 size-medium" src="https://www.carlwebster.com/wp-content/uploads/2018/09/2018-09-11-16_22_58-Command-Prompt-401x300.png" alt="" width="401" height="300" srcset="https://www.carlwebster.com/wp-content/uploads/2018/09/2018-09-11-16_22_58-Command-Prompt-401x300.png 401w, https://www.carlwebster.com/wp-content/uploads/2018/09/2018-09-11-16_22_58-Command-Prompt.png 547w" sizes="(max-width: 401px) 100vw, 401px" /></a></p>
<p>First of all, if outlook.office365.com still resolves for you to something like outlook-emeawest3.office365.com, you&#8217;re in a bad place. More details on that below.</p>
<p>What can we actually learn from this? Microsoft DNS returns multiple IP addresses for that single DNS record. Why? Load distribution and high availability, what else? But if you look closer, there might be something off. When pinging those IP addresses individually, you might see a big difference in performance. Some will be a lot &#8220;faster&#8221; than others. And if ping can &#8220;see&#8221; that, you can be sure your users will &#8220;see&#8221; the difference too.</p>
<p>Why is this happening? Because those IP addresses are served from different Microsoft data centers around the world. And some are closer to you than others.</p>
<p>Remember I wrote something about being at a bad place some lines above?</p>
<p>Microsoft has been revamping the DNS resolution for some time now. How to find out? Outlook.office365.com should be resolving to a more generic outlook.ms-acdc.office.com by now. Microsoft keeps expanding its ACDC solution. And no, that&#8217;s not about music, but about AnyCast DNS Cafe. The reasoning is quite simple: Microsoft wants your users to connect to the Microsoft network as fast as possible. Once you&#8217;re on their network, you&#8217;re all set.</p>
<p>In general, ms-acdc returns a more consistent set of IP addresses and those would be &#8220;closer&#8221;, or in other words: faster for your users.</p>
<p>There is a moral to this story: you do have some influence of this DNS stuff. Choose your resolver/forwarder wisely. Some will work better than others. In my case, CloudFlare 1.1.1.1 servers returned IP addresses 10ms &#8220;faster&#8221; compared to the ones of our hosting/colo facility (even that&#8217;s a leading, global one).</p>
<p style="text-align: left;">Bottom line: DNS is essential to a successful Office 365 (or any cloud service really) implementation, on Citrix or otherwise. Your mileage will vary, so you&#8217;ll need to try and test for yourself and your users.</p>
<p>Thanks</p>
<p>Bart Jacobs</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">13769</post-id>	</item>
		<item>
		<title>To Cloud or not To Cloud?</title>
		<link>https://www.carlwebster.com/cloud-not-cloud/</link>
		
		<dc:creator><![CDATA[Bart Jacobs]]></dc:creator>
		<pubDate>Mon, 27 Nov 2017 11:00:14 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<guid isPermaLink="false">https://www.carlwebster.com/?p=10615</guid>

					<description><![CDATA[It was truly amazing to see all the feedback and discussion after my latest blog post. So first of all, I would like to thank you for that. In case&#8230;]]></description>
										<content:encoded><![CDATA[<p>It was truly amazing to see all the feedback and discussion after my latest blog post. So first of all, I would like to thank you for that.<br />
In case you missed it, you can read all about it <a href="https://www.carlwebster.com/citrix-vs-smb-small-medium-sized-business/">here</a>.</p>
<p>Actually, the idea of a follow-up story was already born within hours after publication.</p>
<p>So, without further ado, here we go.<br />
Let&#8217;s start with one of the replies on Twitter, by Shaun Ritchie (@ShaunRitchie_UK):</p>
<blockquote><p><em>&#8220;With Office 365 + most other apps are going SaaS I think a lot of SMBs evaluating if they need Citrix at all, regardless of licensing&#8221;</em></p></blockquote>
<p>That&#8217;s an interesting statement. I think it&#8217;s safe to say that we, IT Pros in the EUC space that is, have been hearing for decades now that &#8220;Windows Apps are dead, it will all move to the Web/Cloud&#8221;.<br />
The reality is however, Windows Apps are still very much alive and relevant today, and even new ones keep being developed and released.</p>
<p>Sure, for true greenfield applications, a web/cloud app is the way to go, but how many of those are out there? The majority of apps in any business have some form of legacy embedded in them. This can be legacy apps AND/OR legacy data. And to successfully transform a Windows/legacy app to a Cloud/Web App, that&#8217;s a completely different ballgame.</p>
<p>So with all those (Windows/legacy) apps out there, it all comes down to application delivery. It&#8217;s not about a VDI, it&#8217;s not about DaaS, it&#8217;s about Apps. And we live in a world where nothing really ever dies. There are still a considerable amount of companies using and developing COBOL applications today. They are even hiring! Let that sink in for a moment.</p>
<p>I do believe Cloud/web is part of the solution for the future, but I don&#8217;t believe it IS the solution.</p>
<p>Let&#8217;s throw an answer to this statement on Twitter in the mix by James Priest (@TheSmilingSE):</p>
<blockquote><p>&#8220;That&#8217;s definitely true too, the SMB &#8220;SurfacePro&#8221; enabled user with O365 actually meets a lot of the old road warrior requirements now&#8221;</p></blockquote>
<p>Again, Office 365 is mentioned. Again, very interesting indeed. Sure, O365 is/was a game changer for many companies. But why? Because it is &#8220;better&#8221; than their old local Exchange server?<br />
I don&#8217;t think so. It&#8217;s not about being &#8220;better&#8221; it&#8217;s about being &#8220;more convenient&#8221;. For any company nowadays it has become extremely hard to run a local Exchange server. Just look at the price of Office 365, who can run a local Exchange for that money? I think you can answer that question for yourself.</p>
<p>While on the topic of money and therefore budgets&#8230; we really need to stop saying &#8220;cloud is cheap(er)&#8221;. It isn&#8217;t.</p>
<p>So in the end, for Cloud (Apps) to succeed, we need to make it more convenient for companies to make the switch. Users need their apps and data in those apps. We &#8220;just&#8221; need to deliver those apps the most convenient way, not the best way.</p>
<p>Thanks</p>
<p>Bart Jacobs</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">10615</post-id>	</item>
		<item>
		<title>Citrix vs SMB (Small and Medium-sized Business)?</title>
		<link>https://www.carlwebster.com/citrix-vs-smb-small-medium-sized-business/</link>
		
		<dc:creator><![CDATA[Bart Jacobs]]></dc:creator>
		<pubDate>Tue, 24 Oct 2017 05:01:22 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<guid isPermaLink="false">https://www.carlwebster.com/?p=10541</guid>

					<description><![CDATA[Hi again, It’s time for another story, but not a technical story this time around. I was actually inspired by recent events at Citrix, and those events being the round&#8230;]]></description>
										<content:encoded><![CDATA[<p>Hi again,</p>
<p>It’s time for another story, but not a technical story this time around.</p>
<p><span id="more-10541"></span></p>
<p>I was actually inspired by recent events at Citrix, and those events being the round of layoffs all over the world. I’m not going to debate that move here, but at least it got me thinking.</p>
<p>Thinking about the past, present, and future reality. As part of the communication around the layoffs, an “Enterprise” focus was put forward for some products. And there’s no real doubt that the announced unwinding of Octoblu is part of that initiative too.</p>
<p>However, in recent conferences, Citrix announced a renewed interest in the SMB Market. In itself, a very healthy move. But what does Citrix see in an SMB company/customer? Actually, it depends on where you live really. What in the USA is marked an SMB, is in Europe another story. Those “American SMB” are quite often decent/large sized European companies. And that’s a shame because the real European SMBs are left out.</p>
<p>Historically, however, a lot of those SMBs have been loyal Citrix customers. I’m talking about the Benelux region in particular, where products like XenApp Fundamentals did fairly well. If not Fundamentals, a shop with 1 or 2 XenApp servers serving remote application access to a bunch of users was more or less standard in many SMB companies.</p>
<p>“Was” being the key word here. Because even while you can still do it, as Bas van Kaam pointed out in an article last year (<a href="http://www.basvankaam.com/2016/07/12/citrix-xenapp-single-machine-setup-cheap-fast-and-supported/">http://www.basvankaam.com/2016/07/12/citrix-xenapp-single-machine-setup-cheap-fast-and-supported/</a>), the “new” FMA architecture is mainly geared towards a multi-server setup with controller and workers separated. For scaling that’s a great move, but what if you don’t need that scaling?</p>
<p>Enter “The Cloud”.</p>
<p>With the rise of Office 365, SMBs are interested in the cloud. For Office 365, that just makes sense. It has become far too expensive to run Microsoft Exchange locally for a limited number of users. So why not apply the same principle to your Citrix setup? Well, there you go: Enter Citrix Cloud, or XenDesktop/XenApp Essentials. Problem solved, right?</p>
<p>Or Not?</p>
<p>Indeed, maybe not all. With the recent announcement of VMware Workspace One, one could start to argue Citrix Cloud is too expensive. But that’s only half of the story. All Citrix Cloud solutions come with a 25 user minimum. At the time of writing, I couldn’t find any information on the existence of such limits with VMware. It’s cheaper per user, I’ll give them that, but as I said, that is not the complete story probably.</p>
<p>So where does this leave the 10-15 user SMB, long-term Citrix XenApp shop? Upgrade to FMA locally? Pay for users you don’t need in the cloud? Neither option seems a great fit. With Microsoft pushing RDS once again, those long-term Citrix users could be tempted to switch.</p>
<p>Citrix shouldn’t be surprised the XenApp 6.5 install base is still quite large. Too large for their liking is my personal guess, why otherwise keep pushing the upgrade experience with every 7.x release? EOL for 6.5 is just around the corner remember, that should be reason enough.</p>
<p>If only…</p>
<p>Citrix would truly embrace the SMBs once again. They have the technology to do it. They are making Windows 10 VDI possible on Azure, they have the scalable Citrix Cloud platform,…</p>
<p>It gets even better. Citrix cloud includes the Remote PC feature, a true hidden gem.</p>
<p>So, as an SMB customer, you could have the complete story, all from Citrix cloud: secure access to business applications from anywhere AND access to corporate desktops at the same time. Application delivery is why most of them chose Citrix in the first place. Add the Remote PC feature to simplify SMB IT life, … In the future, use Azure AD to bind it all together including Office 365.</p>
<p>So… why is that still a dream today, and the only thing standing in its way of becoming a reality is a license policy that tells otherwise. It’s a shame.</p>
<p>Thanks for listening</p>
<p>Bart Jacobs (the views expressed here are mine and not necessarily Webster&#8217;s)</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">10541</post-id>	</item>
		<item>
		<title>Bart Jacobs&#8217;s Toolbox: Monitoring Part 2</title>
		<link>https://www.carlwebster.com/bart-jacobss-toolbox-monitoring-part-2/</link>
					<comments>https://www.carlwebster.com/bart-jacobss-toolbox-monitoring-part-2/#comments</comments>
		
		<dc:creator><![CDATA[Bart Jacobs]]></dc:creator>
		<pubDate>Thu, 12 Oct 2017 10:00:08 +0000</pubDate>
				<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[XenApp 6.5]]></category>
		<guid isPermaLink="false">https://www.carlwebster.com/?p=10532</guid>

					<description><![CDATA[Promises, promises&#8230; I like to keep mine, so after Part 1, let&#8217;s continue with Part 2. Originally, it wasn&#8217;t my plan to have a Part 2 in the first place.&#8230;]]></description>
										<content:encoded><![CDATA[<p>Promises, promises&#8230; I like to keep mine, so after <a href="https://www.carlwebster.com/bart-jacobs-toolbox-monitoring-part-1/">Part 1</a>, let&#8217;s continue with Part 2.</p>
<p>Originally, it wasn&#8217;t my plan to have a Part 2 in the first place. When I started writing the script, it was my goal to include all checks into a single script.<br />
I rather quickly abandoned that idea because the script became too bloated and slow. At the time, some checks that are now part of Part 2, were based on WMI queries. We all know WMI, but not for it&#8217;s speed, right?</p>
<p>So I decided to keep it simple, and at least start somewhere instead of keep on trying. The result is <a href="https://www.carlwebster.com/bart-jacobs-toolbox-monitoring-part-1/">Part 1</a>.<br />
But I couldn&#8217;t just pass up on my original idea either.</p>
<p>So I decided to take the same framework (with loop, offset timer, and other parameters) and add the other tests. And at the same time trying to avoid the usage of WMI queries as much as possible.<br />
Tests I included:</p>
<ul>
<li>CPU usage</li>
<li>Memory Usage</li>
<li>Disk Usage</li>
<li>Disk queue length</li>
</ul>
<p>In the end, I was forced to use a single WMI query, and that was needed to determine the amount of memory for a machine:</p>
<p><em>$MEMtotal = ((get-wmiobject -Computername $server -class &#8220;win32_physicalmemory&#8221; -namespace &#8220;root\CIMV2&#8221;).Capacity)</em></p>
<p>This proved to be a challenge, because that query doesn&#8217;t return a single value, but returns the value for each memory module in an array.</p>
<p><img decoding="async" class="alignnone size-large wp-image-10535" style="max-width: unset;" src="https://www.carlwebster.com/wp-content/uploads/2018/03/2017-10-11-16_20_36-Windows-PowerShell-ISE-900x59.png" alt="" width="900" height="100" /></p>
<p>But what about VM&#8217;s? They have &#8220;virtual&#8221; memory modules. One per 16Gb of memory (as far as I could check). So as long as your VM has less than 16Gb, a single value is returned. When the VM has more, multiple values are returned. So I needed to find a way to cope with these different possibilities.</p>
<p>This is the solution I found:</p>
<p>$sum = $MEMtotal -join &#8216;+&#8217;<br />
$MEMsum = Invoke-Expression $sum</p>
<p>The first line creates an expression with all array values and adds a &#8220;+&#8221; sign in between them.<br />
The second one &#8220;executes&#8221; that expression, effectively returning the sum of all (virtual) memory banks.</p>
<p>The end result is again saved as an HTML file, and I integrated that one into another IIS page using an iframe.</p>
<p>The end result looks something like this:</p>
<p><img loading="lazy" decoding="async" class="size-large wp-image-10536 aligncenter" src="https://www.carlwebster.com/wp-content/uploads/2018/03/Figure001-53.png" alt="" width="900" height="194" /></p>
<p>I didn&#8217;t include any logging in this 1.0 version, I wanted to assess the value of these readings first.</p>
<p><strong>You can always find the most current files by going to </strong><strong><a title="Current Scripts" href="https://www.carlwebster.com/downloads/" target="_blank" rel="noopener">https://www.carlwebster.com/where-to-get-copies-of-the-documentation-scripts/</a> and looking in the Bart Jacobs&#8217; Toolbox section.</strong></p>
<p>Stay tuned for more!</p>
<p>Thanks</p>
<p>Bart Jacobs</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.carlwebster.com/bart-jacobss-toolbox-monitoring-part-2/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">10532</post-id>	</item>
		<item>
		<title>Bart Jacobs&#8217; Toolbox: Monitoring Part 1</title>
		<link>https://www.carlwebster.com/bart-jacobs-toolbox-monitoring-part-1/</link>
					<comments>https://www.carlwebster.com/bart-jacobs-toolbox-monitoring-part-1/#comments</comments>
		
		<dc:creator><![CDATA[Bart Jacobs]]></dc:creator>
		<pubDate>Wed, 11 Oct 2017 12:38:31 +0000</pubDate>
				<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[XenApp 6.5]]></category>
		<guid isPermaLink="false">https://www.carlwebster.com/?p=10522</guid>

					<description><![CDATA[It&#8217;s been a while since I posted something. To make it up to you, this is part 1 of a 2-part series on monitoring. Part 2 will be following soon,&#8230;]]></description>
										<content:encoded><![CDATA[<p>It&#8217;s been a while since I posted something. To make it up to you, this is part 1 of a 2-part series on monitoring. Part 2 will be following soon, I promise.</p>
<p>More specifically, monitoring XenApp with Powershell.</p>
<p>Since many of my customers are still running 6.5 (yeah, I know), I&#8217;m focussing on that version first.<br />
And I know that lately, others have been releasing monitoring scripts and even entire frameworks.</p>
<p>Yet, I still wanted to put my work out there, not because I think my scripts are better, but to give you another option, or another source of inspiration.</p>
<p>In this first blog post, I&#8217;m presenting my XenApp dashboard script.  The script was based on the Farm Health Report by Jason Poyner, over at <a href="https://deptive.co.nz/xenapp-farm-health-report/">https://deptive.co.nz/xenapp-farm-health-report/</a>. I reached out to Jason at one point, and he was ok for me to base my script on his script and even publish it. But he certainly deserves some credit too.</p>
<p>Basically, it comes down to this. The original script is a one-off, meaning, the script produces an outcome and that outcome is mailed or otherwise made available. But that&#8217;s it, once the output is there, the script is done.</p>
<p>I wanted something more like a dashboard. So I built a loop around the script and scheduling at server boot. So the script would continuously generate output. Output, in this case, an HTML file, that I would integrate into another website using your everyday iframe.</p>
<p>But that wasn&#8217;t the full solution because I wanted data to refresh faster. Since I couldn&#8217;t find a way to run through the server checks faster, I worked on the only alternative I could think of: the looping of the script. So I introduced an offset parameter, allowing me to start the script at a given time (sleep) interval. And I would schedule multiple script launches at server boot, each with their won offset. So let&#8217;s say if it takes 60 seconds on average to check all servers, I would schedule a script with offset 0 and 30. So when the first script finishes after 60 seconds, the second one will finish approximately 30 seconds later.</p>
<p>This has worked really well for me, producing output like:</p>
<p><img loading="lazy" decoding="async" class="alignnone size-large wp-image-10523" src="https://www.carlwebster.com/wp-content/uploads/2018/03/Figure001-54.png" alt="" width="900" height="192" /></p>
<p>As you all know,  using server silos is a popular implementation of XenApp 6.5. So that&#8217;s the final parameter I added. You still need to include the logic for the silo naming, however. For example, you could include all servers starting with &#8220;BE&#8221; in a silo etc.</p>
<p>Versions 1.0 and 1.1 of the script were never published out in the open, but I&#8217;ll tell my story on them anyway. They are about logging to CSV. In 1.0, there was no logging, only a &#8220;real-time&#8221; dashboard. In version 1.1, a CSV per server was generated containing date/time, the number of active sessions and the server load. In version 1.2, the version I&#8217;m &#8220;releasing&#8221; today, at every offset 0, I would add data of servers to a &#8220;datacenter CSV&#8221; file, a file containing all data of the data center. Those CSV&#8217;s can be used to drive PowerBI or Excel PowerPivot stuff.</p>
<p>Again, I&#8217;m not trying to convince you my script is any better than those already out there. It&#8217;s not. I only hope that it would give you some food for thought and even some inspiration.</p>
<p><strong>You can always find the most current files by going to </strong><strong><a title="Current Scripts" href="https://www.carlwebster.com/downloads/" target="_blank" rel="noopener">https://www.carlwebster.com/where-to-get-copies-of-the-documentation-scripts/</a> and looking in the Bart Jacobs&#8217; Toolbox section.</strong></p>
<p>Stay tuned for more!</p>
<p>Thanks</p>
<p>Bart Jacobs</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.carlwebster.com/bart-jacobs-toolbox-monitoring-part-1/feed/</wfw:commentRss>
			<slash:comments>10</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">10522</post-id>	</item>
		<item>
		<title>Another Small Tool from Bart Jacobs&#8217; Toolbox</title>
		<link>https://www.carlwebster.com/another-small-tool-from-bart-jacobs-toolbox/</link>
		
		<dc:creator><![CDATA[Bart Jacobs]]></dc:creator>
		<pubDate>Thu, 29 Dec 2016 14:14:39 +0000</pubDate>
				<category><![CDATA[XenApp]]></category>
		<category><![CDATA[XenDesktop 5.x]]></category>
		<guid isPermaLink="false">https://www.carlwebster.com/?p=10083</guid>

					<description><![CDATA[Hello again! This tool is even simpler than the print driver stuff in my previous article. But again I hope this addresses a real need out there, it has done&#8230;]]></description>
										<content:encoded><![CDATA[<p>Hello again!</p>
<p>This tool is even simpler than the print driver stuff in my previous article.</p>
<p>But again I hope this addresses a real need out there, it has done so for me.</p>
<p>Everyone that has used Microsoft Remote Assistance (or some other tools) probably remembers asking the user on the other side what the name of the server/computer he or she is working on.</p>
<p>Sure you can force the users to use a wallpaper generated by bginfo.</p>
<p>Sure you can write and provide instructions to the user on how to find that information&#8230;but we all know they will keep asking you over and over again, right?</p>
<p>But actually, you want users to be able to provide that information fast and simple, and only have to tell them once, no matter what OS they are using.</p>
<p>I looked around for some tools out there, but most of them were either too complicated or just not working on an RDS/Citrix environment.</p>
<p>So I stumbled on an AutoIT script that was going in the right direction. I used it as a basis for mine, created an Exe and deployed the tool to end-users, and have it launched at startup.</p>
<p>So now every user has the same icon in their notification area and when hovering over it the name of their machine will appear.</p>
<figure id="attachment_33572" aria-describedby="caption-attachment-33572" style="width: 155px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2016/12/Figure001-1.png"><img loading="lazy" decoding="async" class="size-full wp-image-33572" src="https://www.carlwebster.com/wp-content/uploads/2016/12/Figure001-1.png" alt="Figure 1" width="155" height="59" /></a><figcaption id="caption-attachment-33572" class="wp-caption-text">Figure 1</figcaption></figure>
<p>&nbsp;</p>
<p>You can download a zip file with the compiled exe and the AutoIT source code.</p>
<p><strong>You can always find the most current files by going to </strong><strong><a title="Current Scripts" href="https://www.carlwebster.com/downloads/" target="_blank" rel="noopener">https://www.carlwebster.com/where-to-get-copies-of-the-documentation-scripts/</a> and looking in the Bart Jacobs&#8217; Toolbox section.</strong></p>
<p>Stay tuned for more!</p>
<p>Thanks</p>
<p>Bart Jacobs</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">10083</post-id>	</item>
		<item>
		<title>Deploying Printer Drivers for Citrix XenApp</title>
		<link>https://www.carlwebster.com/deploying-printerdrivers/</link>
					<comments>https://www.carlwebster.com/deploying-printerdrivers/#comments</comments>
		
		<dc:creator><![CDATA[Bart Jacobs]]></dc:creator>
		<pubDate>Thu, 22 Dec 2016 11:01:03 +0000</pubDate>
				<category><![CDATA[Citrix Virtual Apps and Desktops]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[XenApp 6.0]]></category>
		<category><![CDATA[XenApp 6.5]]></category>
		<category><![CDATA[XenApp/XenDesktop 7.0 - 7.7]]></category>
		<guid isPermaLink="false">https://www.carlwebster.com/?p=10078</guid>

					<description><![CDATA[Printers and printer drivers aren&#8217;t an exiting technology as the latest HDX Features in XenApp 7.12 and so on. But every Citrix admin out there has ran into issues with&#8230;]]></description>
										<content:encoded><![CDATA[<p>Printers and printer drivers aren&#8217;t an exiting technology as the latest HDX Features in XenApp 7.12 and so on. But every Citrix admin out there has ran into issues with printers and printer drivers at one point or another. And we&#8217;ve all been felt the same need at least once: how do I get those print drivers out there without breaking everything?</p>
<p>Sure, XenApp 6.5 has had a driver replication feature for a long time, but that isn&#8217;t without flaws&#8230; So I wanted something different, something where I was in control.</p>
<p><span id="more-10078"></span></p>
<p>I&#8217;ve become a fan of Admin Arsenal&#8217;s PDQ Deploy some time ago, so I designed my solution with that in mind. It should work with other software deployment tools and even manually it would all just work. In case this is the first time you&#8217;ve heard about PDQ Deploy, I strongly encourage you to have a look at <a href="http://www.adminarsenal.com">www.adminarsenal.com</a>.</p>
<p>I needed a way to install the print driver on remote machines, not map a printer, not creating a printer port, &#8230; just keep it simple: install the print driver, nothing else.</p>
<p>The scenario I had in mind was quite clear. Every print driver comes with an INF file with driver descriptions etc and every Windows version since Windows 2000 has a built-in utility called printui which can be used to install printers, drivers and ports. The printui tool needs the INF file and the exact driver name as stated in that file to work. So my idea had to consist of 2 parts:</p>
<ol>
<li>Select the right printer model out of the INF file</li>
<li>Parse that INF file together with that printer model to printui, on the target machine.</li>
</ol>
<p>So I started creating PowerShell scripts for both parts. I&#8217;m not a PowerShell guru by any means, so if the code doesn&#8217;t look as slick or clean as it could, that&#8217;s on me and my coding &#8220;skills&#8221;.</p>
<p>The simple scenario grew and turned into this:</p>
<ol>
<li>Launch script &#8220;PrintModelSelector&#8221;.</li>
<li>This script will prompt for the INF file to process.</li>
<li>It will present a list of Printer Models it finds and prompts to select one.</li>
<li>The name of the Printer Model is saved together with the INF file name into a CSV file in the same directory as the INF file (so: where the driver is really).</li>
<li>The second script &#8220;PrintDriverDeploy&#8221; will read that CSV file and parse info to printui, actually installing the print driver.</li>
</ol>
<p>INF file processing turned out to be a hard one, and my solution works but is not perfect. For those situations, the download will include a sample PrintDriverDeploy script and CSV file you can adapt for those cases it doesn&#8217;t work. I&#8217;ve tested with quite a number of INF files, and recent ones all worked as expected. Some old exotic ones didn&#8217;t but that can be fixed manually.</p>
<p>The final stage of my &#8220;project&#8221; was to create the PrintDriverDeploy script at runtime. What I mean by this is that the first script creates not only the CSV file, but also the script to parse that file, both in the same location as the selected INF file.</p>
<p>Going back to my PDQ Deploy story, that&#8217;s the script I would be deploying in the Package.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-10079" src="https://www.carlwebster.com/wp-content/uploads/sites/69/2016/12/PDQDeploy_Package-530x264.png" alt="pdqdeploy_package" width="683" height="340" /></p>
<p>Tip: make sure to select the &#8220;Include Entire Directory&#8221; option, as you&#8217;ll need to push all driver files to the target device.</p>
<p>As I&#8217;m running the free version of PDQ Deploy, I can say that it works with any edition.</p>
<p>I couldn&#8217;t resist taking it one step further&#8230; A few weeks back I saw the tweet from Andreas Nick about a free, built-in tool to convert PowerShell files into EXE&#8217;s.</p>
<p>You can find the link to his tweet and YouTube video <a href="https://twitter.com/NickInformation/status/807530923122159616">here</a>. So I used this procedure to convert the first script into an EXE, so it can be run without any PowerShell limitations.</p>
<p>The download includes this EXE, the PowerShell version, the sample CSV and Deployment PowerShell too.</p>
<p><strong>You can always find the most current files by going to </strong><strong><a title="Current Scripts" href="https://www.carlwebster.com/downloads/" target="_blank" rel="noopener noreferrer">https://www.carlwebster.com/where-to-get-copies-of-the-documentation-scripts/</a> and looking in the Bart Jacobs&#8217; Toolbox section.</strong></p>
<p>I hope you find this useful and I am really looking forward to your feedback.</p>
<p>Thanks</p>
<p>Bart Jacobs</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.carlwebster.com/deploying-printerdrivers/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">10078</post-id>	</item>
		<item>
		<title>XenServer Ghost Devices Woes</title>
		<link>https://www.carlwebster.com/xenserver-ghost-woes/</link>
					<comments>https://www.carlwebster.com/xenserver-ghost-woes/#comments</comments>
		
		<dc:creator><![CDATA[Bart Jacobs]]></dc:creator>
		<pubDate>Mon, 01 Feb 2016 06:01:34 +0000</pubDate>
				<category><![CDATA[XenServer]]></category>
		<guid isPermaLink="false">https://www.carlwebster.com/?p=8980</guid>

					<description><![CDATA[As you may recall from my previous article, XenServer and HP Firmware Woes,  I was involved in a rather large XenServer upgrade project. Anyone that has done some XenServer updates/upgrades surely has&#8230;]]></description>
										<content:encoded><![CDATA[<p>As you may recall from my previous article, <a href="https://www.carlwebster.com/firmware-woes/" target="_blank" rel="noopener">XenServer and HP Firmware Woes</a>,  I was involved in a rather large XenServer upgrade project.</p>
<p>Anyone that has done some XenServer updates/upgrades surely has come across the &#8220;ghosted nics&#8221; issue before. I&#8217;m certainly not alone since CTP Alexander Ervik Johnsen also wrote a little something on his blog the other day. You can read about his solution <a href="http://www.ervik.as/citrix/xen-server/removing-ghost-phantom-nic-on-xenserver" target="_blank" rel="noopener">here</a>.</p>
<p>As you might have guessed, Ghost or Phantom NICs are a bad thing. The solution sounds simple enough: get rid of them. From a technical perspective, it&#8217;s not a difficult thing to do. As Alexander Ervik Johnsen mentioned, it&#8217;s a matter of following these steps:</p>
<ol>
<li>Log in as a local admin account (TIP: make sure you know this one BEFORE you start upgrading)</li>
<li>Open a command prompt</li>
<li>Issue the command &#8220;set devmgr_show_nonpresent_devices=1&#8221;</li>
<li>Launch Device Manager by typing devmgmt.msc in the same command prompt session (so the device manager session &#8220;sees&#8221; the environment variable)</li>
<li>In Device Manager, select View -&gt; Show hidden devices</li>
<li>Now the Ghosted NIC&#8217;s should be visible, and you should be able to uninstall them just by right-clicking them and selecting uninstall</li>
</ol>
<p>It&#8217;s a quite straightforward procedure to follow, but it can become a very tedious job if you need to go through these for a high number of VM&#8217;s.</p>
<p>And there&#8217;s more to it. From time to time, Device Manager does not seem to respond to the uninstall command. You click uninstall, you do a refresh, and the device is still there. Issuing multiple uninstall commands won&#8217;t help you either.</p>
<p>So then there is the option to dive into the Registry and carve out the Ghost device by hand. It can be done, but it will take time and is not without any risk.</p>
<p>The solution? Enter a marvelous tool I (re)discovered recently: GhostBuster (by wvd_vegt, <a href="https://bitbucket.org/wvd-vegt/ghostbuster/src/master/" target="_blank" rel="noopener">https://bitbucket.org/wvd-vegt/ghostbuster/src/master/</a>). It scans for ghosted devices, shows them in a nice GUI, so you can select the Ghosted NIC by selecting &#8220;Add Device&#8221;.</p>
<p>&nbsp;</p>
<figure id="attachment_61751" aria-describedby="caption-attachment-61751" style="width: 530px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2016/02/Figure001.png"><img loading="lazy" decoding="async" class="size-full wp-image-61751" src="https://www.carlwebster.com/wp-content/uploads/2016/02/Figure001.png" alt="Figure 1" width="530" height="261" /></a><figcaption id="caption-attachment-61751" class="wp-caption-text">Figure 1</figcaption></figure>
<p>When selected, you hit the Remove Ghosts button</p>
<p>And you&#8217;re done.</p>
<p>Ghostbuster even comes in a portable format, so there&#8217;s no need to install it every time.</p>
<p>So, to make my life a bit easier, I created a small ISO file that I can mount on a VM. That ISO contains a couple of things:</p>
<ul>
<li>start.cmd -&gt; sets the devmgr environment variable and starts Device manager with &#8220;View Hidden&#8221; already enabled</li>
<li>the MMC used by start.cmd, which is good old Device Manager with &#8220;View Hidden&#8221; enabled.</li>
<li>the portable version of Ghostbuster</li>
</ul>
<p>I&#8217;ve thought about automating it some more, like using GhostBuster to clean stuff automatically. The biggest issue is that in my environment, the number of ghosted nics is not always the same, and it&#8217;s not always the &#8220;Realtek&#8221; either, I&#8217;ve seen cases where I have the Realtek nic, and 3 ghosted Xenserver NICs together. In that type of situation, I&#8217;d like to control things myself because this usually means something else is also very much messed up with that VM.</p>
<p>Maybe I&#8217;ll do the automation part in the future, but I use the ISO as-is for now. If you like it too, you can find it in the Downloads section.</p>
<p><strong>You can always find the most current files by going to </strong><strong><a title="Current Scripts" href="https://www.carlwebster.com/where-to-get-copies-of-the-documentation-scripts/" target="_blank" rel="noopener">https://www.carlwebster.com/where-to-get-copies-of-the-documentation-scripts/</a> and looking in the Bart Jacobs&#8217; Toolbox section.</strong></p>
<p>Thanks</p>
<p>Bart Jacobs</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.carlwebster.com/xenserver-ghost-woes/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">8980</post-id>	</item>
		<item>
		<title>XenServer and HP Firmware Woes</title>
		<link>https://www.carlwebster.com/firmware-woes/</link>
					<comments>https://www.carlwebster.com/firmware-woes/#comments</comments>
		
		<dc:creator><![CDATA[Bart Jacobs]]></dc:creator>
		<pubDate>Wed, 23 Dec 2015 18:34:43 +0000</pubDate>
				<category><![CDATA[XenServer]]></category>
		<guid isPermaLink="false">https://www.carlwebster.com/?p=8750</guid>

					<description><![CDATA[It&#8217;s a virtual world nowadays. But sometimes, even in a virtual world, physical problems can be a real pain. Recently I was involved in upgrading/migrating an outdated XenServer 6.0 setup,&#8230;]]></description>
										<content:encoded><![CDATA[<p>It&#8217;s a virtual world nowadays.</p>
<p>But sometimes, even in a virtual world, physical problems can be a real pain.</p>
<p>Recently I was involved in upgrading/migrating an outdated XenServer 6.0 setup, running on HP BL460c Gen7 and Gen8.</p>
<p>The Gen8 boxes went fine, and the customer was really impressed with the performance of XenServer 6.5 SP1.</p>
<p>The Gen7 boxes were quite a different story. Yes, I&#8217;m ware they are not on the official HCL First of all, as any good admin should do, I was upgrading firmware and BIOS when the server was off duty anyway.</p>
<p>The first server I updated, XenServer didn&#8217;t detect the Emulex 10Gb ports anymore. But on the second one, it did&#8230; The third one was a failure again.</p>
<p>Then I noticed something wrong on the boot screen:</p>
<p><a href="https://www.carlwebster.com/wp-content/uploads/2018/03/Figure001-576.png"><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-8752" src="https://www.carlwebster.com/wp-content/uploads/2018/03/Figure001-576.png" alt="ILO Boot" width="530" height="226" /></a></p>
<p>I used the HP Firmware CD to update everything, and although the version v10.5.155.0 is the correct one, it did&#8217;nt quite seem to work. Also on ILO, the config looked very wrong.</p>
<p>So&#8230; why? Well it seems HP has had a long history of firmware misbehavior on the G7 series, and somewhere along the line people suggested to reflash the firmware again with the same version.</p>
<p>That&#8217;s not possible with the HP Firmware CD, so I downloaded the Emulex firmware CD from the HP site. That did come labeled as v10.5.160.0&#8230; but installed v10.5.155.0 anyway.</p>
<p>After that &#8220;update&#8221;, no more strange screen at boot and&#8230; XenServer recognized the NIC&#8217;s just fine once again.</p>
<p>So I know they are becoming old, those G7&#8217;s, but maybe this will help someone facing the same or similar issues.</p>
<p>Thanks</p>
<p>Bart Jacobs</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.carlwebster.com/firmware-woes/feed/</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">8750</post-id>	</item>
		<item>
		<title>Active Setup and Non-Responding Internet Explorer</title>
		<link>https://www.carlwebster.com/active-setup-and-non-responding-internet-explorer/</link>
		
		<dc:creator><![CDATA[Bart Jacobs]]></dc:creator>
		<pubDate>Mon, 09 Nov 2015 16:09:31 +0000</pubDate>
				<category><![CDATA[XenApp 6.5]]></category>
		<guid isPermaLink="false">https://www.carlwebster.com/?p=8715</guid>

					<description><![CDATA[A few days ago, Carl wrote a very interesting article on &#8220;strange&#8221; IE behavior here: https://www.carlwebster.com/internet-explorer-10-and-11-open-to-blank-white-screen-or-become-unresponsive/ This made me remember an issue I had dealt with earlier, very similar to the&#8230;]]></description>
										<content:encoded><![CDATA[<p>A few days ago, Carl wrote a very interesting article on &#8220;strange&#8221; IE behavior here: https://www.carlwebster.com/internet-explorer-10-and-11-open-to-blank-white-screen-or-become-unresponsive/</p>
<p>This made me remember an issue I had dealt with earlier, very similar to the one Carl was facing.</p>
<p>Mine presented itself on XenApp 6.5 on Windows 2008R2 though. I wasn&#8217;t using a published desktop either, but Published Apps. When inside a published app, a user tried to open a URL, nothing would appear to happen for that user, it seems IE would start and close again. In another occasion the user was prompted over and over again for his credentials when accessing a web service displaying a PDF file that was stored on that webserver.</p>
<p>In my case, it was pretty consistent too. Those specific users ran into the problem every single time, every session on every available server. Other users on the same servers worked perfectly.</p>
<p>The solution? Those users didn&#8217;t have &#8220;Active Setup&#8221; in their profiles. Active Setup? Yes, that is wat Carl is referencing to in his article. Everyone should have seen this screen at a given time:</p>
<p><img decoding="async" src="http://2.bp.blogspot.com/-4CbrWL3Si7M/URl1UgfzclI/AAAAAAAAAhE/o79kEsDq9Vo/s1600/blog7_1.png" alt="" /></p>
<p>So for some reason the affected users didn&#8217;t have working &#8220;Active Setup&#8221; settings in their profile. My solution at that time was them have run 2 scripts containing these lines of code:</p>
<p>Script 1:</p>
<pre class="brush: bash; title: ; notranslate">
&quot;C:\Windows\System32\rundll32.exe&quot; &quot;C:\Windows\System32\iedkcs32.dll&quot;,BrandIEActiveSetup SIGNUP

C:\Windows\System32\ie4uinit.exe –UserIconConfig

%SystemRoot%\system32\unregmp2.exe /ShowWMP

&quot;C:\Windows\System32\rundll32.exe&quot; &quot;C:\Windows\System32\iesetup.dll&quot;,IEHardenUser

&quot;C:\Windows\System32\rundll32.exe&quot; &quot;C:\Windows\System32\iesetup.dll&quot;,IEHardenAdmin

C:\Windows\system32\Rundll32.exe C:\Windows\system32\mscories.dll,Install

C:\Windows\System32\ie4uinit.exe –BaseSettings

regsvr32.exe /s /n /i:U shell32.dll

%SystemRoot%\system32\unregmp2.exe /FirstLogon /Shortcuts /RegBrowsers /ResetMUI

&quot;%ProgramFiles%\Windows Mail\WinMail.exe&quot; OCInstallUserConfigOE

%SystemRoot%\system32\regsvr32.exe /s /n /i:/UserInstall %SystemRoot%\system32\themeui.dll
</pre>
<p>&nbsp;</p>
<p>Script 2:</p>
<pre class="brush: bash; title: ; notranslate">
&quot;C:\Windows\SysWOW64\rundll32.exe&quot; &quot;C:\Windows\SysWOW64\iedkcs32.dll&quot;,BrandIEActiveSetup SIGNUP

C:\Windows\SysWOW64\ie4uinit.exe –UserIconConfig

&quot;C:\Windows\SysWOW64\rundll32.exe&quot; &quot;C:\Windows\SysWOW64\iesetup.dll&quot;,IEHardenUser

&quot;C:\Windows\SysWOW64\rundll32.exe&quot; &quot;C:\Windows\SysWOW64\iesetup.dll&quot;,IEHardenAdmin

C:\Windows\SysWOW64\Rundll32.exe C:\Windows\SysWOW64\mscories.dll,Install

C:\Windows\SysWOW64\ie4uinit.exe –BaseSettings

regsvr32.exe /s /n /i:U shell32.dll

&quot;%ProgramFiles(x86)%\Windows Mail\WinMail.exe&quot; OCInstallUserConfigOE
</pre>
<p>Looks familar? It should, because it&#8217;s (more or less) the same script as Carl described.</p>
<p>In short, if IE is behaving strangly, or better said: not working as expected -&gt; make sure to look at Active Setup. This not only applies to XenApp/Desktop 7.x on Windows 2012R2, but also to &#8220;good old&#8221; XenApp 6.5 on Windows 2008R2.</p>
<p>Bart Jacobs</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">8715</post-id>	</item>
		<item>
		<title>Another HRP, another picadm.sys bug?</title>
		<link>https://www.carlwebster.com/another-hrp-another-picadm-sys-bug/</link>
					<comments>https://www.carlwebster.com/another-hrp-another-picadm-sys-bug/#comments</comments>
		
		<dc:creator><![CDATA[Bart Jacobs]]></dc:creator>
		<pubDate>Mon, 31 Aug 2015 12:19:15 +0000</pubDate>
				<category><![CDATA[Receiver]]></category>
		<category><![CDATA[XenApp]]></category>
		<category><![CDATA[XenApp 6.5]]></category>
		<guid isPermaLink="false">https://www.carlwebster.com/?p=8599</guid>

					<description><![CDATA[Picadm.sys you say? A few years back I already wrote about picadm.sys issues: https://www.carlwebster.com/the-curious-case-of-the-slow-file-transfer/ Citrix has been updating picadm.sys numerous times since then, and also did in the latest release: HRP06.&#8230;]]></description>
										<content:encoded><![CDATA[<p>Picadm.sys you say?</p>
<p>A few years back I already wrote about picadm.sys issues: <a href="https://www.carlwebster.com/the-curious-case-of-the-slow-file-transfer/">https://www.carlwebster.com/the-curious-case-of-the-slow-file-transfer/</a></p>
<p>Citrix has been updating picadm.sys numerous times since then, and also did in the latest release: HRP06. And before that in XA650R05W2K8R2X64015 too.</p>
<p>However, it seems that XA650R05W2K8R2X64015 introduced a new(?) bug, that was also present in HRP06. That&#8217;s actually quite logical as HRP06 supersedes XA650R05W2K8R2X64015, so XA650R05W2K8R2X64015 is included in HRP06.</p>
<p>Just try this PowerShell oneliner in a XenApp session with client drives enabled and see for yourself:</p>
<p>get-process | out-file -filepath &#8220;\\client\c$\temp\proclist3.txt&#8221; -Append</p>
<p>Obviously, you need to have a c:\temp folder for this to work.</p>
<p>The first time you run this, a file will be created.</p>
<p>When running this a second the time you will find that the file on your c:\temp is not updated. Most of the time it will also throw an error: <em>Out-File : The handle is invalid.</em></p>
<p>The HRP06 version throws an error but XA650R05W2K8R2X64015 just does &#8220;nothing&#8221;.</p>
<p>Uninstalling XA650R05W2K8R2X64015 resolves the problem, I have not yet uninstalled HRP06 yet.</p>
<p>So&#8230; what&#8217;s next? I didn&#8217;t recommend installing HRP06 yet anyway, you should wait for XA650R06W2K8R2X64001, which contains the fix for rpm.dll crashes.</p>
<p>But in the meantime, I&#8217;ve opend yet another Citrix Support Case on picadm.sys. Let&#8217;s hope it gets resolved faster now&#8230;</p>
<p>Thanks</p>
<p>Bart Jacobs</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.carlwebster.com/another-hrp-another-picadm-sys-bug/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">8599</post-id>	</item>
		<item>
		<title>Curious Case FP2</title>
		<link>https://www.carlwebster.com/curious-case-fp2/</link>
					<comments>https://www.carlwebster.com/curious-case-fp2/#comments</comments>
		
		<dc:creator><![CDATA[Bart Jacobs]]></dc:creator>
		<pubDate>Thu, 06 Jun 2013 10:43:09 +0000</pubDate>
				<category><![CDATA[Receiver]]></category>
		<category><![CDATA[XenApp 6.5]]></category>
		<guid isPermaLink="false">https://www.carlwebster.com/?p=5769</guid>

					<description><![CDATA[At Synergy 2013, Citrix announced XenApp 6.5 FP2, among other things. I have been looking at this announcement with a kind of special interest, my first curious case, which you&#8230;]]></description>
										<content:encoded><![CDATA[<p>At Synergy 2013, Citrix announced XenApp 6.5 FP2, among other things.</p>
<p>I have been looking at this announcement with a kind of special interest, my first curious case, which you can read <a title="The Curious Case of the Slow File Transfer" href="https://www.carlwebster.com/the-curious-case-of-the-slow-file-transfer/" target="_blank" rel="noopener">here.</a></p>
<p>And what did I see in the presentation?</p>
<figure id="attachment_49476" aria-describedby="caption-attachment-49476" style="width: 1199px" class="wp-caption alignnone"><a href="https://www.carlwebster.com/wp-content/uploads/2013/06/XenAppFP2.png"><img loading="lazy" decoding="async" class="size-full wp-image-49476" src="https://www.carlwebster.com/wp-content/uploads/2013/06/XenAppFP2.png" alt="XenAppFP2" width="1199" height="596" srcset="https://www.carlwebster.com/wp-content/uploads/2013/06/XenAppFP2.png 1199w, https://www.carlwebster.com/wp-content/uploads/2013/06/XenAppFP2-530x263.png 530w, https://www.carlwebster.com/wp-content/uploads/2013/06/XenAppFP2-900x447.png 900w, https://www.carlwebster.com/wp-content/uploads/2013/06/XenAppFP2-768x382.png 768w, https://www.carlwebster.com/wp-content/uploads/2013/06/XenAppFP2-600x298.png 600w" sizes="auto, (max-width: 1199px) 100vw, 1199px" /></a><figcaption id="caption-attachment-49476" class="wp-caption-text">XenAppFP2</figcaption></figure>
<p>&nbsp;</p>
<p>What does Citrix mean by this? &#8220;Some customers have reported issues in Client Drive Mapping related performance, and this is vastly improved in FP2.&#8221;</p>
<p>Way to go, Citrix! But wait a minute&#8230; Citrix just turned a bugfix into a feature&#8230;what&#8217;s up with that?</p>
<p>In the end, let us all hope that we can finally resolve the issue at stake here. It&#8217;s been too long already.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.carlwebster.com/curious-case-fp2/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">5769</post-id>	</item>
	</channel>
</rss>
