Using pdfMachine in a Remote Desktop Environment
Read the specific notes when using pdfMachine in a Citrix / Remote Desktop / Terminal Server:
- Licensing
- Installation
- Client Side Printing / Emailing / Saving
- Published Applications
- Security Settings
Licensing
pdfMachine is licensed per user. The same Windows user can use the license on up to 5 devices when logging in as that user. Read the license agreement for specific details.
In a terminal server environment the server and the clients are detected as a single device. This allows a user to use a single license in a terminal server farm across many clients.
Note: Versions prior to 14.61 are licensed per machine, i.e. each machine involved (servers and Citrix / RDP clients), no matter how thin the client, need a separate license.
Installation on Citrix / Remote desktop / Terminal Server
The following notes should be read before installing in a terminal server environment:
(1) Do use the pdfMachine.exe download file to install. Instructions are here.
(2) Don't use the control panel add/remove programs to install.
(3) Don't use the command: "change user /install"
If you do either of (2) or (3) above terminal server creates
"shadow registry" entries which will overwrite valid
pdfMachine registry entries. If this is done, you need to uninstall pdfMachine then manually remove
any shadow registry entries from the registry. They are usually located under the registry key:
HKEY_LOCAL_MACHINE\SOFTWARE\
Once this is done, reboot, then install pdfMachine by running the pdfMachine.exe program under
an admin account.
bgsmsnd.exe:
The process bgsmsnd.exe must be running at user logon time. Each user
will have a copy running. If you publish applications via terminal server then
make sure that you add a line to the logon script that executes bgsmsnd.exe,
which is located in the printer driver directory, typically:
C:\Windows\System32\spool\
User Options:
The first time a user logs on after pdfMachine is installed, registry entries for all
pdfMachine options are created in:
HKEY_CURRENT_USER\Software\
These are created using sensible defaults and values saved in the
"bgsconf.ini" file. Bgsconf.ini is located in the printer driver
directory (e.g. C:\Windows\System32\spool\
Note for Windows 7 users:
Make sure you are using version 13.098 or later.
In the advanced options for the pdfMachine printer set the following option :
"Print Directly to the printer"
Using pdfMachine on the client side
When using Citrix / Windows Terminal Server / Remote sessions, you can initiate a pdfMachine print and have the client side send email / save / view. To do this :
Using Published Applications
If you are using are using the "published application" feature of Citrix or terminal server there are a few
things you have to do to get pdfMachine to work.
bgsmsnd.exe is a pdfMachine background process that must be running under the same
account as the application that is doing the printing. It is started at install
and logon time. It is usually located in the printer driver directory :
C:\windows\system32\spool\drivers\w32x86\3\bgsmsnd.exe
or
C:\windows\system32\spool\drivers\x64\3\bgsmsnd.exe
Startup
You need to configure a start-up script or something that launches bgsmsnd.exe before the published app starts.
Exit
You will need to then configure your Citrix or terminal server session
to kill bgsmsnd.exe upon exit, otherwise it will hang around. You can do this by
running bgsmsnd.exe again with the command line option -exit. e.g. bgsmsnd.exe -exit
In the event of a loss of connection or the user kills the app, bgsmsnd.exe will still be running.
On citrix, this can be handled by setting a registry entry, as described:
http://support.citrix.com/article/ctx891671
Note the registry key:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Citrix\wfshell\TWI
You can also set the maximum amount of time that a disconnected user session is kept active:
http://technet.microsoft.com/en-us/library/cc754272.aspx
Security Settings
When you are logged into a Terminal Server and you connect to a shared printer that
is running on another machine the error "You do not have sufficient access
to your machine to connect to the selected printer" may be displayed. This
is because the "Prevent users from installing printer drivers" option
is enabled by default in the local security settings.
On the server running Terminal Services:
(1) Click Start, point to Programs, click Administrative
Tools,
and then double-click Local Security Policy.
(2) Double-click Local Policies.
(3) Double-click Security Options.
(4) In the right pane, double-click Prevent users from installing printer drivers.
(5) Click Disabled, and then click OK.
(6) Close the Local Security Settings window.
It may then be necessary to reboot the server or to force an immediate policy refresh for the change to take effect.