We've got a lot of requests after release of V3.00 to provide easier control of installation of the NexusDB Server as service. We've for V3.01 added a few new command line parameters and switches that will make installation really easy. The different parameters can be used independently from each other and in separate calls to nxserver.exe. Unless /START is specified, the program will close after the actions are executed. This allows the nxserver.exe be used from batch file or installer to set up the necessary environment.
We've also added some new logic to the server, that allows loading of default settings when there's no configuration file in place (for example on first start). If the server can't find the configuration, it checks for a nxserver.init file in the binary folder (where nxserver.exe is located). If there is such a file it loads the settings from this file (it is in fact a renamed work settings file!), if not it starts all engines and initializes them with the defaults (just like it was the case before V3.01). We've also added a /RESET startup parameter (see below) that can be used to force loading from the .init file in case something goes wrong.
The full list of parameters is now
Parameter | Explanation |
/HELP, /? | shows parameter help |
/INTERACTIVE | start the server in interactive. Highly discouraged and deprecated |
/INSTALL | installs the service |
/LOCALSYSTEMACCOUNT | When used in combination with /INSTALL then the server will be installed as LOCAL SYSTEM account. Please aware of the security/access implications of running a server with scripting capabilities as SYSTEM user. |
/UNINSTALL | uninstalls the service |
/START | start service |
/STOP | stop service |
/NOSTART | do not ask for starting service |
/SILENT | no dialogs |
/SERVICENAME:name | name of the service |
/DISPLAYNAME:name | display name of the service |
/DESCRIPTION:description | NEW in 3.11! description of the service. |
/USERNAME:domain\user | user account in domain\username form for the service. If domain is not specified a '.' for local machine is assumed. |
/PASSWORD:pwd | password for the service account |
/LOGFILE:filename | name of an optional logfile |
/DEBUG | goes into a 15 second waiting loop for a debugger to attach to service |
/ALLOWSYSTEM | NEW in 3.01! allow the service to run as system account. Needs to be specified on installation of the service. |
/ADDUSER | NEW in 3.01! adds a new windows user. Username and Password need to be specified using the /Username and /Password parameters. If the user already exists and the password is incorrect, an error is raised, if the password matches the operation will be assumed as successful. Available on local machine only! |
/REMOVEUSER | NEW in 3.01! removes windows user. Username needs to be specified using the /Username parameter. A user can NOT be restored. Available on local machine only! |
/ADDGROUP:group | NEW in 3.01! adds a windows user to a windows user group. Username needs to be specified using the /Username parameter. Available on local machine only! |
/REMOVEGROUP:group | NEW in 3.01! removes a windows user from a windows user group. Username needs to be specified using the /Username parameter. Available on local machine only! |
/SETPRIVILEGES:privileges | NEW in 3.01! sets privileges for a windows user. Username needs to be specified using the /Username parameter. Privileges are sepcified as a comma delimited list. For a list of accepted privileges look at the table below. Available on local machine only! |
/REMOVEPRIVILEGES | NEW in 3.01! Removes privileges for a windows user. Username needs to be specified using the /Username parameter. Privileges are sepcified as a comma delimited list. For a list of accepted privileges look at the table below. Available on local machine only! |
/SETFULLACCESS:paths | NEW in 3.01! Adds full access rights for a number of files/folders for a windows user. Username needs to be specified using the /Username parameter. Paths is a comma delimited list of file/folder names. If a path is a folder all subfolders and files inherit the full access. Make sure to put the list of paths between "" if you have white spaces in a path! Available on local machine only! A NexusDB Server service automatically grants itself full access rights to the configuration and system folder on installation of the service. |
/RESET | NEW in 3.01!Forces the server to reset it's configuration from the nxserver.init file located in the same folder as the nxserver.exe executable. The nxserver.init file is the same format as the normal nxdbworksettings file and is also loaded when no work settings file is found (for example on first start). If no nxserver.init file is available, /RESET activates all modules of the server and sets its settings to the default values. Note: only works in /INTERACTIVE mode. In this mode, /STOP can be used to shut server down after initialization (eg, to initialize settings before starting as a service). Note: "nxServer" is a placeholder for the actual name of the executable. |
/WRITECONFIG:pathandfilename | Instructs the server to write it's configuration to the named file. The format is the same as the nxdbworksettings file. Note: only works in /INTERACTIVE mode. In this mode, /STOP can be used to shut server down after writing the file to disk. |
/SHUTDOWNTRAYPROCESS | Used to close down any Tray Icon instances, eg before installing a new executable. Note: exclusive parameter. No other commands are processed when this command is used. |
/NOICON | no tray icon and user interface |
Available Privileges (Note that the privileges are case sensitive. )
Privilege | Explanation |
SeNetworkLogonRight | Access this computer from the network |
SeInteractiveLogonRight | Log on locally |
SeBatchLogonRight | Log on as a batch job |
SeServiceLogonRight | Log on as a service |
SeDenyNetworkLogonRight | Deny access this computer from the network |
SeDenyInteractiveLogonRight | Deny log on locally |
SeDenyBatchLogonRight | Deny log on as a batch job |
SeDenyServiceLogonRight | Deny log on as a service |
SeCreateGlobalPrivilege | Create global objects |
SeDebugPrivilege | Debug programs |
SeDenyRemoteInteractiveLogonRight | Deny log on through Terminal Services |
SeEnableDelegationPrivilege | Enable computer and user accounts to be trusted for delegation |
SeImpersonatePrivilege | Impersonate a client after authentication |
SeManageVolumePrivilege | Perform volume maintenance tasks |
SeRemoteInteractiveLogonRight | Allow log on through Terminal Services |
SeSyncAgentPrivilege | Synchronize directory service data |
SeUndockPrivilege | Remove computer from docking station |
Examples
Install and start NexusDB Server service using a new user account with databases located in c:\databases:
nxserver.exe /ADDUSER /USERNAME:testuser /PASSWORD:testpass /INSTALL /SETPRIVILEGES:SeServiceLogonRight /SETFULLACCESS:"c:\databases" /START /SILENT
Add an existing user to the Users group:
nxserver.exe /USERNAME:testuser /ADDGROUP:Users
Give a user full access to some folders:
nxserver.exe /USERNAME:testuser /SETFULLACCESS:"c:\databases,f:\dbs for nexus\;c:\NxTemp"