📄 net-snmp.nsi
字号:
echo service, see 'How to Register the Net-SNMP Agent and Trap Daemon as $\r$\n \ echo Windows services' in README.win32. $\r$\n \ echo . $\r$\n \ pause" ClearErrors FileOpen $1 "unregisteragent.bat" "w" IfErrors cleanup FileWrite $1 "@echo off $\r$\n \ $\"$INSTDIR\bin\snmpd.exe$\" -unregister" cleanup: FileClose $0 FileClose $1FunctionEnd; The trap receiver has not been tested; completely as a Windows service.Function CreateTrapdBats SetOutPath "$INSTDIR\" ClearErrors ; Slash it Push $INSTDIR Push "\" Push "/" Call StrRep Pop $R0 FileOpen $0 "registertrapd.bat" "w" IfErrors cleanup IfErrors cleanup FileWrite $0 "@echo off $\r$\n \ set cmdline=$\"$INSTDIR\bin\snmptrapd.exe$\" -register $\r$\n\ set additionaloptions= -Lf $\"$R0/log/snmptrapd.log$\"$\r$\n" FileWrite $0 "echo Registering snmptrapd as a service using the following additional options: $\r$\n \ echo . $\r$\n \ echo %additionaloptions% $\r$\n \ $\r$\n" FileWrite $0 "echo . $\r$\n \ %cmdline% %additionaloptions% $\r$\n \ echo . $\r$\n \ echo For information on running snmpd.exe and snmptrapd.exe as a Windows $\r$\n \ echo service, see 'How to Register the Net-SNMP Agent and Trap Daemon as $\r$\n \ echo Windows services' in README.win32. $\r$\n \ echo . $\r$\n \ pause" ClearErrors FileOpen $1 "unregistertrapd.bat" "w" IfErrors cleanup FileWrite $1 "@echo off $\r$\n \ $\"$INSTDIR\bin\snmptrapd.exe$\" -unregister" cleanup: FileClose $0 FileClose $1FunctionEndFunction CreateSnmpconfBat SetOutPath "$INSTDIR\bin\" ClearErrors FileOpen $0 "snmpconf.bat" "r" GetTempFileName $R0 FileOpen $1 $R0 "w" snmpconfloop: FileRead $0 $2 IfErrors done StrCmp $2 "set MYPERLPROGRAM=c:\usr\bin\snmpconf$\n" 0 +3 FileWrite $1 "set MYPERLPROGRAM=$INSTDIR\bin\snmpconf$\n" Goto snmpconfloop StrCmp $2 "set MYPERLPROGRAM=c:\usr\bin\snmpconf$\r$\n" 0 +3 FileWrite $1 "set MYPERLPROGRAM=$INSTDIR\bin\snmpconf$\r$\n" Goto snmpconfloop FileWrite $1 $2 Goto snmpconfloop done: FileClose $0 FileClose $1 Delete "snmpconf.bat" CopyFiles /SILENT $R0 "snmpconf.bat" Delete $R0FunctionEndFunction CreateMib2cBat SetOutPath "$INSTDIR\bin\" ClearErrors FileOpen $0 "mib2c.bat" "r" GetTempFileName $R0 FileOpen $1 $R0 "w" mib2cloop: FileRead $0 $2 IfErrors done StrCmp $2 "set MYPERLPROGRAM=c:\usr\bin\mib2c$\n" 0 +3 FileWrite $1 "set MYPERLPROGRAM=$INSTDIR\bin\mib2c$\n" Goto mib2cloop StrCmp $2 "set MYPERLPROGRAM=c:\usr\bin\mib2c$\r$\n" 0 +3 FileWrite $1 "set MYPERLPROGRAM=$INSTDIR\bin\mib2c$\r$\n" Goto mib2cloop FileWrite $1 $2 Goto mib2cloop done: FileClose $0 FileClose $1 Delete "mib2c.bat" CopyFiles /SILENT $R0 "mib2c.bat" Delete $R0FunctionEndFunction CreatTraptoemailBat SetOutPath "$INSTDIR\bin\" ClearErrors FileOpen $0 "traptoemail.bat" "r" GetTempFileName $R0 FileOpen $1 $R0 "w" traptoemailloop: FileRead $0 $2 IfErrors done StrCmp $2 "set MYPERLPROGRAM=c:\usr\bin\traptoemail$\n" 0 +3 FileWrite $1 "set MYPERLPROGRAM=$INSTDIR\bin\traptoemail$\n" Goto traptoemailloop StrCmp $2 "set MYPERLPROGRAM=c:\usr\bin\traptoemail$\r$\n" 0 +3 FileWrite $1 "set MYPERLPROGRAM=$INSTDIR\bin\traptoemail$\r$\n" Goto traptoemailloop FileWrite $1 $2 Goto traptoemailloop done: FileClose $0 FileClose $1 Delete "traptoemail.bat" CopyFiles /SILENT $R0 "traptoemail.bat" Delete $R0FunctionEndFunction StrRep Exch $R4 ; $R4 = Replacement String Exch Exch $R3 ; $R3 = String to replace (needle) Exch 2 Exch $R1 ; $R1 = String to do replacement in (haystack) Push $R2 ; Replaced haystack Push $R5 ; Len (needle) Push $R6 ; len (haystack) Push $R7 ; Scratch reg StrCpy $R2 "" StrLen $R5 $R3 StrLen $R6 $R1loop: StrCpy $R7 $R1 $R5 StrCmp $R7 $R3 found StrCpy $R7 $R1 1 ; - optimization can be removed if U know len needle=1 StrCpy $R2 "$R2$R7" StrCpy $R1 $R1 $R6 1 StrCmp $R1 "" done loopfound: StrCpy $R2 "$R2$R4" StrCpy $R1 $R1 $R6 $R5 StrCmp $R1 "" done loopdone: StrCpy $R3 $R2 Pop $R7 Pop $R6 Pop $R5 Pop $R2 Pop $R1 Pop $R4 Exch $R3FunctionEndFunction un.onUninstSuccess HideWindow MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) was successfully removed from your computer."FunctionEndFunction un.onInit MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Are you sure you want to completely remove $(^Name) and all of its components?" IDYES +2 AbortFunctionEndSection Uninstall ReadRegStr $ICONS_GROUP ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "${PRODUCT_STARTMENU_REGVAL}" ReadRegStr $1 "HKLM" "SYSTEM\CurrentControlSet\Services\Net-SNMP Agent" "DisplayName" IfErrors SkipAgentUninstall ExecWait "$\"$INSTDIR\bin\snmpd.exe$\" -unregister -quiet 2>nul$\r$\n" SkipAgentUninstall: ReadRegStr $1 "HKLM" "SYSTEM\CurrentControlSet\Services\Net-SNMP Trap Handler" "DisplayName" IfErrors SkipTrapDUninstall ExecWait "$\"$INSTDIR\bin\snmptrapd.exe$\" -unregister -quiet 2>nul$\r$\n" SkipTrapDUninstall: Delete "$INSTDIR\uninst.exe" Delete "$INSTDIR\README.txt" Delete "$INSTDIR\registeragent.bat" Delete "$INSTDIR\unregisteragent.bat" Delete "$INSTDIR\registertrapd.bat" Delete "$INSTDIR\unregistertrapd.bat" Delete "$INSTDIR\perl\Net-SNMP.ppd" Delete "$INSTDIR\perl\x86\Net-SNMP.tar.gz" Delete "$INSTDIR\include\net-snmp\net-snmp-config.h" Delete "$INSTDIR\include\net-snmp\agent\agent_module_config.h" Delete "$INSTDIR\include\net-snmp\agent\mib_module_config.h" Delete "$INSTDIR\docs\COPYING" Delete "$INSTDIR\docs\Net-SNMP.chm" Delete "$INSTDIR\bin\net-snmp-perl-test.pl" Delete "$INSTDIR\bin\snmptrapd.exe" Delete "$INSTDIR\bin\snmpd.exe" Delete "$INSTDIR\bin\snmpwalk.exe" Delete "$INSTDIR\bin\snmpbulkget.exe" Delete "$INSTDIR\bin\snmpbulkwalk.exe" Delete "$INSTDIR\bin\snmpconf.pl" Delete "$INSTDIR\bin\snmpdelta.exe" Delete "$INSTDIR\bin\snmpdf.exe" Delete "$INSTDIR\bin\snmpget.exe" Delete "$INSTDIR\bin\snmpgetnext.exe" Delete "$INSTDIR\bin\snmpnetstat.exe" Delete "$INSTDIR\bin\snmpset.exe" Delete "$INSTDIR\bin\snmpstatus.exe" Delete "$INSTDIR\bin\snmptable.exe" Delete "$INSTDIR\bin\snmptest.exe" Delete "$INSTDIR\bin\snmptranslate.exe" Delete "$INSTDIR\bin\snmptrap.exe" Delete "$INSTDIR\bin\snmpusm.exe" Delete "$INSTDIR\bin\snmpvacm.exe" Delete "$INSTDIR\bin\encode_keychange.exe" Delete "$INSTDIR\bin\netsnmp.dll" Delete "$INSTDIR\bin\mib2c" Delete "$INSTDIR\bin\mib2c.bat" Delete "$INSTDIR\bin\snmpconf" Delete "$INSTDIR\bin\snmpconf.bat" Delete "$INSTDIR\bin\traptoemail" Delete "$INSTDIR\bin\traptoemail.bat" Delete "$INSTDIR\share\snmp\snmpconf-data\snmp-data\authopts" Delete "$INSTDIR\share\snmp\snmpconf-data\snmp-data\debugging" Delete "$INSTDIR\share\snmp\snmpconf-data\snmp-data\mibs" Delete "$INSTDIR\share\snmp\snmpconf-data\snmp-data\output" Delete "$INSTDIR\share\snmp\snmpconf-data\snmp-data\snmpconf-config" Delete "$INSTDIR\share\snmp\snmpconf-data\snmpd-data\acl" Delete "$INSTDIR\share\snmp\snmpconf-data\snmpd-data\basic_setup" Delete "$INSTDIR\share\snmp\snmpconf-data\snmpd-data\extending" Delete "$INSTDIR\share\snmp\snmpconf-data\snmpd-data\monitor" Delete "$INSTDIR\share\snmp\snmpconf-data\snmpd-data\operation" Delete "$INSTDIR\share\snmp\snmpconf-data\snmpd-data\snmpconf-config" Delete "$INSTDIR\share\snmp\snmpconf-data\snmpd-data\system" Delete "$INSTDIR\share\snmp\snmpconf-data\snmpd-data\trapsinks" Delete "$INSTDIR\share\snmp\snmpconf-data\snmptrapd-data\formatting" Delete "$INSTDIR\share\snmp\snmpconf-data\snmptrapd-data\snmpconf-config" Delete "$INSTDIR\share\snmp\snmpconf-data\snmptrapd-data\traphandle" Delete "$INSTDIR\share\snmp\snmpconf-data\snmptrapd-data\authentication" Delete "$INSTDIR\share\snmp\snmpconf-data\snmptrapd-data\logging" Delete "$INSTDIR\share\snmp\snmpconf-data\snmptrapd-data\runtime" Delete "$INSTDIR\share\snmp\mibs\AGENTX-MIB.txt" Delete "$INSTDIR\share\snmp\mibs\DISMAN-EVENT-MIB.txt" Delete "$INSTDIR\share\snmp\mibs\DISMAN-EXPRESSION-MIB.txt" Delete "$INSTDIR\share\snmp\mibs\DISMAN-NSLOOKUP-MIB.txt" Delete "$INSTDIR\share\snmp\mibs\DISMAN-PING-MIB.txt" Delete "$INSTDIR\share\snmp\mibs\DISMAN-SCHEDULE-MIB.txt" Delete "$INSTDIR\share\snmp\mibs\DISMAN-SCRIPT-MIB.txt" Delete "$INSTDIR\share\snmp\mibs\DISMAN-TRACEROUTE-MIB.txt" Delete "$INSTDIR\share\snmp\mibs\EtherLike-MIB.txt" Delete "$INSTDIR\share\snmp\mibs\HCNUM-TC.txt" Delete "$INSTDIR\share\snmp\mibs\HOST-RESOURCES-MIB.txt" Delete "$INSTDIR\share\snmp\mibs\HOST-RESOURCES-TYPES.txt" Delete "$INSTDIR\share\snmp\mibs\IANA-ADDRESS-FAMILY-NUMBERS-MIB.txt" Delete "$INSTDIR\share\snmp\mibs\IANAifType-MIB.txt" Delete "$INSTDIR\share\snmp\mibs\IANA-LANGUAGE-MIB.txt" Delete "$INSTDIR\share\snmp\mibs\IF-INVERTED-STACK-MIB.txt" Delete "$INSTDIR\share\snmp\mibs\IF-MIB.txt" Delete "$INSTDIR\share\snmp\mibs\INET-ADDRESS-MIB.txt" Delete "$INSTDIR\share\snmp\mibs\IP-FORWARD-MIB.txt" Delete "$INSTDIR\share\snmp\mibs\IP-MIB.txt" Delete "$INSTDIR\share\snmp\mibs\IPV6-ICMP-MIB.txt" Delete "$INSTDIR\share\snmp\mibs\IPV6-MIB.txt" Delete "$INSTDIR\share\snmp\mibs\IPV6-TC.txt" Delete "$INSTDIR\share\snmp\mibs\IPV6-TCP-MIB.txt" Delete "$INSTDIR\share\snmp\mibs\IPV6-UDP-MIB.txt" Delete "$INSTDIR\share\snmp\mibs\LM-SENSORS-MIB.txt" Delete "$INSTDIR\share\snmp\mibs\MTA-MIB.txt" Delete "$INSTDIR\share\snmp\mibs\NET-SNMP-AGENT-MIB.txt" Delete "$INSTDIR\share\snmp\mibs\NET-SNMP-EXAMPLES-MIB.txt" Delete "$INSTDIR\share\snmp\mibs\NET-SNMP-EXTEND-MIB.txt" Delete "$INSTDIR\share\snmp\mibs\NET-SNMP-MIB.txt" Delete "$INSTDIR\share\snmp\mibs\NET-SNMP-MONITOR-MIB.txt" Delete "$INSTDIR\share\snmp\mibs\NET-SNMP-SYSTEM-MIB.txt" Delete "$INSTDIR\share\snmp\mibs\NET-SNMP-TC.txt" Delete "$INSTDIR\share\snmp\mibs\NETWORK-SERVICES-MIB.txt" Delete "$INSTDIR\share\snmp\mibs\NOTIFICATION-LOG-MIB.txt" Delete "$INSTDIR\share\snmp\mibs\RFC1155-SMI.txt" Delete "$INSTDIR\share\snmp\mibs\RFC1213-MIB.txt" Delete "$INSTDIR\share\snmp\mibs\RFC-1215.txt" Delete "$INSTDIR\share\snmp\mibs\RMON-MIB.txt" Delete "$INSTDIR\share\snmp\mibs\SMUX-MIB.txt" Delete "$INSTDIR\share\snmp\mibs\SNMP-COMMUNITY-MIB.txt" Delete "$INSTDIR\share\snmp\mibs\SNMP-FRAMEWORK-MIB.txt" Delete "$INSTDIR\share\snmp\mibs\SNMP-MPD-MIB.txt" Delete "$INSTDIR\share\snmp\mibs\SNMP-NOTIFICATION-MIB.txt" Delete "$INSTDIR\share\snmp\mibs\SNMP-PROXY-MIB.txt" Delete "$INSTDIR\share\snmp\mibs\SNMP-TARGET-MIB.txt" Delete "$INSTDIR\share\snmp\mibs\SNMP-USER-BASED-SM-MIB.txt" Delete "$INSTDIR\share\snmp\mibs\SNMP-USM-AES-MIB.txt" Delete "$INSTDIR\share\snmp\mibs\SNMP-USM-DH-OBJECTS-MIB.txt" Delete "$INSTDIR\share\snmp\mibs\SNMPv2-CONF.txt" Delete "$INSTDIR\share\snmp\mibs\SNMPv2-MIB.txt" Delete "$INSTDIR\share\snmp\mibs\SNMPv2-SMI.txt" Delete "$INSTDIR\share\snmp\mibs\SNMPv2-TC.txt" Delete "$INSTDIR\share\snmp\mibs\SNMPv2-TM.txt" Delete "$INSTDIR\share\snmp\mibs\SNMP-VIEW-BASED-ACM-MIB.txt" Delete "$INSTDIR\share\snmp\mibs\TCP-MIB.txt" Delete "$INSTDIR\share\snmp\mibs\TRANSPORT-ADDRESS-MIB.txt" Delete "$INSTDIR\share\snmp\mibs\TUNNEL-MIB.txt" Delete "$INSTDIR\share\snmp\mibs\UCD-DEMO-MIB.txt" Delete "$INSTDIR\share\snmp\mibs\UCD-DISKIO-MIB.txt" Delete "$INSTDIR\share\snmp\mibs\UCD-DLMOD-MIB.txt" Delete "$INSTDIR\share\snmp\mibs\UCD-IPFILTER-MIB.txt" Delete "$INSTDIR\share\snmp\mibs\UCD-IPFWACC-MIB.txt" Delete "$INSTDIR\share\snmp\mibs\UCD-SNMP-MIB.txt" Delete "$INSTDIR\share\snmp\mibs\UCD-SNMP-MIB-OLD.txt" Delete "$INSTDIR\share\snmp\mibs\UDP-MIB.txt" Delete "$INSTDIR\share\snmp\mibs\.index" SetOutPath "$INSTDIR\share\snmp" Delete "$INSTDIR\share\snmp\mib2c.access_functions.conf" Delete "$INSTDIR\share\snmp\mib2c.array-user.conf" Delete "$INSTDIR\share\snmp\mib2c.check_values.conf" Delete "$INSTDIR\share\snmp\mib2c.check_values_local.conf" Delete "$INSTDIR\share\snmp\mib2c.column_defines.conf" Delete "$INSTDIR\share\snmp\mib2c.column_enums.conf" Delete "$INSTDIR\share\snmp\mib2c.column_storage.conf" Delete "$INSTDIR\share\snmp\mib2c.conf" Delete "$INSTDIR\share\snmp\mib2c.container.conf" Delete "$INSTDIR\share\snmp\mib2c.create-dataset.conf" Delete "$INSTDIR\share\snmp\mib2c.genhtml.conf" Delete "$INSTDIR\share\snmp\mib2c.int_watch.conf" Delete "$INSTDIR\share\snmp\mib2c.iterate.conf" Delete "$INSTDIR\share\snmp\mib2c.iterate_access.conf" Delete "$INSTDIR\share\snmp\mib2c.mfd.conf" Delete "$INSTDIR\share\snmp\mib2c.notify.conf" Delete "$INSTDIR\share\snmp\mib2c.old-api.conf" Delete "$INSTDIR\share\snmp\mib2c.scalar.conf" Delete "$INSTDIR\share\snmp\mib2c.table_data.conf" Delete "$SMPROGRAMS\$ICONS_GROUP\Net-SNMP Help.lnk" Delete "$SMPROGRAMS\$ICONS_GROUP\Uninstall.lnk" Delete "$SMPROGRAMS\$ICONS_GROUP\README.lnk" Delete "$SMPROGRAMS\$ICONS_GROUP\Service\Register Agent Service.lnk" Delete "$SMPROGRAMS\$ICONS_GROUP\Service\Unregister Agent Service.lnk" Delete "$SMPROGRAMS\$ICONS_GROUP\Service\Register Trap Service.lnk" Delete "$SMPROGRAMS\$ICONS_GROUP\Service\Unregister Trap Service.lnk" Delete "$INSTDIR\snmp\persist\snmpd.conf" Delete "$INSTDIR\snmp\persist\snmptrapd.conf" RMDir "$SMPROGRAMS\$ICONS_GROUP\Service" RMDir "$SMPROGRAMS\$ICONS_GROUP" RMDir "$INSTDIR\perl\x86" RMDir "$INSTDIR\perl" RMDir "$INSTDIR\lib" RMDir "$INSTDIR\include\ucd-snmp" RMDir "$INSTDIR\include" RMDir "$INSTDIR\docs" RMDir "$INSTDIR\bin" RMDir "$INSTDIR\share\snmp\snmpconf-data\snmptrapd-data" RMDir "$INSTDIR\share\snmp\snmpconf-data\snmpd-data" RMDir "$INSTDIR\share\snmp\snmpconf-data\snmp-data" RMDir "$INSTDIR\share\snmp\snmpconf-data" RMDir "$INSTDIR\temp" RMDir "$INSTDIR\share\snmp\mibs" RMDir "$INSTDIR\snmp\persist" RMDir "$INSTDIR\snmp" RMDir "$INSTDIR\share\snmp" RMDir "$INSTDIR\share" RMDir "$INSTDIR\etc\snmp" RMDir "$INSTDIR\etc" RMDir "$INSTDIR\include\net-snmp\agent" RMDir "$INSTDIR\include\net-snmp" RMDir "$INSTDIR\include" RMDir "$INSTDIR" ; Delete the environment variables ;Push "SNMPCONFPATH" ;Call un.DeleteEnvStr ;Push "SNMPSHAREPATH" ;Call un.DeleteEnvStr Push "$INSTDIR\bin" Call un.RemoveFromPath DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}" SetAutoClose trueSectionEnd
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -