untitledWe recently had a problem where Citrix Servers 2008 R2 in a farm would randomly hang when random users logged off. The users would get “Waiting for User Profile Service” when trying to RDP in. When you went onto the console of the server and tried a Ctrl , Alt and Delete it would display the plain windows wallpaper but nothing else ( no username or password prompt ). The only way to get the server back would be to reset the machine. However users logged into the server would be fine until they tried to log off!

When the machine restarted you could see WinLogon.exe event log issues which proved the problem above was related

I wrote the following powershell script to query the servers everyday so we could restart them in the evening until we found the fix


The below script used application names instead of manually entering in server names

$PSEmailServer = "email server"
Add-PSSnapin Citrix*
function QuerySessions($computer, $timeout)
#Ping the server to make sure online
If (Test-Connection $computer -quiet) {
#Check RDP is Alive
  $job = Start-Job -ScriptBlock {param($computer) query session /server:$computer } -ArgumentList $computer
  Wait-Job $job -Timeout $timeout
  Stop-Job $job 
  $result = Receive-Job $job
  $processresult = query process /server:$computer
  if($result -eq $null -or $processjob -eq "Error enumerating processes" )
{Send-MailMessage -From "emailfrom@domain.com.au" -to "emailto@domain.com.au" -Subject "Citrix Server Hung" -Body $computer}
  Remove-Job $job
#Else {Write 'Tango Down'}
$servers = Get-XAServer -BrowserName 'CitrixAppName'| select ServerName
foreach ($server in $servers) {
QuerySessions -computer $server -timeout "5"


Old Script to manually check specific servers

$PSEmailServer = "emailserver"
function QuerySessions($computer, $timeout)
#Ping the server to make sure online
If (Test-Connection $computer -quiet) {
  $job = Start-Job -ScriptBlock {param($computer) query session /server:$computer } -ArgumentList $computer
  Wait-Job $job -Timeout $timeout
  Stop-Job $job 
  $result = Receive-Job $job
  if($result -eq $null)
{Send-MailMessage -From address@from.com -to address@to.com -Subject "Citrix Server Hung" -Body $computer}
  Remove-Job $job
#Else {Write 'Tango Down'}
QuerySessions -computer "citrixserver1" -timeout "5"
QuerySessions -computer "citrixserver2" -timeout "5"

Looking through some Citrix forum posts , users had suggested the following hot fixes

KB2525332 – Do not automatically make redirected folders available offline

Citrix Forum Said none of these fix the issue of Logging off

  • KB2581608
  • KB2561285

Other Policy/Profile related hotfixes I found useful

  • KB2590550
  • KB2065362
  • KB2510636
  • KB2383928 – Logging Off Probs +++ ( Not Applyable Already Applied to SP1 )
  • KB2575077
  • KB2265716 + ( Not Applyable )
  • KB2617858
  • KB2775511
  • KB2661001 +
  • KB2465772 + ( Not Applyable )
  • KB2379016
  • KB2004121
  • CTX133595

Other Reasons

  • User Laptop Going to Sleep?
  • System\%registry quota in use maxing out?
  • Stop NLASVC
  • Run Logon Scripts Syncronosly
  • WMI filtering
  • Check Shortcut’s Group Policys uses Asyncrhonous Logins
  • Mutliple NICS on DC?
  • OFF print driver isolation via group policy on the Citrix servers
  • HP Universal Printer Driver version 5.2.6 was the problem. We updated it to the newest available version (5.3.1)
  • Better: Enable GPSVC debug logging and check the log file with Sysprosoft Policy Reporter for time lags… http://sysprosoft.com/policyreporter.shtml (Policy Reporter allows you to enable debug logging, too ;-))

The Fix

We enabled print driver isolation which seems to make things better but still happened randomly

After disabling the Citrix Print Manager Service the problems stopped straight away , Great! However we needed this for users with local printers mapping to Citrix. After sending Citrix and Microsoft dumps of the crashed servers , they confirmed this and Citrix got me to delete and readded the Citrix Universal Print Driver via http://support.citrix.com/article/CTX125780

VN:F [1.9.22_1171]
Rating: 9.0/10 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Can't-open-this-itemWhen opening email from a Find / Search in Outlook 2003 you get “can’t open this item”

Is you use custom forms this is due to the custom form cache filling up and needing to be cleared , below code will do this is you copy and paste it into a VBS file

'Robert Sparnaaij [MVP-Outlook]

'Close Outlook socially
WScript.Echo "Close Outlook and press OK"
'Close Outlook forcefully
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery _
("Select * from Win32_Process Where Name = 'outlook.exe'")
For Each objProcess in colProcessList
'Set Profile Path
Set oShell = CreateObject("WScript.Shell") 
sCurrUsrPath = oShell.ExpandEnvironmentStrings("%UserProfile%")
Set objFSO = CreateObject("Scripting.FileSystemObject")
'Verify whether the Forms Cache exists and delete it 
If objFSO.FolderExists(sCurrUsrPath & "\Local Settings\Application Data\Microsoft\Forms") Then
      WScript.Echo "The Forms Cache has been found and will be cleared."
      Const DeleteReadOnly = True
      objFSO.DeleteFolder(sCurrUsrPath & "\Local Settings\Application Data\Microsoft\Forms"), DeleteReadOnly
      WScript.Echo "The Forms Cache has been cleared succesfully. Start Outlook and check whether the form works now."
WScript.Echo "Cannot find the Forms Cache. It has been cleared already. Start Outlook and check whether the form works now."
End If

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

nitrpI wanted to disable the “Tell me if Nitro Pro is not the default viewer” option on startup for each user via group policy. We can set this using Nitro custom MST creator with deploymentutility9_en.exe , however this works as below

Installation (Admin)

1. On installation we write a large number of preferences to \HKEY_LOCAL_MACHINE\SOFTWARE\Nitro\Pro\9.0\settings\

First Launch (User)

2. On a users first run we copy the local machine keys to HKEY_CURRENT_USER\SOFTWARE\Nitro\Pro\9.0

3. We then load on startup these keys to memory for use during the operation of Nitro Pro 9

4. When the application is closed, any changes are written back to HKEY_CURRENT_USER so they can be accessed on the next launch

So once it set once the user can change this, I added the following update registry key to set this every time the user logs in to make 100% the user does not click yes!

Path1 : HKCU/ \Software\Nitro\Pro\9.0\settings\kPreferances

Key : kPrefGeneralMsgIfNotDefaultPDFViewer

Type : String

Value : /b 0 – where 1 is Yes and No is 0

Uncheck Prompt for FileName for all users

I have managed to isolate what drives the configuration for these panels.

Screencast : http://screencast.com/t/vivqspya9Y
Sample Files : https://nitropdf.box.com/s/iy09jagvwswi2452ccy1
Location : %temp%
Word Filename: NitroMSWordAddinPro9.ini
Excel Filename: NitroMSExcelAddinPro9.ini
PowerPoint Filename: NitroMSPowerPointAddinPro9.ini

Change Word Format Nitro Converts from PDF to Doc

Word Format – To configure in the Word Convert format you can specify the following HKLM (install) and then after first run HKCU defined key.
Location : HKEY_CURRENT_USER\Software\Nitro\Pro\9.0\Settings\Preferences\kPreferences
Name : kPrefConvertPDFToWordFormat
Type : String
Value : /i 0 | /i 1 (0 = DOCX, 1 = DOC)


This area hasn’t been configured to be completely silent in the same regards as above. The output will always be indexed ‘Untitled.pdf’, however you can configure the output location in the registry through the following registry key. This will mean that the creation occurs immediately however the name will not be pre-configured for you at this stage. To take advantage of this you will need to configure the registry keys manually shown here

 located under HKEY_CURRENT_USER\Software\Nitro\Pro\9.0\Settings\Preferences\kCombinePDF.

Creation Quality

You will need to swap out some values for the higher quality option, these are:

DownHKEY_CURRENT_USER\Software\Nitro\Pro\9.0\Settings\Preferences\kCombinePDFloadSample Keys = 300

Quality Keys = 100

Compression = 3

VN:F [1.9.22_1171]
Rating: 10.0/10 (1 vote cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

When trying to run a silverlight app the following error message is displayed on a client

Invoke Operation ‘Function Name’ Failed – specificed resource was not found

After trying to diagnose the fault being down to the server , it was actually client side error. The local C drive was full so not being able to write the local storage container!

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

citrixiconRecently a specific Citrix server in a farm was not accepting any new connections even though login was set to allow and RDP connections were working. A check in the services showed Independaent Management Architecture was not started.

I checked the disks to make sure there were not full.

A look in the event log showed :

“Failed to load plugin C:\Program
Files\Citrix\System32\Citrix\IMA\Subsystems\Ima PsSs.dll with error

I found the following article  : http://support.citrix.com/article/CTX129194

A DSmaint recreaterade did not fix the issue

I also had to run dsmaint recreatelhc


VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Needed to check all users who had SEND AS Permissions for someone else in the Exchange Enviroment apart from themselves and e.g. BESADMIN or other service accounts. Below is the command line

Get-Mailbox -Resultsize Unlimited | Get-ADPermission | ? {($_.ExtendedRights -like "*send-as*") -and -not ($_.User -like "nt authority\self") -and -not ($_.User -like "Domain\BESAdmin") -and -not ($_.User -like "domain\user")} | ft Identity, User -auto

As per the track back , can be limited to a specific OU

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Sometimes Paper Size of Trays of a 4350 printer are getting randomly changed from A4 to Custom , which means when users next print to it , the printer asks to confirm the Tray for printing ( not automatic)


This is caused when users refill the printer tray with paper , after shutting the tray it asks them to confirm the paper type. If they click the Green Button ( blue arrow ) it will reset this to Custom. They need to be pressing the Back button to leave this to A4



VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

EMM ( Email Management ) Toolbar Filing Icons 8.5

green tick imanagegreen tick imanage2

EMM ( Email Management ) Toolbar Filing Icons 9.3

Stored in : C:\Program Files\Interwoven\WorkSite\iOutlook

– Filed to Worksite

– Filing Error

– Filed and user Forwarded Email

– Filed and user Replied to Email

– Queued ( Email is queued to be filed to worksite ) 

– Mail Sent and Filed to Worksite

– Mail Send and Forwarded and Filed to Worksite

– Mail sent and Replied to and Filed to Worksite

Filesite 9.3 Icons

C:\Program Files\Interwoven\WorkSite\iOutlook\Config

Icon File



Archived document


Checked Out document


Checked out and Related


Normal document


Normal Related document


Shortcut to document


Locked document


Locked Related document


Checkedout Compound document


compound checkedout related


Locked Compound document


locked compound related


Normal Compound document


Normal Compound Related document


How to reset Icons

Please close Outlook completely (make sure Outlook.exe is no longer running in task manager)

Change HKCU\Software\Interwoven\WorkSite\8.0\FileSite\IconForm Installed to 0

Delete HKCU\Software\Interwoven\WorkSite8.0\FileSite\Registered Databases

Reopen Outlook and you should see it re-register.

VN:F [1.9.22_1171]
Rating: 10.0/10 (3 votes cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

and_receiver_h24bit_512 Citrix have released Citrix Reciever 4.1 up from the previous version 4.0. Upon installing this on a machine with Citrix Reciever 4.0 installed  , when trying to run the program it asks for .Net Framwork 4.5 to be installed.

Microsoft does not support Windows XP and .NET  4.5 Framework so this is impossible

To get around this , install .NET Framework 2.0 SP1 on the XP image and the software will start

VN:F [1.9.22_1171]
Rating: 8.5/10 (2 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)


Upon the below , I actually experienced this again , when I couldn’t break the Group down to members and add to another group. The issue was this group was a legacy Distribution Group from 2003 that just needed resetting per below ( with it’s correct details ) :

Set-DistributionGroup -Identity "Accounting" -DisplayName "Accounting Group"

**Old Fix**

I was trying to add group to group permissions in Exchange so all members of one group would have access to another groups Inbox and was getting the following error

“found in Active Directory but isn’t valid to use for permissions”

Powershell Code as below, I set the DistGrouptohavePermission to an SMTP email address of the group as well as confirming it was a Universal Security Group and it still came up with the error.

I then changed the DistGrouptohavePermission value to the MailNickName of the Group ( can be found in the Extended Attributes ) and it went through OK

# change to prefered accessrights (see "Get-Help Set-MailboxFolderPermission -Parameter AccessRights")
$accessrights = "Editor"
# set Identity to distributiongroup alias
$distributiongroup = Get-DistributionGroup -Identity "GroupWillAllTheUsers"
# normally no changing after this line
$groupmembers = Get-DistributionGroupMember -Identity $distributiongroup | Where-Object { $_.RecipientType -eq "UserMailbox" }
foreach ( $member in $groupmembers )
	$permissions = ""
	$mailbox = Get-Mailbox -Identity $member.alias
	$inbox = (($mailbox.SamAccountName) + ":\" + (Get-MailboxFolderStatistics -Identity $mailbox.SamAccountName -FolderScope Inbox | Select-Object -First 1).Name)
	foreach ( $perm in ( Get-MailboxFolderPermission -Identity $inbox ))
		$permissions += @($perm.User.DisplayName)
	if ( $permissions -contains $distributiongroup.Name )
		# Distributiongroup already has permission groupmember inbox
		Set-MailboxFolderPermission -Identity $mailbox.SamAccountName -User "DistGrouptohavePermission" -AccessRights $accessrights
		Set-MailboxFolderPermission -Identity $inbox -User "DistGrouptohavePermission" -AccessRights $accessrights
		# Distributiongroup has no permission to groupmember inbox
                Add-MailboxFolderPermission -Identity $mailbox.SamAccountName -User "DistGrouptohavePermission" -AccessRights $accessrights
		Add-MailboxFolderPermission -Identity $inbox -User "DistGrouptohavePermission" -AccessRights $accessrights
VN:F [1.9.22_1171]
Rating: 3.0/10 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)