k2clientconfig (Win)

Use of this configuration utility is deprecated

Use of this utility is not recommended for customization compared to other deployment options because it removes the code signing from the installer. Because this can make security software block the package, it is better to use the command line install options available on Windows. See Deployment for suggested methods and commands. Also note that you can use the Self Update feature of the server once the initial client deployment is done. Using it to extract the MSI from the EXE if necessary is supported.

k2clientconfig.exe is a command line utility that lets you customize the Windows client installer (ksp-client-i386.exe or ksp-client-x64.exe) with pre-configured KeyServer DNS name (or IP address) and other custom settings. The exe form of the installer contains an embedded MSI component that actually does the install. This MSI component can be extracted as a stand-alone MSI package and used to support various client deployment strategies. However, note that the MSI does not support certain features like in place upgrades, that requires the EXE remain intact. Unless your deployment mechanism is limited to MSI support, it is highly recommended you use the EXE.

k2clientconfig.exe is located in the \Installers\Windows Installers\Misc\ folder of the Sassafras Software image archive — or download the latest version from the Sassafras Software web site.

Some changes to an existing installation (e.g. including/excluding KeyCheckout) will require the existing Sassafras Software Client (KeyAccess) be uninstalled first. If the existing client is not uninstalled first, the new install will not apply certain changes or features like installing KeyCheckout.

If k2clientconfig.exe is run with no further options, the command line options will be displayed. The table below gives a more complete explanation with defaults underlined and some additional comments. Running k2clientconfig with a particular set of command line options changes ONLY those options specified on the command line, leaving all other options set to their current values. Therefore, it not necessary to specify every command line option — only those which you would like to change.

k2clientconfig.exe

Usage:

k2clientconfig [options] target_file
where target_file is the file path specifying a client installer (ksp-client-i386.exe or ksp-client-x64.exe) or an extracted MSI file (KSClient.msi)

Common Options (defaults underlined):

-d
display the msi settings from the specified installer file
-e
extract the embedded MSI package from the specified installer file. The MSI package will be created in the same folder as the specified installer file and it will be named KSClient.msi. CAUTION: DO NOT change the name of the extracted MSI package! It should ALWAYS be named “KSClient.msi”. If you rename it, the initial install will work, but you will run into problems later when you try to upgrade or uninstall.
-q
do not print progress messages
-s {0|1|2|3}
set the user interface level displayed when the MSI installer is run
     0: user can change settings, and choose components to be installed
     1: user can choose components to be installed
     2: user cannot make any changes to the install parameters
     3: silent install (no interface is displayed and user cannot make changes)
-c {yes|no}
install KeyCheckout
     yes: KeyCheckout will be installed unless user chooses not to
     no: user cannot install KeyCheckout
-m {yes|no}
create start menu shortcuts for KeyVerify and KeyCheckout (if installed)
     yes: start menu shortcuts will be created
     no: start menu shortcuts will not be created
-r {yes|no} 1
run KeyAccess after install
     yes: KeyAccess will be launched after install
     no: KeyAccess will not be launched by installer
-k {yes|no}
exit from running client programs
     yes: KeyAccess client programs will exit
     no: KeyAccess client programs will not exit
-l {value}
use given value in the Department field of the computer details
-x {yes|no}
add/remove visibility
     yes: display in Add/Remove Programs
     no: do not display in Add/Remove Programs
-b {yes|no}
reboot after install
     yes: always prompt for a reboot after install
     no: never reboot after install
-h <keyserver_host>
KeyServer host name or IP address (default DNS name: keyserver)
-o {yes|no}
overwrite existing host address/name
     yes: overwrite existing host name with name given by -h option
     no: use existing host name if present
     This is only useful if you moved the KeyServer to a new address and need to re-deploy all clients to point to the new host.
-v name[=value] 2
set a specific named INI or registry preference to a custom initial value
     name is the preference name (e.g., 'minimize')
     value is the preference value ('1' if omitted)
     Normally used to call PROP_ Deployment Options with no specific equivalent listed in this document, such as AUDITNOW, LOCKED, SITE, TRUST, and SECURITY. Can also be used to set custom properties like site, assetOwner, assetLocation, etc.

