Troubleshooting Citrix Client Issues in ScrewDrivers v6 and v7
Overview
The ScrewDrivers client integrates with Citrix environments through an ICA (Independent Computing Architecture) client plugin that enables printer redirection and management. When users don't receive their printers in Citrix sessions, the issue is usually related to the ICA plugin configuration, registry settings, or Citrix client updates that have disrupted the integration.
This guide covers common Citrix client issues and their solutions for both ScrewDrivers v6 and v7.
Understanding the Citrix Integration
Installation Order Requirement
The ScrewDrivers client requires the Citrix ICA Client to be installed before the ScrewDrivers client installation. This installation order is critical because:
- ScrewDrivers installs plugins into the Citrix ICA Client directory during its installation
- The installer creates registry keys within the Citrix configuration structure
- The installer registers the ScrewDrivers virtual channel with Citrix
Always install Citrix ICA Client first, then install ScrewDrivers Client. Installing in the wrong order will result in missing plugins and non-functional printer redirection.
Impact of Citrix Client Updates
When the Citrix ICA Client is updated, it frequently removes or overwrites the ScrewDrivers plugin information. This is a known behavior of Citrix client updates and results in users losing printer access in their Citrix sessions.
After any Citrix ICA Client update, you must reinstall or re-register the ScrewDrivers ICA plugin.
Common Symptom: No Printers in Citrix Sessions
Symptom: Users connect to their Citrix session but don't see any ScrewDrivers-managed printers.
Root Cause: The ScrewDrivers ICA plugin is missing, not registered, or not loading due to incorrect registry configuration.
Verifying ICA Plugin Installation
Before attempting fixes, verify the current state of the ICA plugin installation.
Check Plugin DLL Location
The ICA plugin DLL should be present in the Citrix ICA Client directory:
64-bit Windows:
C:\Program Files (x86)\Citrix\ICA Client\sdica32.dll
32-bit Windows:
C:\Program Files\Citrix\ICA Client\sdica32.dll
Even on 64-bit Windows, the Citrix ICA Client often runs as a 32-bit process, so the plugin is named sdica32.dll and resides in the Program Files (x86) directory.
Check Registry Configuration
Verify the registry contains the proper ScrewDrivers virtual channel registration.
64-bit Windows:
HKEY_LOCAL_MACHINE\Software\Wow6432Node\Citrix\ICA Client\Engine\Configuration\Advanced\Modules
32-bit Windows:
HKEY_LOCAL_MACHINE\Software\Citrix\ICA Client\Engine\Configuration\Advanced\Modules
Required Subkeys and Values
The following subkeys and values must exist:
Subkey: ICA 3.0
- Value Name:
VirtualDriver - Value Type:
REG_SZ - Value Data: Must include
ScrewDriversFXPin the comma-separated list- Example:
Thinwire3.0,ClientDrive,ClientAudio,ScrewDriversFXP,...
- Example:
Subkey: ScrewDriversFXP (created by ScrewDrivers installer)
- Value Name:
DriverNameWin32 - Value Type:
REG_SZ - Value Data:
sdica32.dll
Subkey: VirtualDriver
- Value Name:
ScrewDriversFXP - Value Type:
REG_SZ - Value Data:
""(empty string)
For complete details on these registry settings, see Client Plugin Registry Configuration.
Fixing ICA Plugin Issues
Solution 1: Reinstall ICA Plugin (PerMachine Installation)
If the Citrix ICA Client is installed per-machine (the standard and recommended method), use this procedure.
For ScrewDrivers v6
-
Navigate to the ScrewDrivers Client installation directory:
C:\Program Files\Tricerat\Simplify Printing\ScrewDrivers Client v6 -
Locate and run RegisterTriceratIcaPerMachine.bat as Administrator
-
You may see a quick blank command prompt flash on the screen—this is normal and indicates the script ran successfully
-
The batch file registers the ScrewDrivers ICA plugin and creates the necessary registry entries
For ScrewDrivers v7
Version 7 simplifies the plugin registration process with a built-in tool.
-
Open the ScrewDrivers Endpoint Client application
-
Navigate to the About tab
-
Click the Register button at the top of the window
-
The registration process runs automatically and reinstalls the Citrix plugin configuration
Solution 2: Fix PerUser Installation
If Citrix ICA Client was installed per-user instead of per-machine, the registry keys won't be in the expected location. This is less common but does occur in some deployment scenarios.
Symptoms of PerUser Installation
- The registry path
HKLM\Software\...\Citrix\ICA Client\...doesn't exist - Citrix ICA Client registry keys are in
HKCU(Current User) instead ofHKLM(Local Machine) - The RegisterTriceratIcaPerMachine.bat script completes but doesn't fix the issue
For ScrewDrivers v6 PerUser Fix
-
Navigate to the ScrewDrivers Client installation directory:
C:\Program Files\Tricerat\Simplify Printing\ScrewDrivers Client v6 -
Locate and run RegisterTriceratIcaPerUser.bat as the affected user (not necessarily as Administrator)
-
The batch file creates the necessary registry entries in
HKEY_CURRENT_USERinstead ofHKEY_LOCAL_MACHINE
PerUser Citrix installations require running the registration batch file for each user account. This is more difficult to manage at scale. When possible, reinstall Citrix ICA Client using a per-machine installation method.
For ScrewDrivers v7 PerUser Fix
The v7 Register button in the Endpoint Client works for both PerMachine and PerUser Citrix installations. Simply use the Register button as described in Solution 1.
Verification After Reinstallation
After running the registration scripts or using the v7 Register button:
-
Restart the Citrix ICA Client: Close any running ICA connections and restart the Citrix Workspace app or Receiver
-
Test printer access: Connect to a Citrix session and verify that ScrewDrivers printers appear
-
Check registry: Verify that the registry keys mentioned earlier now exist and have the correct values
-
Review logs: If issues persist, enable ScrewDrivers client logging and collect logs for analysis (see Enabling Diagnostic Logging or v7 logging guide)
Prevention: Managing Citrix Updates
Before Updating Citrix ICA Client
- Document current configuration: Note which ScrewDrivers client version is installed
- Backup registry settings: Export the Citrix ICA Client registry keys
- Test in non-production: Update Citrix on test machines first
- Plan for re-registration: Schedule time to re-register ScrewDrivers plugins after the update
After Updating Citrix ICA Client
- Immediately re-register plugins: Run the appropriate registration method for your ScrewDrivers version
- Test printer functionality: Verify printers appear in test Citrix sessions
- Deploy to production: Once verified, update production machines and re-register plugins
- Communicate to users: Let users know to log off and back on if they don't see printers after the update
Automating Plugin Re-Registration
For large-scale deployments, consider automating plugin re-registration:
Using Group Policy: Create a logon script that checks for and runs the registration batch file if needed.
Using Configuration Management: Include the registration step in your Citrix ICA Client update deployment process (SCCM, Intune, etc.).
Monitoring: Implement monitoring to detect when users connect to Citrix but don't have ScrewDrivers printers, triggering automatic remediation.
Advanced Troubleshooting
If the standard registration procedures don't resolve the issue, try these advanced steps:
Manually Verify DLL Registration
Check that the ICA plugin DLL is properly registered:
# Check if DLL exists
Test-Path "C:\Program Files (x86)\Citrix\ICA Client\sdica32.dll"
# Check file version
Get-Item "C:\Program Files (x86)\Citrix\ICA Client\sdica32.dll" | Select-Object VersionInfo
# Verify it's not blocked
Get-Item "C:\Program Files (x86)\Citrix\ICA Client\sdica32.dll" | Unblock-File
Manually Add Registry Keys
If the batch files fail, manually create the registry keys:
# For 64-bit Windows
$regPath = "HKLM:\Software\Wow6432Node\Citrix\ICA Client\Engine\Configuration\Advanced\Modules"
# Ensure paths exist
New-Item -Path "$regPath\ScrewDriversFXP" -Force
New-Item -Path "$regPath\VirtualDriver" -Force
# Add values
Set-ItemProperty -Path "$regPath\ScrewDriversFXP" -Name "DriverNameWin32" -Value "sdica32.dll"
Set-ItemProperty -Path "$regPath\VirtualDriver" -Name "ScrewDriversFXP" -Value ""
# Add to VirtualDriver list
$ica30Path = "$regPath\ICA 3.0"
$currentDrivers = (Get-ItemProperty -Path $ica30Path -Name "VirtualDriver").VirtualDriver
if ($currentDrivers -notlike "*ScrewDriversFXP*") {
$newDrivers = $currentDrivers + ",ScrewDriversFXP"
Set-ItemProperty -Path $ica30Path -Name "VirtualDriver" -Value $newDrivers
}
See Client Plugin Registry Configuration for complete manual configuration details.
Reinstall ScrewDrivers Client
If all else fails, completely reinstall the ScrewDrivers client:
- Uninstall ScrewDrivers Client: Use Add/Remove Programs or the ScrewDrivers uninstaller
- Verify Citrix ICA Client is installed: Check that Citrix Workspace or Receiver is present
- Reinstall ScrewDrivers Client: Run the installer as Administrator
- Test functionality: Connect to a Citrix session and verify printer access
When to Contact Support
Contact Tricerat Support if:
- The registration procedures don't resolve the issue
- Printers still don't appear after manual registry configuration
- You see errors during the registration process
- The issue affects all users in your environment
- You're using a non-standard Citrix configuration
Tricerat Support Contact:
- Email: Support@tricerat.com
- Phone: 800-582-5167 x3
When contacting support, provide:
- ScrewDrivers client version (v6 or v7, specific build number)
- Citrix ICA Client version
- Operating system version
- Whether Citrix is installed PerMachine or PerUser
- Screenshots of registry configuration
- ScrewDrivers client logs (with logging enabled)