Windows juhend: Kuidas seadistada võrguühendusi Powershelli abil

From ICO wiki
Jump to navigationJump to search

Sissejuhatus

Powershell [1] on Microsofti poolt arendatud käsurea skriptimiskeel ja keskkond peaasjalikult administreerimisülesannete teostamiseks. Powershell sisaldab praegu üle 2300 sisemise käsu ehk cmdlet'i, andes niiviisi erinevate ülesannete automatiseerimiseks väga head võimalused. Käesolev juhend kehtib Windows 8 ja Powershell 3.0 kohta, ning põhirõhk on kaabliga etherneti ühenduste seadistamisel. Powershelli versiooni on kirjas muutujas $Host.Version [2].

Major ja Minor näitavad Powershelli versiooni.


PowerShell Integrated Scripting Environment ehk PowerShell ISE

Powershelli skriptide kirjutamist lihtsustab spetsiaalne tööriist Powershell ISE, mis võimaldab skriptide kirjutamisel abiinfot vaadata, silumist teostada ja muudki. Powershell ISE käivitamiseks võib Start ekraanil kirjutada "powershell_ise" [3] või teha juba käivitatud Powershelli nupul klõps parema hiire nupuga ja avanenud menüüst valida "Windows PowerShell ISE".

Powershell ISE põhiaken.


Võrguühendustega seotud käsud

Infot olemasolevate käskude kohta annab käsk Get-Command mille argumendiks võib olla käsu nime osa [4]

PS C:\> Get-Command *net*

CommandType     Name                                               ModuleName
-----------     ----                                               ----------
Function        Add-NetIPHttpsCertBinding                          NetworkTransition
Function        Add-NetLbfoTeamMember                              NetLbfo
Function        Add-NetLbfoTeamNic                                 NetLbfo
Function        Add-NetSwitchTeamMember                            NetSwitchTeam
Function        Copy-NetFirewallRule                               NetSecurity
Function        Copy-NetIPsecMainModeCryptoSet                     NetSecurity
Function        Copy-NetIPsecMainModeRule                          NetSecurity
Function        Copy-NetIPsecPhase1AuthSet                         NetSecurity
Function        Copy-NetIPsecPhase2AuthSet                         NetSecurity
Function        Copy-NetIPsecQuickModeCryptoSet                    NetSecurity
Function        Copy-NetIPsecRule                                  NetSecurity
Function        Disable-NetAdapter                                 NetAdapter
Function        Disable-NetAdapterBinding                          NetAdapter
Function        Disable-NetAdapterChecksumOffload                  NetAdapter
........        ................                                   ..............
Function        Set-NetRoute                                       NetTCPIP
Function        Set-NetTCPSetting                                  NetTCPIP
Function        Set-NetTeredoConfiguration                         NetworkTransition
Function        Set-NetUDPSetting                                  NetTCPIP
Function        Show-NetFirewallRule                               NetSecurity
Function        Show-NetIPsecRule                                  NetSecurity
Function        Sync-NetIPsecRule                                  NetSecurity
Function        Update-NetIPsecRule                                NetSecurity
Cmdlet          New-NetIPsecAuthProposal                           NetSecurity
Cmdlet          New-NetIPsecMainModeCryptoProposal                 NetSecurity
Cmdlet          New-NetIPsecQuickModeCryptoProposal                NetSecurity
Application     CheckNetIsolation.exe
Application     gatherNetworkInfo.vbs
Application     inetcpl.cpl
Application     net.exe
Application     net1.exe
Application     netbtugc.exe
Application     netcfg.exe
Application     netiougc.exe
Application     Netplwiz.exe
Application     netsh.exe
Application     NETSTAT.EXE

Abiinfot konkreetse käsu kohta annab Get-Help

PS C:\> Get-Help Get-NetAdapter

NAME
    Get-NetAdapter

SYNOPSIS
    Gets the basic network adapter properties.
.................................................................

    To see the examples, type: "get-help Get-Help -examples".
    For more information, type: "get-help Get-Help -detailed".
    For technical information, type: "get-help Get-Help -full".
    For online help, type: "get-help Get-Help -online"


Võrguseadistamise tegevused

Võrguseadmete info

Enne kui saame seadistama asuda on vaja infot millised võrguseadmed meil kasutada on. Lühikese loetelu annab Get-Adapter.

PS C:\> Get-NetAdapter

Name                      InterfaceDescription                    ifIndex Status       MacAddress             LinkSpeed
----                      --------------------                    ------- ------       ----------             ---------
Ethernet 3                Intel(R) PRO/1000 MT Desktop Adapter #3      16 Disconnected 08-00-27-D8-97-EE          0 bps
Ethernet 2                Intel(R) PRO/1000 MT Desktop Adapter #2      15 Up           08-00-27-43-7D-59         1 Gbps
Ethernet                  Intel(R) PRO/1000 MT Desktop Adapter         12 Up           08-00-27-8F-EC-5E         1 Gbps


IP seadistuse info annab Get-NetIPConfiguration

PS C:\> Get-NetIPConfiguration


