Can these free tools replace System Center for smaller networks?
If you need to deploy, monitor, profile and troubleshoot a wide range of servers, PCs, tablets, phones, applications, virtual machines and services, or if you’re advanced enough to be automating your data center as a private cloud, System Center is your obvious go-to tool. If you just have PCs, notebooks, tablets and phones to keep an eye on, you can do a lot with Windows Intune, and you can use the vastly improved Server Manager interface in Windows Server 2012 to manage more than just your servers. The tools you pick depend on whether you prefer pre-built tools or you’d rather roll your own.
If you want to manage PCs, as usual, the answer is Group Policy. You can launch the Group Policy Management Console from the Server Manager to remotely refresh Group Policy on Windows 8 PCs, or use the Invoke GPUpdate PowerShell cmdlet to do it (on any system from Windows Server 2008 R2 onwards). There are more PowerShell cmdlets for changing registry settings. (There’s a list here and here. These pages have step by step instructions for using PowerShell to update Group Policy on other computers on your network.)
For collecting information about PCs (and servers), think WMI (Windows Management Instrumentation). Again, you can use PowerShell to connect and collect information remotely. (Click here for details on how to connect to WMI on a remote PC using PowerShell.) Your scripts can access registry data, event logs and notifications, performance counter data and system information; you can get a list of applications, start and schedule processes or reboot the PC.
If you prefer a graphical interface, you can look at free tools like ManageEngine and Spiceworks. ManageEngine has tools to manage a small number of desktops, applications and Active Directory, as well as various network options, and they’re free for up to five servers and 25 desktops. Spiceworks has free tools to manage up to 1,000 devices. They’re free because you’ll find tech companies pitching you in the Spiceworks support forums. (They pay to get access.)
But if you just have a handful of systems and you need to dig into the apps running on your servers, you can also do some monitoring using something very like the System Center Operations Manager agent (which you can download free from Microsoft), and more PowerShell.
Microsoft Monitoring agent
What you can download is actually the Microsoft Monitoring agent, which includes the features of the System Center Operations Manager agent, as well as .NET Application Performance Monitoring (APM for short) and the IntelliTrace Standalone Collector (which works with Visual Studio Ultimate 2012.2 and 2013). You can get a preview version of the Microsoft Monitoring Agent 2013 here.
Unfortunately, without System Center you don’t get access to the general health information about the PCs the agent is running on, but you can use it to collect IntelliTrace application logs (.iTrace files) for managed apps, web apps running on IIS and SharePoint 2010 and 2013 apps to do performance monitoring. You can open the IntelliTrace logs you collect in Visual Studio Ultimate 2013 Preview. Visual Studio Ultimate Update 2012 can open logs created when a .NET application has an APM exception; that means you can see the details of what went wrong in an application without having to log in to the server and rummage around, but you need the Visual Studio 2013 if you want to open logs that are created because of performance events, rather than exceptions.
You can start and stop application traces with PowerShell cmdlets. After you install the agent, run the PowerShell console as admin and use the import-module command to load the IntelliTrace cmndlets; type import-module “C:Program FilesMicrosoft Monitoring AgentAgentIntelliTraceCollectorMicrosoft.VisualStudio.IntelliTrace.PowerShell.dll”.
Use Get-Command -module *visual* to see the list of the IntelliTrace cmdlets in the module (and the usual Get-Help cmdletname will give you more details for each command). See these details on using the Start-IntelliTraceCollection and Stop-IntelliTraceCollection cmndlts, and to check the status of the trace with Get-IntelliTraceCollectionStatus. If you haven’t worked with IntelliTrace before, this page is an excellent primer.
Remote in with PowerShell
Remember, you can remote into a server through PowerShell to do this, as long as you’ve used WinRM QuickConfig to enable a WinRM listener and create a firewall exception on the server. (You have to do that at an elevated command prompt on the server, so remote into the server as normal if you need to configure this.) Now you can set up a remote PowerShell session with Enter-PSSession -ComputerName SERVERERNAME.
IntelliTrace logs are a good way to see what’s going wrong with apps that users are complaining about when nothing shows up in the usual error logs. But bear in mind that they collect a lot of data, so they can actually slow down the app you’re monitoring, so you may get complaints about the app being slow while you’re tracing it.
Minimize impact by waiting until you think you know how to reproduce a problem to start the logs and then stop the collection again and turn off any events that aren’t relevant to the problem you’re tracking.
For web apps and SharePoint applications, the agent collects information for every app in the same application pool; move other apps into their own application pools so they don’t slow down as well.