k2clientconfig (Win)

k2clientconfig.exe is a command line utility that lets you customize the Windows client installer (K2Client.exe or K2Client-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.

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

Some changes to an existing installation (e.g. including/excluding KeyCheckout) will require that first, the "Apps & features" (aka Features & Programs, aka Add / Remove Programs) control panel be used to uninstall the existing Sassafras K2 Client (KeyAccess). This will ensure that the new "clean" install or KeyAccess will follow the options specified using k2clientconfig.exe (as documented below) and that any subsequent use of the "Apps & features" control panel will work as expected.

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 [options] target_file
where target_file is the file path specifying a client installer (K2Client.exe or K2Client-x64.exe) or an extracted MSI file (KSClient.msi)

Command Line Options (defaults underlined):

display the msi settings from the specified installer file
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.
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
     maybe: KeyCheckout will not be installed unless user chooses to
-t {yes|no}
install tools (KeyVerify)
     yes: user can choose to install tools
     no: user cannot install tools
-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
-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
-j {yes|no}
install control panel
     yes: control panel will be installed
     no: control panel will not be installed
-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
-r {yes|no} 2
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
-n {yes|no}
install as a service
     yes: KeyAccess will be installed as a service
     no: KeyAccess will be installed as a startup program
-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
-i {user|machine|auto}
install type
     user: per-user install
     machine: per-machine install
     auto: automatically determine install type
-x {yes|no}
add/remove visibility
     yes: display in Add/Remove Programs
     no: do not display in Add/Remove Programs
-b {yes|no|auto}
reboot after install
     yes: always prompt for a reboot after install
     no: never reboot after install
     auto: reboot if installer deems it necessary
-u {ini|hkcu|hklm}
location of preference settings
     ini: settings are stored in KEYACC.INI
     hkcu: settings are stored in HKEY_CURRENT_USER
     hklm: settings are stored in HKEY_LOCAL_MACHINE
-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)
-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
-h <keyserver_host>
KeyServer host name or IP address (default DNS name: keyserver)
-p {udp|ipx}
udp protocol is used by default for client/keyserver connections. (ipx support for legacy sites only)
-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

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, 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.


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 K2Client.exe

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