Difference between revisions of "NSClient++"
(URL fix) |
(Updated for 0.5.0.62 (generally works), and added a few minor format fixes) |
||
Line 1: | Line 1: | ||
NSClient++ can be downloaded from [http://nsclient.org/download/ http://nsclient.org/download/] | NSClient++ can be downloaded from [http://nsclient.org/download/ http://nsclient.org/download/] | ||
− | == NSClient++ 0. | + | == NSClient++ 0.5.0.62, single package for 32- or 64-bit with configuration control == |
This package installs the 32-bit or 64-bit version of NSClient++, as appropriate, and opens the necessary holes in the firewall. | This package installs the 32-bit or 64-bit version of NSClient++, as appropriate, and opens the necessary holes in the firewall. | ||
Line 16: | Line 16: | ||
reboot="false"> | reboot="false"> | ||
− | <variable name="version" value="0. | + | <variable name="version" value="0.5.0.62" /> |
<variable name="configversion" value="1" /> | <variable name="configversion" value="1" /> | ||
Line 42: | Line 42: | ||
<!-- Example: Set your password--> | <!-- Example: Set your password--> | ||
<!-- | <!-- | ||
+ | WARNING. This comment will cause a syntax error if left in, due to double minus in the cmd attribute | ||
<install cmd=""%PROGRAMFILES%\NSClient++\nscp.exe" settings --path /settings/default --key password --set "your secret password"" /> | <install cmd=""%PROGRAMFILES%\NSClient++\nscp.exe" settings --path /settings/default --key password --set "your secret password"" /> | ||
--> | --> | ||
Line 57: | Line 58: | ||
<!-- Example: set alternate port --> | <!-- Example: set alternate port --> | ||
<!-- | <!-- | ||
+ | WARNING. This comment will cause a syntax error if left in, due to double minus in the cmd attribute | ||
<install cmd=""%PROGRAMFILES%\NSClient++\nscp.exe" settings --path /settings/NSClient/server --key port --set 1248" /> | <install cmd=""%PROGRAMFILES%\NSClient++\nscp.exe" settings --path /settings/NSClient/server --key port --set 1248" /> | ||
--> | --> | ||
Line 62: | Line 64: | ||
<!-- Example: set allowed remote host --> | <!-- Example: set allowed remote host --> | ||
<!-- | <!-- | ||
+ | WARNING. This comment will cause a syntax error if left in, due to double minus in the cmd attribute | ||
<install cmd=""%PROGRAMFILES%\NSClient++\nscp.exe" settings --path /settings/default --key "allowed hosts" --set 10.0.0.1" /> | <install cmd=""%PROGRAMFILES%\NSClient++\nscp.exe" settings --path /settings/default --key "allowed hosts" --set 10.0.0.1" /> | ||
--> | --> | ||
− | |||
− | |||
<!-- This works around a bug in NSClient++ and must appear after ALL other configuration commands! --> | <!-- This works around a bug in NSClient++ and must appear after ALL other configuration commands! --> | ||
Line 81: | Line 82: | ||
<exit code="any" /> | <exit code="any" /> | ||
</remove> | </remove> | ||
− | <!-- Product code verified with 0. | + | <!-- Product code verified with 0.5.0.62 x64, check |
− | HKLM\Microsoft\Windows\CurrentVersion\ | + | HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\ |
for correct GUID with future versions | for correct GUID with future versions | ||
--> | --> | ||
− | <remove cmd="MsiExec.exe /qn /x{ | + | <remove cmd="MsiExec.exe /qn /x{1B7FBEBA-96B5-4837-82C8-B3EED3BFC9D8}"> |
<exit code="any" /> | <exit code="any" /> | ||
</remove> | </remove> |
Latest revision as of 19:26, 4 July 2017
NSClient++ can be downloaded from http://nsclient.org/download/
NSClient++ 0.5.0.62, single package for 32- or 64-bit with configuration control
This package installs the 32-bit or 64-bit version of NSClient++, as appropriate, and opens the necessary holes in the firewall.
This package controls configuration with nscp.exe settings --path path to key -key key name --set value
instead of copying an INI file.
Note that when upgrading from 0.3.8, firewall rules need to be switched to point to the new nscp.exe
instead of nsclient++.exe
. This package handles that with netsh advfirewall
.
<package
id="nscp"
name="NSClient++"
revision="%version%-%configversion%"
reboot="false">
<variable name="version" value="0.5.0.62" />
<variable name="configversion" value="1" />
<!-- Set IP address or network of your monitoring system(s) -->
<variable name="myips" value="10.0.0.0/24" />
<check
type="uninstall"
condition="versiongreaterorequal"
value="%version%"
path="NSClient\+\+.*" />
<check
type="file"
condition="versiongreaterorequal"
path="%PROGRAMFILES%\NSClient++\nscp.exe"
value="%version%" />
<install cmd='msiexec /qn /norestart /i "%SOFTWARE%\NSclient\NSCP-%version%-x64.msi"' architecture="x64" />
<install cmd='msiexec /qn /norestart /i "%SOFTWARE%\NSclient\NSCP-%version%-Win32.msi"' architecture="x86" />
<install cmd="netsh advfirewall firewall set rule name="NSClient++ Monitoring Agent" profile="any" new remoteip="%myips%"" />
<!-- Handle upgrades from e.g. 0.3.8, where the binary was nsclient++.exe and the firewall rules will be wrong -->
<install cmd="netsh advfirewall firewall set rule name="NSClient++ Monitoring Agent" profile="any" new program="%PROGRAMFILES%\NSclient++\nscp.exe"" />
<!-- Example: Set your password-->
<!--
WARNING. This comment will cause a syntax error if left in, due to double minus in the cmd attribute
<install cmd=""%PROGRAMFILES%\NSClient++\nscp.exe" settings --path /settings/default --key password --set "your secret password"" />
-->
<!-- Put settings here -->
<install cmd=""%PROGRAMFILES%\NSClient++\nscp.exe" settings --path /modules --key CheckDisk --set 1" />
<install cmd=""%PROGRAMFILES%\NSClient++\nscp.exe" settings --path /modules --key CheckEventLog --set 1" />
<install cmd=""%PROGRAMFILES%\NSClient++\nscp.exe" settings --path /modules --key CheckExternalScripts --set 1" />
<install cmd=""%PROGRAMFILES%\NSClient++\nscp.exe" settings --path /modules --key CheckHelpers --set 1" />
<install cmd=""%PROGRAMFILES%\NSClient++\nscp.exe" settings --path /modules --key CheckNSCP --set 1" />
<install cmd=""%PROGRAMFILES%\NSClient++\nscp.exe" settings --path /modules --key CheckSystem --set 1" />
<install cmd=""%PROGRAMFILES%\NSClient++\nscp.exe" settings --path /modules --key CheckWMI --set 1" />
<install cmd=""%PROGRAMFILES%\NSClient++\nscp.exe" settings --path /modules --key NSClientServer --set 1" />
<!-- Example: set alternate port -->
<!--
WARNING. This comment will cause a syntax error if left in, due to double minus in the cmd attribute
<install cmd=""%PROGRAMFILES%\NSClient++\nscp.exe" settings --path /settings/NSClient/server --key port --set 1248" />
-->
<!-- Example: set allowed remote host -->
<!--
WARNING. This comment will cause a syntax error if left in, due to double minus in the cmd attribute
<install cmd=""%PROGRAMFILES%\NSClient++\nscp.exe" settings --path /settings/default --key "allowed hosts" --set 10.0.0.1" />
-->
<!-- This works around a bug in NSClient++ and must appear after ALL other configuration commands! -->
<install cmd='powershell -noprofile -command "(get-content \"%PROGRAMFILES%\NSClient++\\nsclient.ini") | %{$_ -replace \"^An alias is an internal command.*$\", \"\"} | set-content \"%PROGRAMFILES%\NSclient++\nsclient.ini\""' />
<install cmd="net stop nscp">
<exit code="any" />
</install>
<install cmd="net start nscp" />
<upgrade include="install" />
<remove cmd="net stop nscp">
<exit code="any" />
</remove>
<!-- Product code verified with 0.5.0.62 x64, check
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\
for correct GUID with future versions
-->
<remove cmd="MsiExec.exe /qn /x{1B7FBEBA-96B5-4837-82C8-B3EED3BFC9D8}">
<exit code="any" />
</remove>
<remove cmd='msiexec /qn /norestart /x "%SOFTWARE%\NSclient\NSCP-%version%-x64.msi"' architecture="x64" >
<exit code="any" />
</remove>
<remove cmd='msiexec /qn /norestart /x "%SOFTWARE%\NSclient\NSCP-%version%-Win32.msi"' architecture="x86" >
<exit code="any" />
</remove>
</package>
NSClient++ 0.4.1
One package for the 32bit-version, one for the 64bit.
I create an sample init-file, and copy it with each install/upgrade.
The remove-Tag is a bit crude, because i used the (maybe new) package for deinstalling, because i couldn't figure out, how to get the registry-key ...
<package
id="nsclient32"
name="NSClient++ 32bit"
revision="%version%"
priority="0"
reboot="false">
<variable name="version" value="0.4.1.102" />
<check type="logical" condition="or">
<check type="uninstall" condition="versiongreaterorequal" path="NSClient++ (Win32)" value="%version%"/>
<check type="file" condition="versiongreaterorequal" path="%ProgramFiles%\NSClient++\nscp.exe" value="%version%"/>
</check>
<!-- install new package -->
<install cmd='msiexec /quiet /norestart /i %SOFTWARE%\nsclientpp\NSCP-%version%-Win32.msi'/>
<!-- copy (new) Ini -->
<install cmd='xcopy %SOFTWARE%\nsclientpp\nsclient.ini "%ProgramFiles%\NSClient++\nsclient.ini" /q /y'/>
<!-- restart NSclient++ -->
<install cmd='net stop nscp'/>
<install cmd='net start nscp'/>
<upgrade include="install" />
<!-- remove -->
<remove cmd='net stop nscp'/>
<remove cmd='msiexec /quiet /norestart /x %SOFTWARE%\nsclientpp\NSCP-%version%-Win32.msi'/>
</package>
<package
id="nsclient64"
name="NSClient++ 64bit"
revision="%version%"
priority="0"
reboot="false">
<variable name="version" value="0.4.1.102" />
<check type="logical" condition="or">
<check type="uninstall" condition="versiongreaterorequal" path="NSClient++ (x64)" value="%version%"/>
<check type="file" condition="versiongreaterorequal" path="%ProgramFiles%\NSClient++\nscp.exe" value="%version%"/>
</check>
<!-- install new package -->
<install cmd='msiexec /quiet /norestart /i %SOFTWARE%\nsclientpp\NSCP-%version%-x64.msi'/>
<!-- copy (new) ini -->
<install cmd='xcopy %SOFTWARE%software\nsclientpp\nsclient.ini "%ProgramFiles%\NSClient++\nsclient.ini" /q /y'/>
<!-- restart NSclient++ -->
<install cmd='net stop nscp'/>
<install cmd='net start nscp'/>
<upgrade include="install" />
<!-- remove -->
<remove cmd='net stop nscp'/>
<remove cmd='msiexec /quiet /norestart /x %SOFTWARE%software\nsclientpp\NSCP-%version%-x64.msi'/>
</package>
NSClient++ Plugins
If you have own scripts for NSClient++, this package may be useful.
Because i haven't set a version number for the scripts, i use the date and write it to a file on the local computer. A batch-skript in the tools-directory compare xml-version with installed-version (see below), to call it i used a %SETTINGS%-Variable from WPKG, which link on the WPKG-Root (I should define a own Variable for that, i now ... maybe later :-)
<package
id="nsclientplugins"
name="NSClient++ Plugins"
revision="%version%"
priority="0"
reboot="false">
<variable name="version" value="2013-05-27" />
<variable name="versionfile" value="%ProgramFiles%\NSClient++\scripts\pluginsversion.txt" />
<check type="execute" path='%SETTINGS%tools\compareStringAndFile.bat "%version%" "%versionfile%"' condition="exitcodeequalto" value="0"/>
<!-- stop NSclient++ -->
<install cmd='net stop nscp'>
<exit code="0" />
<!-- If Nsclient++ already stopped, continue too. -->
<exit code="2" />
</install>
<!-- copy new skripts -->
<install cmd='xcopy %SOFTWARE%\nsclientpp\scripts\* "%ProgramFiles%\NSClient++\scripts\" /q /y'/>
<!-- set version -->
<install cmd='%ComSpec% /c echo %version%>"%versionfile%"'/>
<!-- to be sure: set executionpolicy of the powershell (If you don't have powershellskripts, you don't need this) -->
<install cmd='powershell Set-ExecutionPolicy remotesigned -Confirm:$false'/>
<!-- and start NSclient++ -->
<install cmd='net start nscp'/>
<upgrade include="install" />
</package>
</packages:packages>
And the compareStringAndFile.bat:
@echo off
REM compare parameter 1 (string) with content of parameter 2 (file)
set /p FILECONTENT=<%2
set FILECONTENT="%FILECONTENT%"
REM echo %FILECONTENT%
REM echo %1
if %1 == %FILECONTENT% exit /B 0
REM echo "Die Strings sind ungleich!"
exit /B 1