$theTitle=wp_title(" - ", false); if($theTitle != "") { ?>
About Virtualization, VDI, SBC, Application Compatibility and anything else I feel like
14 Mar // php the_time('Y') ?>
Interesting case today: customer uses Imprivate for two factor logon in combination with Citrix XenApp.
Users reported that logons failed after they had changed their password. After contacting the users we learned that this only happened with special characters in the password like ! and +.
To do the actual logon to Citrix Imprivata uses an executable which is actually an AutoIT script compiled to an executable.
After authentication the executable get’s the password from the Imprivata Appliance.
I decompiled the executable to source and read the line that passes the password to XenApp:
Last week I wrote about an error message the users received when opening documents from SharePoint.
The article showed how to fix the problem but it didn’t feel good that I didn’t know where this “TreatAs” value was coming from.
I figured that I could read the timestamp key from the registry to see at what/date time the value was created. This value can be read using the RegQueryInfoKey API but there are various tools that can read it.
I wrote a small tool that dumps all stored password for the Microsoft Lync Client that I’d like to share here.
It’s a commandline tool that takes no arguments:
Have fun with it!
Lync Password Dumper (6021 downloads)9 Mar // php the_time('Y') ?>
Today I was troubleshooting a message that appeared when a user tries to edit a document from SharePoint on a Citrix XenApp server.
The user browsed to a word document on Sharepoint and selected “Edit in Microsoft Office Word” from the Combobox:
This would present the following error message to the user:
Yesterday I showed a video demonstrating it’s possible to run multiple instances of the Microsoft Lync 2010 client simultaneously.
A little warning before we go on: the Lync Client was not designed to run with multiple instances. Or better said: it was designed specifically to prevent this, let’s see how it does this:
On startup Lync calls an internal function called COcAppNoUI::InitializeMainInstance. In this function it creates a Mutex named “Office Communicator_” in the Global namespace. It also creates an Event in the Global namespace called “COMMUNICATOR-“.
When a second instance of Lync is launched it checks if the Global Mutex exists and if it does it fires the Global Event. The Main instance has a thread that waits for this event using the WaitForMultipleObjects API.
This video shows that’s it’s possible to run multiple instances of the Lync 2010 client.
I am running natively, so I am not using ThinApp or App-V.
I will follow this up later with a how-to blog.
6 Mar // php the_time('Y') ?>
From a script I needed to schedule a project in RES Automation Manager 2011 for a particular server.
This can be done with the WMC.exe commandline tool as documented in the Admin Guide. However we must specify the agent’s GUID instead of it’s name. We can of course use the AM console to get the agent’s GUID but it’s more flexible to script this.
Unfortunately there’s no API we can call so I am directly quering the AM database using a PowerShell script.
The script read the database server and database name from the registry so it assumes you have the AM console installed.
I am writing a script that is going to automate a number of manual steps involved in creating a new image with Citrix PVS.
First step is to copy the most recent base image which is kept in a folder structure. The folder name is always YYYY-MM-DD (description):
I needed to determine the most recent folder and didn’t want to rely on creation date. Instead I walk the directory tree and filter the date out of the filename with a regular expression:
1 Mar // php the_time('Y') ?>
Yesterday I wrote about the Windows 8 CP WebSetup installer and told you that the Application Compatibility check creates a few XML files in the folder %AppData%\Local\Microsoft\WebSetup\Panther.
So what can we do with them?
The XML files are created by a separate exe in the WebsetupExpanded folder called WicaInventory.exe with the arguments: /apps /fast /ext “exe,sys” /output <XML file> /log <LOG file>
In my case the commandline was:
1 | WicaInventory.exe /apps /fast /ext "exe,sys" /output "C:\Users\rweijnen\AppData\Local\Microsof\WebSetup\Panther\WICA_Programs_REMKOLAPTOP.xml" /log "C:\Users\rweijnen\AppData\Local\Microsoft\WebSetup\Panther" "c:\Users\rweijnen\AppData\Local\Temp\1fd52b5b-2609-4156-ac02-49dca27a0a8d\WebSetupExpanded" |
Let’s see what’s in WICA_Programs_REMKOLAPTOP.xml.
29 Feb // php the_time('Y') ?>
The Windows 8 Consumer Preview is downloaded as a Web Installer called Windows8-ConsumerPreview-setup.exe.
On my system the Web Installer crashed while checking Application Compatibility:
I clicked the Debug option and launched the Visual Studio debugger: