About the Client Manager Module
PowerShell module to Add/Remove Windows 7 features
The module can be installed automatically by downloading the MSI package or manually by downloading a ZIP file.
The MSI package will install the module under your Documents folder (%USERPROFILE%\Documents\WindowsPowerShell\Modules\RemoteRegistry).
The ZIP file contains the module files only and you need to extract its content to one of two places:
- %USERPROFILE%\Documents\WindowsPowerShell\Modules
- %WINDIR%\System32\WindowsPowerShell\v1.0\Modules (need admin privileges)
- If the directory tree (of one of the above) doesn't exist then you should manually create it.
Prerequisites
Windows PowerShell 2.0
http://support.microsoft.com/kb/968929
How to use the module
Check if the module is installed correctly, from your PowerShell session type:
PS > Get-Module -Name PSClientManager -ListAvailable
ModuleType Name ExportedCommands
---------- ---- ----------------
Manifest PSClientManager {}
If you don't see the above result then the module was not installed correctly. If you choose to download and install the module manually (zip file), make sure the module directory exists under "%USERPROFILE%\Documents\WindowsPowerShell\Modules"
Importing the module:
PS > Import-Module PSClientManager
NOTE An elavated PowerShell session is needed to load the module. If the session is not elevated a warning message is written to the console
and you wont be able to use any of the module’s functions.
PS > Get-Command -Module PSClientManager
CommandType Name Definition
----------- ---- ----------
Function Add-ClientFeature ...
Function Get-ClientFeature ...
Function Get-ClientFeatureInfo ...
Function Remove-ClientFeature ...
Code Examples
To get a quick look at all the the available features on your system, run the Get-ClientFeature without any parameters. One of the first features a system administrator would want to install is Telnet. Lets see how we can find and install it. We will run the Get-ClientFeature command and use a wildcard pattern for the feature name parameter.
PS > Get-ClientFeature –Name *telnet* | Format-Table -AutoSize
Name State
---- ------
TelnetServer Disabled
TelnetClient Disabled
The result shows that there are two Telnet features, Client and Server, and both are disabled. Lets get some more information about the client feature:
PS > Get-ClientFeatureInfo –Name TelnetClient
Name : TelnetClient
DisplayName : Telnet Client
RestartRequired : Possible
Properties :
Description : Connect to remote computers by using the Telnet protocol
State : Disabled
Now let’s enable it. Adding or removing features changes the system so the command asks for confirmation. To suppress confirmations use the –Force parameter or ‘-Confirm:$false’:
PS > Add-ClientFeature –Name TelnetClient
Confirm
Are you sure you want to perform this action?
Performing operation "Enable Feature 'TelnetClient'" on Target "PC1".
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"): y
Deployment Image Servicing and Management tool
Version: 6.1.7600.16385
Image Version: 6.1.7600.16385
Enabling feature(s)
{"[==========================100.0%==========================]"}
The operation completed successfully.
We can verify that the Telnet has been enabled by running the Get-ClientFeatureInfo or Get-ClientFeature.
PS > Get-ClientFeatureInfo –Name TelnetClient
Name : TelnetClient
DisplayName : Telnet Client
RestartRequired : Possible
Properties :
Description : Connect to remote computers by using the Telnet protocol
State : Enabled
PS > Get-ClientFeature Telnet* | Format-Table -AutoSize
Name State
---- ------
TelnetServer Disabled
TelnetClient Enabled
The functions can also pipe feature object(s) from one command to another. For example, the following command enables the Telnet client and server features on the current system (check help for a complete list of command parameters and code examples):
PS > Get-ClientFeature tel* | Add-ClientFeature
Gotcha
Feature names are
case sensitive! Make sure you write them with the proper case.