Skip to content →

What’s new in NMTools v4.54b0

Well, here we are again! :D. This is a much long awaited release. Definitely, this product is becoming more and more mature with each iteration. I can now say this from the experience of running NMTools on big and complex Production Environments to solve real problems and handle considerably demanding situations.

There is a lot of hidden work that has been done during the last eight months. That is why I would like to start thanking all the people that has contributed to this release in any way: code, feedback, ideas, etc. This release wouldn't be as good as it is without you.

Having said that, let's go and see what's inside this version:

NMAgent new features and improvements

  • Support for SQL Server as well as MS Access back-ends.
  • NMAgent will default to Trusted Authentication when no identity is supplied on the profile settings.
  • SessionStore schema has been extended to allow DaX (Dependency Aware eXtensions) modules and enhance the user experience on multi-user environments.
  • Personal user SessionStores can be defined as part of the profile settings.
  • The OpenSLIM UserId can be defined as part of the Profile settings. This will reflect the user identity when persisting information on the OpenSLIM database.
  • Command Line: the use of SQL wild card (“%”) is now allowed when issuing a SessionId on the -session parameter.
  • Support for “views” when using query and export commands (-view parameter).
  • New filtering capabilities (-filter parameter): up to 10 different criteria.
  • Improved Session configuration. You only need to drop your modules into the “_enabled” folder inside your library for them to be used.
  • Improved behavior and experience of the -file parameter. Now it will search the file for you in different locations.
  • Improved experience of the -setup parameter. Now will skip all the profile settings if that's your choice.
  • Modules have been renamed to reflect the target platform: Windows, Unix, etc.
  • Modules data persistence: improved Multi-Value output handling.
  • Modules development: more functions available in the modules-helper.ps1 library.
  • Modules development: code hooks allow an improved code composability, reusability and performance.
  • Modules development: DaX (Dependency Aware eXtensions) modules. This type of modules allow an improved code composability, reusability and performance.
  • Modules execution: Run-time syntax help for PLEX and DynX modules.
  • Extensive bug fixing and refactoring.

Just to have a closer idea, here you have a set of screen shots that will show you how this version looks like:

[nggallery id=3]

Libraries and Modules

There have been a huge job also in this chapter. Just a quick comparison:

  • in v4.0b0: 8 Libraries with 67 unique Modules.
  • in v4.54b0:11 Libraries with 151 unique Modules.

You can always check it out by yourself with the following command:

PS C:\NMAgent> Get-ChildItem .\modules\* -recurse -include *.ps1 -exclude _* | ForEach-Object { $_.Name } | Select-Object -unique | Measure-Object

Similarly, you can try this to explore how many hooks play the game with your modules:

PS C:\NMAgent> Get-ChildItem .\modules\* -recurse -include *.ps1 -exclude _*,*_*,settings*,credentials* | ForEach-Object { $_.FullName } | Select-Object -unique

Or this, to discover which of your modules have specific settings

PS C:\NMAgent> Get-ChildItem .\modules\* -recurse -include settings.ps1 | ForEach-Object { $_.FullName } | Select-Object -unique

… or credentials:

PS C:\NMAgent> Get-ChildItem .\modules\* -recurse -include credentials.ps1 | ForEach-Object { $_.FullName } | Select-Object -unique

Current Libraries

  • audit – New! Useful when looking for the “unknown”. It's the beginning of a future “compliance” library.
  • cluster
  • deployment – Improved! The remote NMAgent Work Area, is now aware of the “User” the Agent is running under.
  • gridserver – Improved! Now you have your OS tuning scripts on a single library.
  • info – Improved! It's easier than ever to capture what's going on on your infrastructure.
  • monitoring
  • openslim – Improved! It suports new OpenSLIM Node Properties: HbaLinksInfo and NodeIsActive.
  • remoting – Improved! Vastly improved to deal with: Windows 2008, PowerShell Remoting, WS-Man and UAC.
  • storage – Improved! Usage statistics and FCInfo (HBA API) support.
  • virtualization – New! You will find here a practical usage of Hooks.
  • windows – New! Enjoy the remote configuration and information gathering capabilities of this new library ;-D.

Current Modules

  • FX_Windows_GetUnknownProcesses.ps1
  • FX_Windows_GetUnknownServices.ps1
  • FX_Windows_HasUnknownProcesses.ps1
  • FX_Windows_HasUnknownServices.ps1
  • FX_RunWinCmd_MSCluster_GetClusterGroups.ps1
  • FX_RunWinCmd_MSCluster_GetFailedClusterGroups.ps1
  • FX_RunWinCmd_SAN_HasFailedPaths.ps1
  • FX_RunWinCmd_SAN_HasFailedPaths_EMC.ps1
  • FX_RunWinCmd_SAN_HasFailedPaths_IBM.ps1
  • FX_RunWinCmd_SAN_HasMultiPath.ps1
  • FX_RunWinCmd_SAN_HasMultiPath_EMC.ps1
  • FX_RunWinCmd_SAN_HasMultiPath_IBM.ps1
  • DynX1_RunWinCmd_Microsoft_DotNetFwInstall.ps1
  • DynX1_RunWinCmd_Microsoft_IExpressInstall.ps1
  • DynX1_RunWinCmd_Microsoft_SfxCabInstall.ps1
  • DynX1_RunWinCmd_Windows_InnoSetupInstall.ps1
  • DynX1_RunWinCmd_Windows_InstallShieldInstall.ps1
  • DynX1_RunWinCmd_Windows_NSISInstall.ps1
  • DynX1_RunWinCmd_Microsoft_MsiInstall.ps1
  • DynX_Microsoft_DotNetFwInstall.ps1
  • DynX_Microsoft_IExpressInstall.ps1
  • DynX_Microsoft_SfxCabInstall.ps1
  • DynX_Windows_InnoSetupInstall.ps1
  • DynX_Windows_InstallShieldInstall.ps1
  • DynX_Windows_NSISInstall.ps1
  • DynX_Windows_PackageInstall.ps1
  • DynX_Windows_PackageUnInstall.ps1
  • FX_Windows_Reboot.ps1
  • DynX1_RunWinCmd_DSGridServer_WinAgentInstall.ps1
  • DynX_DSGridServer_WinAgentInstall.ps1
  • FX_DSGridServer_WinAgent_GetDirTotalLogSize.ps1
  • FX_DSGridServer_WinAgent_GetTotalLogSize.ps1
  • FX_RunWinCmd_TCPIP_GetMaxUserPorts.ps1
  • FX_RunWinCmd_TCPIP_RemoveMaxUserPorts.ps1
  • FX_Windows_Shutdown.ps1
  • PLEX_RunWinCmd_DSGridServer_AgentInstall.ps1
  • PLEX_RunWinCmd_DSGridServer_AgentUnInstall.ps1
  • PLEX_RunWinCmd_TCPIP_AddMaxUserPorts.ps1
  • FX_RunWinCmd_GetLocalAdmins.ps1
  • FX_RunWinCmd_PsInfo_GetBasicNodeInfo.ps1
  • FX_RunWinCmd_PsInfo_GetHotFixes.ps1
  • FX_RunWinCmd_PsInfo_GetInstalledSoftware.ps1
  • FX_RunWinCmd_PsInfo_GetNodeInfo.ps1
  • FX_Windows_GetProcesses.ps1
  • FX_Windows_GetServices.ps1
  • FX_Windows_HasProducts_MS_DotNetFw.ps1
  • FX_Windows_HasServices_BMC_CTM.ps1
  • PLEX_Windows_GetProcesses.ps1
  • PLEX_Windows_GetServices.ps1
  • PLEX_Windows_HasProcess.ps1
  • PLEX_Windows_HasProducts.ps1
  • PLEX_Windows_HasServices.ps1
  • FX_OpenSLIM_Windows_GetMonitoringIsOperational.ps1
  • FX_RunUnixCmd_GetMonitoring_HasAll.ps1
  • FX_RunUnixCmd_GetMonitoring_HasMeasureWare.ps1
  • FX_RunUnixCmd_GetMonitoring_HasOmnivision.ps1
  • FX_RunUnixCmd_GetMonitoring_HasOVO.ps1
  • FX_RunUnixCmd_GetMonitoring_HasPerformance.ps1
  • FX_RunUnixCmd_GetMonitoring_HasTivoli.ps1
  • FX_RunUnixCmd_GetMonitoring_HasWVA.ps1
  • FX_Windows_GetMonitoring_HasAll.ps1
  • FX_Windows_GetMonitoring_HasMeasureWare.ps1
  • FX_Windows_GetMonitoring_HasOmniVision.ps1
  • FX_Windows_GetMonitoring_HasOVO.ps1
  • FX_Windows_GetMonitoring_HasPerformance.ps1
  • FX_Windows_GetMonitoring_HasTivoli.ps1
  • FX_Windows_GetMonitoring_HasWVA.ps1
  • FX_OpenSLIM_Windows_GetArchitectureType.ps1
  • FX_OpenSLIM_Windows_GetAssignedSystemCores.ps1
  • FX_OpenSLIM_Windows_GetAssignedSystemMemory.ps1
  • FX_OpenSLIM_Windows_GetClusterType.ps1
  • FX_OpenSLIM_Windows_GetCpuType.ps1
  • FX_OpenSLIM_Windows_GetHasSANStorage.ps1
  • FX_OpenSLIM_Windows_GetHbaLinksInfo.ps1
  • FX_OpenSLIM_Windows_GetMajorPatchLevel.ps1
  • FX_OpenSLIM_Windows_GetMaxSpeedPerCore.ps1
  • FX_OpenSLIM_Windows_GetNodeModel.ps1
  • FX_OpenSLIM_Windows_GetNodeSerialNumber.ps1
  • FX_OpenSLIM_Windows_GetNodeType.ps1
  • FX_OpenSLIM_Windows_GetSecurityDomain.ps1
  • FX_OpenSLIM_Windows_GetSupplier.ps1
  • FX_OpenSLIM_Windows_GetSystemType.ps1
  • FX_OpenSLIM_Windows_NodeIsActive.ps1
  • FX_RunPsCmd_PS_SetExecutionPolicy.ps1
  • FX_RunWinCmd_GP_DisableLocalAccountTokenFilterPolicy.ps1
  • FX_RunWinCmd_GP_EnableLocalAccountTokenFilterPolicy.ps1
  • FX_RunWinCmd_GP_RefreshPolicies.ps1
  • FX_RunWinCmd_PS_EnableRemoting.ps1
  • FX_RunWinCmd_WSMan_ClientPolicy_ResetHttpPort.ps1
  • FX_RunWinCmd_WSMan_ClientPolicy_ResetHttpsPort.ps1
  • FX_RunWinCmd_WSMan_ClientPolicy_TrustAllHosts.ps1
  • FX_RunWinCmd_WSMan_ClientPolicy_TrustNoHosts.ps1
  • FX_RunWinCmd_WSMan_GetClientPolicy.ps1
  • FX_RunWinCmd_WSMan_GetServicePolicy.ps1
  • FX_RunWinCmd_WSMan_QuickConfig.ps1
  • FX_RunWinCmd_WSMan_ServicePolicy_AllowUnencrypted.ps1
  • FX_RunWinCmd_WSMan_ServicePolicy_DisableBasicAuth.ps1
  • FX_RunWinCmd_WSMan_ServicePolicy_DisableIP4Listeners.ps1
  • FX_RunWinCmd_WSMan_ServicePolicy_DisableIP6Listeners.ps1
  • FX_RunWinCmd_WSMan_ServicePolicy_DisallowUnencrypted.ps1
  • FX_RunWinCmd_WSMan_ServicePolicy_EnableBasicAuth.ps1
  • FX_RunWinCmd_WSMan_ServicePolicy_EnableIP4Listeners.ps1
  • FX_RunWinCmd_WSMan_ServicePolicy_EnableIP6Listeners.ps1
  • FX_RunWinCmd_WSMan_ServicePolicy_ResetHttpPort.ps1
  • FX_RunWinCmd_WSMan_ServicePolicy_ResetHttpsPort.ps1
  • PLEX_RunPsCmd.ps1
  • PLEX_RunUnixCmd.ps1
  • PLEX_RunWinCmd.ps1
  • PLEX_RunWinCmd_WSMan_ClientPolicy_SetTrustedHosts.ps1
  • PLEX_RunWinCmd_WSMan_ServicePolicy_SetIP4Filter.ps1
  • PLEX_RunWinCmd_WSMan_ServicePolicy_SetIP6Filter.ps1
  • FX_Windows_FCInfo_HbaStatus.ps1
  • FX_Windows_GetTotalFreeSpace.ps1
  • FX_Windows_GetTotalFreeSpaceLocalStorage.ps1
  • FX_Windows_GetTotalLocalStorage.ps1
  • FX_Windows_GetTotalLocalStorage_ByDevice.ps1
  • FX_Windows_GetTotalSANStorage.ps1
  • FX_Windows_GetTotalSANStorage_ByDevice.ps1
  • FX_Windows_GetTotalStorage.ps1
  • FX_Windows_GetTotalStorage_ByDevice.ps1
  • FX_VMWare_GetVMsRunning.ps1
  • FX_VMware_GetVMWToolsStatus.ps1
  • PLEX_VMware_BackupVM.ps1
  • PLEX_VMWare_CreateVMSnapShot.ps1
  • PLEX_VMWare_GetDataStorageUsage.ps1
  • PLEX_VMware_GetDataStoreCapacity.ps1
  • PLEX_VMWare_GetVMHDFileName.ps1
  • PLEX_VMWare_GetVMOS.ps1
  • PLEX_VMWare_GetVMsHosted.ps1
  • PLEX_VMWare_GetVMsHostName.ps1
  • PLEX_VMWare_GetVMsInDataStore.ps1
  • PLEX_VMWare_PowerOffVM.ps1
  • PLEX_VMWare_PowerOnVM.ps1
  • FX_Win2k3_SystemBoot_Add3GB.ps1
  • FX_Win2k3_SystemBoot_Has3GB.ps1
  • FX_Win2k3_SystemBoot_Remove3GB.ps1
  • FX_Windows_GetEnabledNICsIndex.ps1
  • FX_Windows_GetPrimaryDnsResolver.ps1
  • FX_Windows_GetPrimaryWINS.ps1
  • FX_Windows_GetSecondaryDnsResolver.ps1
  • FX_Windows_GetSecondaryWINS.ps1
  • PLEX_Windows_ReplaceDnsResolvers.ps1
  • PLEX_Windows_ReplaceWinsResolvers.ps1

As usual, you will find the download information on the Live Projects Page.  Please, let me know about your experience with these version as well as any ideas or comments you may have.

Thanks in advance and have fun! 😀


Creative Commons License
Except where otherwise noted, ThinkInBig by Carlos Veira Lorenzo is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

Published in Automation Projects System Management