1. To break a single command in to multiple lines: use the ` , but in the lines except the first one, you press enter to start a new line, press “shift+enter” to commit the command.

2. Install a feature:

First, use

PS C:\> Get-windowsFeature

You will get a list of the features, find the name of the feature on the right hand side( we take AD-Domain-Services for example)

To install it:

PS C:\> Get-WindowsFeature AD-Doamin-Services

 

PS C:\> Get-WindowsFeature AD-Domain-Services | Install-WindowsFeature
Rename-Computer
Renames a computer.
Parameter Set: Default
Rename-Computer [-NewName] <String> [-ComputerName <String> ] [-DomainCredential <PSCredential> ] [-Force] [-LocalCredential <PSCredential> ] [-PassThru] [-Protocol <String> {DCOM | WSMan} ] [-Restart] [-WsmanAuthentication <String> {Default | Basic | Negotiate | CredSSP | Digest | Kerberos} ] [-Confirm] [-WhatIf] [ <CommonParameters>]
Detailed Description

The Rename-Computer cmdlet renames the local computer or a remote computer. It renames one computer in each command.

This cmdlet was introduced in Windows PowerShell 3.0.

Parameters
  • -ComputerName<String>

Specifies the new name for the remote computer. The default is the local computer.

Type the NetBIOS name, an IP address, or a fully qualified domain name of a remote computer. To specify the local computer, type the computer name, a dot (.), or localhost.

This parameter does not rely on Windows PowerShell remoting. You can use the ComputerName parameter of Rename-Computer even if your computer is not configured to run remote commands.

  • -DomainCredential<PSCredential>

Specifies a user account that has permission to connect to the domain. Explicit credentials are required to rename a computer that is joined to a domain.

Type a user name, such as User01 or Domain01\User01, or enter a PSCredential object, such as one generated by the Get-Credential cmdlet. If you type a user name, this cmdlet prompts you for a password.

To specify a user account that has permission to connect to the computer that is specified by the ComputerName parameter, use the LocalCredential parameter.

  • Force

Forces the command to run without asking for user confirmation.

  • LocalCredential<PSCredential>

Specifies a user account that has permission to connect to the computer specified by the ComputerName parameter. The default is the current user.

Type a user name, such as User01 or Domain01\User01, or enter a PSCredential object, such as one generated by the Get-Credential cmdlet. If you type a user name, this cmdlet prompts you for a password.

To specify a user account that has permission to connect to the domain, use the DomainCredential parameter

  • NewName<String>

Specifies a new name for the computer. This parameter is required. The name cannot include control characters, leading or trailing spaces, or any of the following characters: / \\ [ ]

  • PassThru

 

Returns the results of the command. Otherwise, this cmdlet does not generate any output.

  • -Protocol<String>

Specifies which protocol to use to rename the computer. The acceptable values for this parameter are: WSMan and DCOM. The default value is DCOM.

This parameter was introduced in Windows PowerShell 3.0.

  • -Restart

Indicates that this cmdlet restarts the computer that was renamed. A restart is often required to make the change effective.

  • -WsmanAuthentication<String>

Specifies the mechanism that is used to authenticate the user credentials when this cmdlet uses the WSMan protocol. The acceptable values for this parameter are:

— Basic
— CredSSP
— Default
— Digest
— Kerberos
— Negotiate

The default value is Default.

Caution: Credential Security Service Provider (CredSSP) authentication, in which the user credentials are passed to a remote computer to be authenticated, is designed for commands that require authentication on more than one resource, such as accessing a remote network share. This mechanism increases the security risk of the remote operation. If the remote computer is compromised, the credentials that are passed to it can be used to control the network session.

This parameter was introduced in Windows PowerShell 3.0.

  • -Confirm

Prompts you for confirmation before running the cmdlet.

  • -WhatIf

Shows what would happen if the cmdlet runs. The cmdlet is not run.

<CommonParameters>

This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see    about_CommonParameters.

 

Examples
Example 1: Rename the local computer

This command renames the local computer to Server044 and then restarts it to make the change effective.

PS C:\>Rename-Computer -NewName "Server044" -DomainCredential Domain01\Admin01 -Restart
Example 2: Rename a remote computer

This command renames the Srv01 computer to Server001 and then restarts it to make the change effective. It uses the LocalCredential parameter to supply the credentials of a user who has permission to connect to the local computer and the DomainCredential parameter to supply the credentials of a user who has permission to rename computers in the domain. It uses the Force parameter to suppress the confirmation prompt and the PassThru parameter to return the results of the command.

PS C:\>Rename-Computer -ComputerName "Srv01" -NewName "Server001" -LocalCredential Srv01\Admin01 -DomainCredential Domain01\Admin01 -Force -PassThru -Restart
Example 3: Rename multiple computers

This command renames multiple computers in the domain. It uses a CSV file to specify the values for the current and new names of each computer. The CSV file contains a series of name pairs in “OldName, NewName” format with one name pair on each line of the file.

The first command uses the Import-Csv cmdlet to import the ServerNames.csv file into the $a variable. It uses the Header parameter to specify the column header names of each of the two columns. This creates a collection of custom objects in $a, each of which has an OldName and NewName property.

The second command runs the Rename-Computer cmdlet on each object in the $a variable. It specifies the old name, which is the value of the OldName property, for the value of the ComputerName parameter. It specifiesthe new name, the value of the NewName property, for the value of the NewName parameter. The command specifies domain credentials and uses Force and Restart to suppress all user prompts and restart each computer after it is renamed.

PS C:\>$a = Import-Csv ServerNames.csv -Header OldName, NewName
PS C:\> Foreach ( $Server in $a ) {Rename-Computer -ComputerName $Server.OldName -NewName $Server.NewName -DomainCredential Domain01\Admin01 -Force -Restart}
Changing Your IP Address

With PowerShell v3, there is now a NetTCPIP module that brings most of the functionality to native PowerShell. While a bit confusing at first, mostly due to the lack of documentation at the moment, it starts to make sense once the geeks shows you how its done.

Get the current configuration:

get-NetIPaddress

Changing an IP Address can be done using the New-NetIPAddress cmdlet, it has a lot of parameters, some of which, are not even documented in Get-Help. So here it is:

New-NetIPAddress –InterfaceAlias “Wired Ethernet Connection” –IPAddress “192.168.0.1” –PrefixLength 24 -DefaultGateway 192.168.0.254

This assumes the following:

  • The name of the interface you want to change the IP address  for is Local Area Network
  • You want to statically assign an IP address of 192.168.0.1
  • You want to set a subnet mask of 255.255.255.0 (which is /24 in CIDR notation)
  • You want to set a default gateway of 192.168.0.254

You would obviously switch the settings out for some that match the addressing criteria for your network.

Setting Your DNS Information

Now here comes another tricky part, it turns out that there is a whole separate module called DNSClient that you have to use to manipulate your DNS Settings. To change your DNS Server you would use:

Set-DnsClientServerAddress -InterfaceAlias “Wired Ethernet Connection” -ServerAddresses 192.168.0.1, 192.168.0.2

This assumes that you want to set the primary DNS server for Wired Ethernet Connection to 192.168.0.1 and the secondary DNS server to 192.168.0.2. That’s all there is to it.

 

Examples
EXAMPLE 1

This example gets a list of features that is available and installed on the target computer named Server1. The credentials for user user1 in the Contoso.com domain, a user who has Administrator rights on Server1, are provided.

PS C:\> Get-WindowsFeature -ComputerName Server1 -Credential contoso.com\user1
EXAMPLE 2

This example returns a list of features that is available and installed on the specified offline VHD located at D:\ps-test\vhd1.vhd.

PS C:\> Get-WindowsFeature -Vhd D:\ps-test\vhd1.vhd
EXAMPLE 3

This example returns a list of available and installed features that have a command ID starting with AD or Web.

PS C:\> Get-WindowsFeature -Name AD*, Web*
EXAMPLE 4

This example returns a list of features that is installed on a specified server, Server01.

PS C:\> Get-WindowsFeature –ComputerName Server01 | Where Installed
EXAMPLE 5

This example returns a list of features on a specified server, Server01, that have installation files removed from the local side-by-side store, and require an external file source for installation.

PS C:\> Get-WindowsFeature –ComputerName Server01 | Where InstallState -Eq Removed