InterfaceAlias       : Ethernet 2
InterfaceIndex       : 15
InterfaceDescription : Intel(R) PRO/1000 MT Desktop Adapter #2
NetProfile.Name      : Unidentified network
IPv4Address          : 169.254.191.114
IPv6DefaultGateway   :
IPv4DefaultGateway   :
DNSServer            : fec0:0:0:ffff::1
                       fec0:0:0:ffff::2
                       fec0:0:0:ffff::3

InterfaceAlias       : Ethernet
InterfaceIndex       : 12
InterfaceDescription : Intel(R) PRO/1000 MT Desktop Adapter
NetProfile.Name      : Network  2
IPv4Address          : 10.0.2.15
IPv6DefaultGateway   :
IPv4DefaultGateway   : 10.0.2.2
DNSServer            : 10.59.1.1

InterfaceAlias       : Ethernet 3
InterfaceIndex       : 16
InterfaceDescription : Intel(R) PRO/1000 MT Desktop Adapter #3
NetAdapter.Status    : Disconnected


Võrguseadme sisse ja välja lülitamine

Võrguseadmeid lülitavad käsud Enable-NetAdapter ja Disable-NetAdapter. Mõlemale käsule võib argumendina järgi anda võrguseadme nime. Kui seda ei tehta, siis küsitakse seda interaktiivselt.

PS C:\> Disable-NetAdapter "Ethernet 2" -Confirm:$false
PS C:\> Enable-NetAdapter

cmdlet Enable-NetAdapter at command pipeline position 1
Supply values for the following parameters:
Name[0]: ethernet 2
Name[1]:
PS C:\>


Võrguseadme IP määramine

Võrguseadmele määrab staatilise IP aadressi koos lisaparameetritega New-NetIPAddress. [5]

PS C:\> New-NetIPAddress -InterfaceAlias "Ethernet 2" -IPAddress 192.168.100.100 -DefaultGateway 192.168.100.1 -PrefixLength 24
  • InterfaceAlias' on võrguseadme nimi. Kui nimi sisaldab tühikuid, siis tuleb nimi panna jutumärkide vahele.
  • IPAddress on määratav IP aadress
  • DefaultGateway on võrgusegmendi lüüs
  • PrefixLength on võrgumask bittides (0-32), sisevõrkudes üsna tihti 24.


Staatilise IP aadressi ja võrgumaski kustutamiseks tuleb kasutada käsku Remove-NetIPAddress

PS C:\> Remove-NetIPAddress -InterfaceAlias "Ethernet 2" -Confirm:$false

Võrgulüüsi aadressi (Default Gateway) kustutame eraldi käsuga Remove-NetRoute.

PS C:\> Remove-NetRoute -InterfaceAlias "Ethernet 2" -DestinationPrefix 0.0.0.0/0 -Confirm:$false


Dünaamilise aadressi hankimiseks tuleb lubada DHCP

PS C:\> Set-NetIPInterface -InterfaceAlias "Ethernet 2" -Dhcp Enabled


Nimeserverite määramine

Nimeserverid määratakse käsuga Set-DnsClientServerAddress. Komaga eraldades saab sobiva hulga nimeservereid määrata. [6]

PS C:\> Set-DnsClientServerAddress -InterfaceAlias “Ethernet 2” -ServerAddresses 192.168.0.1, 192.168.0.2

Kustutada saab nimeserverite aadressid sama käsuga, oluline on argument -ResetServerAddresses

PS C:\> Set-DnsClientServerAddress -InterfaceAlias “Ethernet 2” -ResetServerAddresses


Nimelahenduse vaikimisi domeenide nimekirja sisestatakse käsuga Set-DnsClientGlobalSetting. Nimekirja saab tühjendada, kui argumendiks anda tühi list @()

PS C:\> Set-DnsClientGlobalSetting -SuffixSearchList @("itcollege.ee", "sise.itcollege.ee")

Nimelahenduse vaikimisi domeeninime saab ka võrguseadme kaupa määrata.

PS C:\> Set-DnsClient -InterfaceAlias "Ethernet 2" -ConnectionSpecificSuffix "itcollege.ee"


Kokkuvõte

Olen ise pikaajaline Linuxi kasutaja ja töötan suurema osa ajast käsureal. Kõrvutades Windowsi ja Linuxi võimekust automatiseerida administreerimist käsurea abil ei jää Powershell näiteks Bash'le sugugi alla, lisades samas mõned huvitavad võimalused, näiteks objektide edasi andmine järgmisele käsule, võrreldes lihtsalt väljundvoogude edasi suunamisega Bash'is.


Viited kasutatud materjalile

http://technet.microsoft.com/en-us/library/hh847889.aspx

http://blogs.technet.com/b/danstolts/archive/2012/01/31/using-powershell-to-get-or-set-networkadapterconfiguration-view-and-change-network-settings-including-dhcp-dns-ip-address-and-more-dynamic-and-static-step-by-step.aspx

http://www.thomasmaurer.ch/2012/04/replace-netsh-with-windows-powershell-basic-network-cmdlets/


Autor

Henri Kaukver

Rühm: AK21