Coretek Community Project – 2013…

2017-07-27T00:01:03+00:00 June 26th, 2013|Uncategorized|

In June of this year, Coretek Services really showed up and reached out to the community for its 2013 Community Project.  This year’s project really demonstrated how we truly believe in not only the culture at Coretek, but also the culture of the community as well. 

In April, we contacted the city of Farmington Hills to see if they could help find a family in need.  After interviewing several candidates, the hard choice was made, and our chosen candidate graciously accepted our offer to help renovate her home.  For this project, our mission was to help our candidate (83 yrs of age) and her daughter (in her 50’s and suffering from health issues) return their home to the pristine state that it had seen many years prior.  Our candidate has been widowed for over 10 years, and the home had suffered from many years of neglect and lack of maintenance which made it difficult for the women to navigate through.    

After a few weeks of scoping the work needed, it was decided that the project would take place on Saturday, June 1, and the following Saturday, June 8.  Coretek employees showed up in full force with their families in tow to participate and volunteer their time, skills, and effort to ensure the success of the project with no exceptions.  From day one, the volunteers hit the ground running with a mutual desire to give this family a home in which they could safely move around in and enjoy.  This was no easy task; but with the determination, focus, and team spirit, that the employees of Coretek share, we were able to put our minds and muscles together in a joint effort to give this family back the home they deserve.

There was plenty of work for the grown-ups to do, but we also made sure that there were activities for the little ones to participate in as well.  There was flower planting and painting — among other things — to keep the young Coretekers busy.  Finally, after 2 long days of fun-filled activities and laborious effort, we were able to complete the project — and the changes were remarkable!  The mother and her daughter were astonished and very impressed with the results of team Coretek!  Below are some of the before and after shots of the home and some pictures of the team at work, and at play.  Coretek Services rocked in 2013, and will continue to rock on in 2014 and beyond.  Thanks to all who participated, and we’re looking forward to seeing you again next year!

1-before 2-before 3-before 4-before 5-before 6-before 7-before 8-before




Publishing MS Word Viewer through Citrix XenApp 6.5…

2017-07-27T00:01:03+00:00 June 19th, 2013|Uncategorized|

Recently, I moved over to the Coretek virtualization team.  It’s a great opportunity to work with new technologies and implement them as part of our Virtual Clinical Workstation solution.  

Citrix is one of the technologies that plays a major part in the solution.  As part of a virtualization implementation we are working on, I was tasked with publishing the Microsoft Office viewers through Citrix XenApp 6.5.  Now, I have a pretty extensive background in software installation and configuration on Windows desktops; however, publishing them through Citrix was new to me.  

The way a published application’s files and registry keys interact with a desktop operating system are fundamentally different.  Therefore, I was surprised to find when I attempted to open a Word document in the published Word viewer by double clicking on the .doc file — the file itself would not open, but the Word viewer would only open up an “Open” dialog.



So, being pretty new to Citrix — and given that it’s a pretty complex application that is comprised of multiple policies, application configurations, and settings, which can redirect content and drive mappings — troubleshooting issues like this can be challenging (and of course, you must also consider all the AD policies applied as well).  In the end, the solution to this particular issue was pretty simple…

Fortunately, once I was able to rule out that content redirection or drive mappings might be the cause, I found a Citrix KB article that addressed the exact issue I was having.  You can read the article here:

In short, I had to add a special parameter (“%**”) at the end of the Word Viewer’s Command Line in the Citrix AppCenter (where published applications are stored).  The default parameter contains only one asterisk (“%*”). 




Hopefully this tip will help if you experience the same issue!




PowerShell – How To Discover and Set Permissions on a Folder…

2017-07-27T00:01:03+00:00 June 12th, 2013|Uncategorized|

I’ve written a few posts here in the past about how to use PowerShell to set NTFS permissions, in a couple different fashions.  But recently I was asked something like, “…okay, I know what permissions I’d like to assign in Windows Explorer, but how do I know what the PowerShell equivalent is?” 

The point of the question is that the description of the permission you see in the GUI is not necessarily what you’d actually put in your PowerShell command when you attempt to apply it.  So how do you know the difference and correlation?

There are tons of references out there for learning more about scripting setting permissions in PowerShell, but it’s not always easy to know *which* permission to set with PowerShell.  So let’s imagine the scenario where we need to add a “custom” permission to a folder via a PowerShell script or command (maybe part of a loop, etc.), and the requesting person has only described to you in the most GUI-like terms what is needed. Step1

In this case, what I usually do is:

1.) Ask the person to set the desired permission on an example folder (if it doesn’t exist already) to be sure that you are talking about the same thing, like this example:

…In this example case we are using the following:

Permission 1: Create File / Write Data
Permission 2: Create Folders / Append Data
Permission 3: List Folder / Read Data
At: Folder name “Bogus”
For: This folder, subfolders, and files
To: LABWorkgroup1


2.) Use PowerShell command Get-Acl .Bogus | Format-List to get a readable ACL from the example folder:


