Thursday, 1 October 2015


Manage multiple servers with PowerShell Server Manager
PowerShell Server Manager allows administrators to manage multiple servers, Windows roles and features -- all from a single console.


Administrators for large Microsoft environments that use Windows Server 2008 or higher likely have had to manage Windows roles. Windows Server has roles and features that allow admins to add, remove or modify features by clicking a checkbox. However, clicking checkboxes isn't the most automatic way to manage servers. This is where Windows PowerShellcomes into play.


Windows Server Manager is a graphical user interface (GUI) that creates a single area for managing server identities and system information. The interface allows admins to point and click on various tasks. While this works for environments that have a few one-off servers, it doesn't work for environments with mass deployment of servers. Shifting to the command line can simplify things.

PowerShell has a module calledServerManager that contains useful cmdlets to help the administrator manage roles and features (Figure 1).





PowerShell Server Manager module


In this example, there are two aliases and five actual cmdlets and functions. To be more concise, we will use the cmdlet/function names here. To start, determine all the roles and features available on a given system. To do so, use Get-WindowsFeature.


When you use the Get-WindowsFeature without parameters, it returns all roles and features on a system -- whether or not they are installed. Figure 2 shows a handful of the features available on the test system.


Migration patterns: Ensuring successful Windows Server transitions





An example of some the Get-WindowsFeature options


To get only the features that are currently installed, use the Where-Objectcmdlet (Figure 3).





The Where-Object cmdlet calls up installed features


What do you do when installing a new Windows feature? You can use theInstall-WindowsFeature. For example, if I want to install the SNMP service on my local machine, I’d use the Install-WindowsFeature cmdlet with the Name parameter. The feature has been successfully installed (Figure 5).





The SNMP service is installed


When removing features, use the Remove-WindowsFeature cmdlet. You can remove features just as easily as you can install them using the same parameter name of Name (Figure 6).









Remove Windows features using the Remove-WindowsFeature cmdlet


The UI notes that you must restart the server to finish removing a feature. If you’re using this in a script, you might not want to do that manually. TheInstall-WindowsFeature and Remove-WindowsFeature have Remove parameters that you can use in case the server automatically restarts (if it needs to) after running each cmdlet.


This is fine if you have a single server, but manually keying this in for several servers would be similar to doing it through Server Manager. Using PowerShell's remoting feature, admins can use the ComputerName parameter to point the task at any remote computer (Figure 7).


















Use the ComputerName parameter to point to the task at any remote computer.


What if you want to install a Windows feature on 100 servers? This isn't a problem if you have them in a text file. If you have a CSV file with a header of ServerName -- and all the names of the servers under that -- you can read this CSV file with PowerShell’s Import-Csv cmdlet and start any Windows feature cmdlet.


Import-Csv C:\Servers.csv | foreach { Install-WindowsFeature -Name 'SNMP-Service' -ComputerName $_.ServerName }


This command would read every server name from the CSV and install the SNMP service on each computer at once.





Courtesy:Adam Bertram

No comments:

Post a Comment