Citrix Printer Roaming…

2017-07-27T00:01:01+00:00 September 24th, 2014|Uncategorized|

If you happen to use Citrix policies to configure printer roaming in your XenApp and/or XenDesktop environment, you may have had issues with session printers.  There are a variety of solutions out there to handle printing, and even Citrix has their Universal Print Driver.  Before this was available, however, if you wanted to do printer roaming in Citrix and only Citrix, you had to use their policies.  I found my head meeting the desk repeatedly when I tried to clear up the network session printers available to an endpoint.  In this XenApp 6.5 and XenDesktop 5.6 scenario, when a user switched from using one physical endpoint to another, Citrix policy was configured to add the geographically nearest printer and make it default.

Citrix Printing

The part where the printer was added and made default worked like a charm.  I was happily able to switch between a laptop and a Wyse device in different locations and have the default printer switched accordingly.  Unfortunately, after doing this with multiple devices in an environment with multiple printers, the list of available printers started adding up.

Citrix Printing

This may be a feature that you want to keep, and let the users decide where to send their print jobs.  On the other hand, if you don’t think users need to be able to exercise free will to such an extent, you may want to have that list cleared at each connection.  To do this, there are some hot fixes you should know about.  Actually, there are quite a few possible hot fixes you could try to use to fix this problem.  I did, and it took some time to find the right one(s).

First up: Download Hotfix Rollup Pack 4 for Citrix XenApp 6.5 (

Note that XA650W2K8R2X64R04 is designed for x64 architecture on Server 2008 R2.

Then apply the fix to the presented desktop server(s), and make the following key in the registry of the PD:

HKLM > Software > Citrix > Ica > PrintingSettings

Then create a new Dword entry with a hexidecimal value of “1”:

DeleteNetworkPrinters         1

Citrix Printing

Simple, right?  Now any presented desktops you are using should dispose of extra session printers at each connection.  And if you are using XenDesktop 5.6, you need to make the change on the VM endpoints themselves.  In this case, install Hotfix Rollup XD560VDAWX64400 (version 5.6.400) for XenDesktop Virtual Desktop Agent Core Services x64 (

If your client VMs are 32 bit, get XD560VDAWX86400 (

Install this patch for the Virtual Desktop Agent (VDA) and then, again on the client VMs, have the same registry edit applied:

HKLM > Software > Citrix > Ica > PrintingSettings

Then create a new Dword entry with a hexdecimal value of “1”:

DeleteNetworkPrinters         1

That’s it!  Test it according to your deployment method and you should see those printers disappearing.  If you want them to stick around, change the value of DeleteNetworkPrinters from “1” to “0.”


2015-12-22T20:21:24+00:00 September 24th, 2014|News|

FARMINGTON HILLS, MICH.,  – September 24th, 2014 – Coretek Services, a nationally recognized IT consulting and systems integrator, is proud to announce that it has been recognized for their sixth year in a row as one of Metro Detroit’s Best and Brightest Companies to Work For. Coretek Services was chosen among hundreds of competing companies throughout Metro Detroit who strive for this Best and Brightest designation.

“To be recognized for this commitment for six years in a row is a great honor and a true testament to the hard work and dedication our employees have put forth over the years,” said President and CEO Ron Lisch. “Our definition of great people are those who continue to live our mission. We will work hard to continue to provide a culture where great people want to work with other great people to do great work, which truly is the key to our success.”

Coretek Services was assessed by an independent research firm which reviewed a number of key measures relative to other nationally recognized winners. They include Compensation, Benefits and Employee Solutions; Employee Enrichment, Engagement and Retention; Employee Education and Development; Employee Achievement and Recognition; Communication and Shared Vision; Diversity and Inclusion; Work-Life Balance; and Community Initiatives.

“We know that our business is our people, and constantly refining relationships with them is essential to our success,” said COO Bill Deighton. “We dare our employees to be exceptional and challenge each individual to take charge of their unique career path. We just provide the tools and training they need to get there.”

PowerShell – Query AD for Group Email Addresses…

2014-09-10T22:11:03+00:00 September 10th, 2014|Uncategorized|

Somebody asked me today if there is an easy way to query AD or Exchange for the email addresses of groups.  There most certainly is!  Let’s walk through my train-of-thought here.  First, I started by querying all groups, piped to Format-List, like this…

Get-ADObject -LDAPFilter "(objectclass=group)" -Properties mail|fl

…but in doing so, you get this list of group objects that may or may not have email addresses:

PowerShell Group Email Query

Hmm, we can do better…  Do you want to query ALL groups, or just groups with email addresses?  Well, in our case, we’re really just after groups with email addresses, so I modify my ldap filter accordingly:

Get-ADObject -LDAPFilter "(&(objectclass=group)(mail=*))" -Properties mail|fl

And the results look the same as above, but only the groups we want are listed.  Okay, that’s better.  But of course, if you ONLY want the email addresses, let’s limit the properties in our list:

Get-ADObject -LDAPFilter "(&(objectclass=group)(mail=*))" -Properties mail|fl -Property mail

…and it looks like this:

PowerShell Group Email Query 2

And finally, if you just want the list of email addresses, no attributes; we use the PowerShell equivalent of AWK to split the line…

Get-ADObject -LDAPFilter "(&(objectclass=group)(mail=*))" -Properties mail|fl -Property mail|findstr /v "^$"| %{ $_.Split(' ')[2]; }

And here’s our pretty list:

PowerShell Group Email Query 3

 I hope that helps!

Coretek Services Summer Picnic 2014

2014-09-03T21:14:17+00:00 September 3rd, 2014|Uncategorized|

Well, here we are; the end of summer nears, children are returning to school, football is on everyone’s mind, and soon the temperatures will be turning cooler.

But even with all that, there was still time for the annual Coretek Services Summer Picnic to bring us together and give us one of the last chances of Summer to have great family fun while catching up with some of our co-workers and families that we don’t always get to see.

Coretek 2014 Summer Picnic

There was plenty of great food, a raffle, paddle boats, bounce houses, games, food, and great conversation.  It was over too soon…

Thanks to everyone who attended…  And to everyone that made it happen!!

See you next year!


Fatal error: Uncaught exception 'GuzzleHttp\Exception\ClientException' with message 'Client error: `POST` resulted in a `400 Invalid instrumentation key` response: {"itemsReceived":1,"itemsAccepted":0,"errors":[{"index":0,"statusCode":400,"message":"Invalid instrumentation key"}]} ' in /home/coretek/public_html/wp-content/plugins/application-insights/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php:113 Stack trace: #0 /home/coretek/public_html/wp-content/plugins/application-insights/vendor/guzzlehttp/guzzle/src/Middleware.php(66): GuzzleHttp\Exception\RequestException::create(Object(GuzzleHttp\Psr7\Request), Object(GuzzleHttp\Psr7\Response)) #1 /home/coretek/public_html/wp-content/plugins/application-insights/vendor/guzzlehttp/promises/src/Promise.php(203): GuzzleHttp\Middleware::GuzzleHttp\{closure}(Object(GuzzleHttp\Psr7\Response)) #2 /home/coretek/public_html/wp-content/plugins/application-insights/vendor/guzzlehttp/promises/src/Promise.php(156): GuzzleHttp\Promi in /home/coretek/public_html/wp-content/plugins/application-insights/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php on line 113