3.) Now, remove that permission from the folder, and run the above command again to see the difference (or just evaluate the SIDs):


…and now you can see — among the other permissions — that the above listed permissions translate to LABWorkgroup1 Allow  ReadData, CreateFiles, AppendData, Synchronize; and the Sddl, if you need it: (A;OICI;0x100007;;;S-1-5-21-2087276962-282213542-3505124996-1115)

4.) Finally, set the permission on the new folder:

$folder = "Bogus"
$myGroup = "LABWorkgroup1"
$acl = Get-Acl $folder
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule("$myGroup", "ReadData", "ContainerInherit, ObjectInherit", "None", "Allow")
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule("$myGroup", "CreateFiles", "ContainerInherit, ObjectInherit", "None", "Allow")
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule("$myGroup", "AppendData", "ContainerInherit, ObjectInherit", "None", "Allow")
Set-Acl $folder $acl

This is a simple example, of course, but it’s an easy way to get it done without chasing down reference documentation.  After a while and frequent use, you begin to kinda’ memorize the various PowerShell permissions options and recognize them — but you can sometimes forget them too, and this is a quick and easy way to figure it out at any time.



XP Elimination — The looming crush…

2017-07-27T00:01:03+00:00 June 5th, 2013|Uncategorized|

It’s an interesting time… 

There’s a familiar feeling in the air at many large enterprises.  I remember this feeling.  I think it’s was somewhere in ’98 or ’99, back in the pre-Y2K times.  And for those of you too young to remember those days in the I.T. world, that feeling is the “holy-cow-are-we-doing-enough-to-get-in-front-of-this” feeling. 

Back in those days, we had a looming deadline (real or imaginary, it doesn’t matter), full cooperation from the front offices (management, HR, and accounting), and incessant media reminders that planes were going to fall from the sky if you didn’t update all your COBOL, replace all your hardware, upgrade MS Office, and so on.  As a result, every single vendor was suddenly releasing new versions of everything, and the money flowed like the champagne on Wall Street.

Now…  Well, now, it’s a tad different in a handful of ways.  Because now, while we have a massive OS End-Of-Life date (XP EOL – April 8, 2014) and a floundering economy, we also have a replacement OS that — like it or not — is not being widely adopted in the Enterprise (yes, I mean Windows 8 RTM).  And, as some of you may not be aware, XP still has a massive…  MASSIVE… footprint in the Enterprise, 10 years on and going strong.  So stable has XP been, that the largest Enterprises really don’t want to move away from it, and therefore really haven’t.  As a result, the development world hasn’t always been so inclined to move their products forward to the Win7/8 development model, either.  The chicken and the egg, playing chicken.

But the calm is falling away as the concerns are finally rising up to the executive suites, and dollars in I.T. are starting to have their leashes loosened.  The front office folks are finally starting to hear that the desktops are going to fall out of support if something isn’t done.  And “no longer supported by Microsoft” is something that executive folks understand.

So here we are.  Let’s look at some facts.  Less than one year until the XP EOL — and after the Enterprise had pretty much completely skipped Vista — they are *trying* to embrace Win7.  They’ve been planning the implementation for years.  Heck, it’s practically a cottage industry.  Hopefully, there are whole teams devoted to the project; folks whose whole job is focused around design and deployment tasks, and were hired (or contracted) solely for that purpose.  They might even be underway migrating/upgrading/implementing.  However, it also might be the case that it’s too difficult to get it done in limited time with the limited resources at hand.  Which is why even in a time that the large Enterprise is still not hiring *employees*, they are sure bringing on a lot of consultants and contractors in an effort to provide design and implementation experience; and in some cases just to throw bodies at the problem.

But I have a feeling they’ve been counting on a sliding XP EOL deadline all this time.  And guess what?  Nobody thinks that’ll happen (not publicly anyway).  Microsoft needs to get some traction under Win8, so they need movement away from XP asap. 

The good news is that the rumors and reports about Win8.1 seem to be exactly what the Enterprise was after (or close enough to it).  So we’ll feel good about completing the current migrations to Win7 (with Classic of course, to look like XP).  And by the time the Enterprise completes the Win7 roll-out (after the XP EOL date, of course), they’ll already be moving on and doing testing/development for the Win8.1 pre-release.  Of course, if Microsoft allows the GPO-controlled removal of much of the Consumer-market stuff in Win8.x (can I get my Classic, anyone?), the Enterprise might just keep the Win7 implementation motor running, and just start pushing out Win8.1 right behind it!  Why not!?!

But either way, Win7 implementations are finally happening all around.  Win8.1 looks like it might be Enterprise-ready out-of-the-box.  The infrastructures are being upgraded to accommodate all this (Can you say, “cloud”?).  And Coretek’s customer demand has exploded as folks turns to us for additional help and partnership in these massive projects that — I’m proud to say — we’re pretty good at. 

Well guess what?  We *are* turning it around, and we will “get-in-front-of-this”…  And it looks like the appearance of Win8.1 might just help ease that XP Elimination Post-Y2k-esque drop-off, too.

It’s an interesting time… 



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