1 -  "-r yes" will start KeyAccess after installation. In order to do so, it must kill any currently running KeyAccess. If you do not use keyed software, this has no unexpected consequences — if the client has a connection to KeyServer, it will close the connection, and the newly installed KeyAccess will open a new connection. However, if a keyed program is running when this happens, the new session will not ask for the key again. Therefore, KeyAccess will ask the user to quit the keyed program about 15 minutes after the installation. For this reason, you should only use the default "-r yes" if your clients do not yet have KeyAccess software installed, or if you do not use any keyed programs.

2 - Starting with KeyAccess 7.3.0.9, we have disabled some code that could find serial numbers for some products, but which could also cause performance issues such as delays during login. To re-enable this code, use k2clientconfig -v noireg=0.

Less Common Options (defaults underlined):

-t {yes|no}
install tools (KeyVerify) - Highly recommended this be installed for troubleshooting
     yes: install tools (option if UI shown)
     no: do not install tools (option hidden in UI)
-j {yes|no}
install control panel - Highly recommended this be installed for troubleshooting
     yes: control panel will be installed
     no: control panel will not be installed
-z {user|comp}
source of value used as login name
     user: KeyAccess will use user name as login name
     comp: KeyAccess will use computer name as login name

Example

By default, the installer will prompt for the KeyServer address during installation so if you are using remote deployment method, such as GPOs, you will probably want to use silent mode with the address preconfigured. To do so, you would configure the msi something like:

k2clientconfig -s 3 -h keyserver_host ksp-client-i386.exe

where keyserver_host is the DNS name (or the IP address) of the computer hosting the KeyServer process.

The example steps below illustrate the use of k2clientconfig to create a "silent" MSI install package that can be used as a Group Policy Object or with a logon script to transparently deploy the KeyAccess client with default settings:

Now when you launch the customized ksp-client-i386.exe on a client computer, it will automatically use the pre-configured KeyServer host address. Unlike using command line options or exe naming, these options are embedded deeply in the installer file itself. Further customization options for the client installers (or for the extracted MSI package) are described in the built in command line help (type k2clientconfig.exe) and also in the documentation for k2clientconfig.

In addition to pre-configuring various options, the k2clientconfig.exe utility can also extract the stand-alone MSI install package, KSClient.msi from the ksp-client-i386.exe installer:

k2clientconfig -e ksp-client-i386.exe

Note that it is ok to change the name of a customized exe installer, but if you extract the MSI, you should NEVER change the name - it should ALWAYS be “KSClient.msi”.

This stand-alone MSI install package can be used as a "Group Policy Object" to automate client deployment. Microsoft's documentation at the following link may be helpful:

https://support.microsoft.com/kb/816102

One potential problem with using the .msi instead of the .exe is that you will not be able to install a minor upgrade over an existing installation using the .msi (e.g. 7.5.0.1 followed by 7.5.0.2). Instead of simply double-clicking the msi, or running msiexec with just the /i option, you should use the command line:

msiexec /i KSClient.msi REINSTALL=ALL REINSTALLMODE=vamus

Deprecated

These are noted for legacy purposes only, DO NOT use these options.

-n {yes|no}
install as a service
     yes: KeyAccess will be installed as a service
     no: KeyAccess will be installed as a startup program
Not recommended. Less reliable, no ability to track startup/shutdown. Would require -w -g or -y or it would never run.
-w {yes|no|win9x}
add KeyAccess to Startup folder
     yes: KeyAccess will be added to Startup folder
     no: KeyAccess will not be added to Startup folder
     win9x: KeyAccess will be added to Startup folder on Win9x
-y {yes|no|name:pass}
create scheduled task for server audits
     yes: create scheduled task (prompt at install time for the name and password)
     no: do not create scheduled task
     name:pass: create task using supplied name and password
-g {yes|no}
add logon Run command to registry
     yes: KeyAccess will be added to Run command
     no: KeyAccess will not be added to Run command
-u {ini|hkcu|hklm}
location of preference settings (seriously, do not use this)
     ini: settings are stored in KEYACC.INI
     hkcu: settings are stored in HKEY_CURRENT_USER
     hklm: settings are stored in HKEY_LOCAL_MACHINE
-i {user|machine|auto}
install type (unsupported Microsoft territory)
     user: per-user install
     machine: per-machine install
     auto: automatically determine install type
-p {udp|ipx}
udp protocol is used by default for client/keyserver connections. (ipx support for legacy sites only)