Finns det några Windows-servrar i ditt nätverk? Då måste du kunna använda Powershell i dag. I en serie i tre delar tänker jag lägga en grund för dig som är nätverksadministratör att bygga vidare på. I den här första artikeln behandlar vi Windows Server 2012R2 och Windows 10. I de två följande kommer vi att titta på Powershell och nätverk i Hyper-V- och Azure-miljöer.

Powershell uppgraderas för att kunna hålla jämn takt med nya kommandon i nya OS-versioner. Windows Server2012R2 och Windows 10 kommer med Powershell version 4.

Läs också: Så skyddar du företagets data och undviker risken för informationsläckage

I en Windows-installation finns det idag två olika fönster mot Powershell. Dels finns det en kommandoprompt för att enkelt kunna köra enskilda kommandon (cmdlets), dels en mer grafisk miljö kallad Powershell ISE (Integrated Scripting Environment) för att enklare kunna skapa längre script. Självklart kan du använda vilken som. Välj den som du känner dig mest bekväm med.

Powershells hjälpfunktion Get-Help <cmdlet> är bland det bästa Microsoft har presterat i hjälpväg någonsin. Vill du få riktigt mycket information om ditt cmdlet, inklusive skriptexempel så lägger du till –detailed eller –full på slutet. Här finner man allt man behöver veta om varje cmdlet. Hjälptexterna uppdateras regelbundet. För att alltid ha senaste versionen brukar jag med jämna mellanrum uppdatera hjälpen genom att skriva Update-Help.

Säkerhet
Det finns ett par saker som man bör vara medveten om när det gäller Powershell och säkerhet. Precis som i andra Windows-program så kan man köra Powershell i två olika lägen - användarläge och administratörsläge.

De funktioner som i normala peka-klicka sammanhang kräver administratörsrättigheter kräver självfallet administratörsrättigheter även i Powershell. Fungerar inte ditt kommando/skript i Powershell? Stäng ned Powershell och starta om genom att högerklicka och välja ”kör som administratör”.

Det här är en artikel från Expert Network

Kör du ett skript som inte vill fungera så kan det bero på Powershells execution policy. Denna policy begränsar skriptens möjligheter att exekvera. Du kan se nivån genom att skriva Get-ExecutionPolicy, som standard är den Restricted. Det betyder att du inte kan köra några skript. Du kan ändra detta genom att använda Set-ExecutionPolicy. Vilken policy ska du välja? Ja, använd Get-Help Set-ExecutionPolicy –detailed för att ta reda på vilka val som finns och fundera på vad de kan ha för påverkan på er miljö.

Information om nätverkskort
Nu kör vi igång. Vi börjar med att kontrollera vilka nätverkskort som finns i datorn. För detta använder vi oss av kommandot (cmdlet) Get-NetAdapter.

powershell

För den som brukar använda vanliga kommandon som till exempel ipconfig och netsh. Fungerar dessa än så länge lika bra i Powershell.

powershell

Konfigurera ip-adresser
Ipconfig motsvaras i stora drag av Get-NetIPAddress. För att endast visa ett nätverkskort i listan så lade jag till –interfaceindex 4. Indexnumret syns till exempel i resultatet från Get-NetAdapter.

powershell

För att sätta en fast ip-adress använder vi oss av New-NetIPAddress. För att konfigurera rätt nätverkskort behöver vi först ta reda på vilket index eller vilket alias nätverkskortet har. Båda dessa uppgifter syns i resultatet från Get-NetIPAddress eller från Get-NetAdapter.

powershell

Som vi ser i bild 4 så har vi inte tillräckliga rättigheter för att byta IP adress på datorn. Vi måste helt enkelt stänga ned Powershell och starta den igen i eleverat läge. Det vill säga högerklicka och välja ”kör som administratör”. Observera även att du behöver sätta citattecken runt strängar som innehåller mellanrum.

powershell

Där satt den! Lägg märke till att det numera står ”Administrator: Windows Powershell” i titeln.
Den som är uppmärksam saknar dock DNS informationen. För att konfigurera DNS behöver vi använda oss av Set-DNSClientServerAddress. I det här fallet sätter vi två stycken DNS servrar, separerade med ett enkelt kommatecken.

powershell

Byt namn på ett nätverkskort
Som avslutning tänkte jag att vi skulle byta namn på vårt nätverkskort. Då använder vi oss åter av Get-NetAdapter för att hitta rätt nätverkskort. Därefter byter vi namn med Rename-NetAdapter. För att göra det lite roligare kör vi allt i ett svep. Man kan nämligen kombinera ihop flera cmdlets på samma rad. Genom att först hämta upp rätt nätverkskort med Get-NetAdapter kan vi sedan låta resultatet gå vidare till nästa cmdlet, Rename-NetAdapter, med ett ”pipe”-tecken |.

powershell

För att kontrollera att allt ser rätt ut så kör vi en gammal hederlig ipconfig.

powershell

Du kan även prova att pinga på Powershell-vis genom att använda Test-Connection.

Sammanfattning
Jag hoppas att dessa små cmdlets får dig att börja undersöka möjligheterna att använda Powershell i din dagliga nätverksadministration. Powershell kommer inom en snar framtid vara ditt enda val för att utföra dessa uppgifter så börja nu. Glöm inte dina två bästa vänner när det gäller att hitta Powershell-kommandon och deras möjligheter, Get-Help och google.com.
I nästa artikel kommer vi att titta närmare på Powershell och nätverk i Hyper-V.

Fakta

Befattning: Vd
Företag: ITCS Communication & Security
Linkedin: Magnus Eklöf
Twitter: @itcsmagnus
E-post: magnus.eklof@itcomsec.se
Hemsida: www.itcomsec.se
Expertområden: IT-säkerhet, företrädesvis inom Microsoft-världen, identitetshantering (IAM), cloud (Azure), nätverk, brandväggar.
Certifieringar: Äldre certifieringar såsom Novell CNE3, CNE4, Citrix CCA, SonicWALL CSSA, Clavister Firewall & VPN. Studerar för närvarande till CISSP.
Bakgrund: Designat, implementerat och driftat nätverk och servrar sedan 1990. Driver eget konsultbolag inom IT-säkerhet sedan 2007 med fokus på nätverk och identitetshantering.