Ved hjelp av Windows Server 2008 Powershell til å utføre felles nettverk commands

Det er ting vi gjør hver dag mens administrere våre Windows-nettverk, men hvis vi ble bedt om å gjøre dem fra kommandolinjen, i motsetning til de fleste Linux admins, ville de fleste av oss Windows-administratorer sliter . Windows har alltid vært svak når det gjelder å kommandolinje verktøy. Etter min mening har det endret seg med bruk av Windows Powershell. Powershell (eller PS som det kalles) kan gjøre så mange ting som ikke kan gjøres før. I denne artikkelen vil vi fokusere på hvordan Powershell kan hjelpe deg å utføre noen vanlige nettverksfunksjoner fra kommandolinjen. Les videre for å finne ut mer!

Hva er Powershell?

Powershell er en installerbar Feature
av Windows Server 2008. Hvis du vil installere Powershell, må du installere Powershell Feature i Add Features Wizard. Det tar bare et minutt eller så å installere og når den er installert, har du tilgang til en fantastisk kommandolinje skriptspråk. I motsetning til andre skriptspråk i Windows, er Powershell laget bare for oss systemadministratorer. Powershell bruker .NET og utnytter "cmdlets" (eller "kommando-lets") til å gjøre jobben sin. Som et PS bruker, kan du bruke cmdletene av seg selv, eller du kan koble dem sammen for å utføre mye kraftigere oppgaver

Når du har PS installert, bør du være i stand til å gå til Start -. ≫ Alle programmer - > Windows Powershell 1.0
, og klikk på Windows Powershell
. På dette punktet, bør du se en blå CLI vindu komme opp som ser slik ut:


Figur 1:
Windows Powershell Command Window

Du kan alltid fortelle du er i Powershell på grunn av "PS" på forsiden av hvert spørsmål, som dette:

PS C: \\ Users \\ Administrators

Nå som du har Powershell installert og har kommandovinduet opp, la meg vise deg noen vanlige nettverks oppgaver du vil utføre med PS.

List IP-adresser på Server

For å liste opp IP-adresser på Windows 2008 Server, vil du bruke denne kommandoen linje streng:

Get-WmiObject-Class Win32_NetworkAdapterConfiguration -Filter IPEnabled = TRUE -ComputerName. | Velg-Object-Eiendoms IPAddress

Her er hva resultatet ser ut på min Windows 2008 Server:


Figur 2:
Listing IP-adresse med Windows Powershell

Som du kan se, fra dette, viser utgangs oss at jeg har en adapter med en IP-adresse V4-adresse og en IP V6-adresse på denne Windows 2008 Server. Det i seg selv er ikke så fantastisk, men tror det du kan gjøre med dette når den kombineres med andre skript funksjoner.

Som Brukerveiledning for Powershell lærer oss, er utgangs en matrise, og du kan se IP-adresse bare ved å dirigere utgangen til "Select-Object" (etter invalid IPV6), som dette:

Get-WmiObject-Class Win32_NetworkAdapterConfiguration -Filter IPEnabled = TRUE -ComputerName. | Velg-Object -ExpandProperty IPAddress


Figur 3:
Listing IP-adresse KUN med Windows Powershell

Liste din nettverkskortet konfigurasjon med Powershell Anmeldelser

For å vise den grunnleggende konfigurasjonen av nettverkskortet, kan du bruke følgende kommando:

Get-WmiObject-Class Win32_NetworkAdapterConfiguration -Filter IPEnabled = TRUE -ComputerName
<. P> Selv om denne artikkelen fokuserer på å bruke PS i Windows Server 2008, det kan også brukes i Windows XP, Vista eller Server 2003. Faktisk, her er utvalget utgang av kommandoen over, gjort på min Windows XP arbeidsstasjon:


Figur 4:
Powershell viser nettverkskort konfigurasjon i Windows XP

pinging en datamaskin med Powershell

Mens PS kommandolinjen fortsatt kan utføre alle den vanlige Windows-kommandoer (som ping), er kraften i Powershell som du kan ta det utgang og enkelt endre den.

Her er et eksempel på hvordan det kan gjøres, høflighet av Windows Powershell bruksanvisning. I dette eksemplet er utgangen til Win32_PingStatus analysert ved hjelp Select-Object. I dette tilfellet, vil utgangen bare viser responstiden &Co. . statuskode

Her er kommandoen som ble brukt:

Get-WmiObject-Class Win32_PingStatus -Filter "Address = '127.0.0.1'» -ComputerName. | Velg-Object-Eiendoms Adresse respons, Status

Og her er resultatet på min Windows-maskin:


Figur 5:
Powershell-utgang viser ping status analyseres med Select-Object

Dele en mappe med Windows Powershell

Jeg skal være ærlig med deg. Bruke Powershell kommandoer er ikke alltid så lett som eksisterende Windows-kommandoer som du allerede er kjent med. Her er et eksempel

Følgende PS kommandoen vil dele en mappe på C: \\ temp som "davidtemp" og plassere en fin kommando på det.

(Get-WmiObject - . liste -ComputerName | Hvor-Object -FilterScript {$ _ Navn -eq "Win32_Share".}) InvokeMethod ("Create", ("C: \\ temp", "davidtemp", 0,25, "Davids Temp mappe". ))

På den annen side, kan du bare bruke den velprøvde kommandoen netto andel
, som dette:

netto andel davidtemp = C: \\ temp /bemerkning: «Davids Temp delte mappen"


Figur 6:
Powershell utgang vs tradisjonell netto kommando aksje

Legg merke til hvordan Powershell-kommandoen fungerte ikke selv, og ga meg en ekkel ser feil. Jeg prøvde det på Windows XP og Vista, og jeg var administrator av systemet.

På den annen side, kommandoen netto andel
var enkel og jobbet første gang jeg prøvde det. Så, mens jeg er her for å fortelle deg alt du kan gjøre med Powershell, ikke glem at Powershell kan kjøre alle dine tradisjonelle nettverk kommandoer Windows og i mange tilfeller vil de være lettere å bruke. Men vil du komme til et punkt der de tradisjonelle kommandoene ikke gjør alt som du trenger dem til å gjøre, og det er der Powershell vil trå til og redde dagen

Over Nettverk &.; Mer komplekse kommandoer

Igjen, hvis du bare kommer til å gjøre de mest grunnleggende nettverk admin kommandoer med Powershell, vil du sannsynligvis bli frustrert og ikke bruke det lenger. Det er fordi, som alle skriptspråk, det er en læringskurve.

Men når du kommer forbi som læringskurve, og lære å bruke den, får du alle de tidsbesparende og effektivitetsfordeler fra den nye språk du har lært.

Som du kanskje har lagt merke til i noen av de tidligere eksempler, ett av parametrene for de fleste Powershell kommandoer er "datamaskinnavn". Når vi setter punktum (".") Som datamaskinnavn, som er den lokale verten (vår datamaskin). Men vi kan også erstatte noen IP-adresse eller Windows datamaskinnavnet i domenet til å ikke bare bruke disse kommandoene på PC, men lage kraftige skript med Powershell som du kan kjøre på alle datamaskiner i nettverket.

For eksempel, her er en kommando som trekker en IP-adresse fra en Dell maskin over LAN:

Get-WmiObject-Class Win32_NetworkAdapterConfiguration -Filter IPEnabled = TRUE -ComputerName DELL9400 < .no>

Her er resultatene:


Figur 7:
Powershell er et resultat av å hente IP-adressen til ekstern PC

Og her er en "zoomet" grafikk viser bare relevant info:


Figur 8:
Lukk opp av Powershell er et resultat av å hente IP-adressen til ekstern PC

Så evnen til å handling på eksterne datamaskiner er en viktig funksjon i Powershell, men en annen viktig funksjon er muligheten til å filtrere utgang og kombinere lyd fra en kommando med en annen kommando

Ta en titt på dette eksempelet:.

< I> "127.0.0.1", "localhost", "research.microsoft.com" | Foreach-Object -Process {Get-WmiObject-Class Win32_PingStatus -Filter ("Address = '" + $ _ + »'») -ComputerName.} | Velg-Object-Eiendoms Adresse respons, Status

I dette eksempelet ble en liste gitt av IP-adresser og domenenavn. Denne listen ble transportert (sendt) til "foreach-objekt". På hver av disse "objekter" (IP-adresse /domenenavn), den "Get-WmiObject" PingStatus ble kjørt. . Utgangen av ping av hver av disse domenenavnene ble deretter analysert med "Select-Object" og bare adressen, responstider, og statuskodene der vist

Her er resultatet:


Figur 9:
Pinging hjelp av en liste ved å kombinere & piping utgang

Jeg tror at dette eksempelet viser noe av kraften i Powershell. Som du ser kan du sende og omdirigere input og output i alle forskjellige retninger for å oppnå systemet administrative mål.

Hva annet trenger jeg å vite?

Som jeg sa tidligere, kan du holde i tankene som er Powershell ikke bare kjøre på Windows Server 2008, men det kan også brukes i Windows XP, Vista og Server 2003. Powershell er gratis og rask å laste ned så det er bare om 6 MB. Alt du trenger å gjøre er å gå til Microsoft Windows Powershell nedlastingsside på denne nettadressen.

Sammendrag

Windows Powershell er ekstremt kraftig. Denne artikkelen kan ikke begynne å forklare alt det du kan gjøre med Powershell, men jeg håper at det gir deg en idé om hva som er mulig og inspirerer deg til å lære mer om Powershell. Stadig hver dag, det er nye bøker, klasser og tonnevis av nettsider som viser nytten av Powershell Windows-systemadministratorer. Med Windows admins blir så vant til å bruke den grafiske grensesnittet, vil det ta tid for Powershell til å bli vedtatt i selskaper der det ikke er umiddelbart nødvendig. Jeg tror at administratorene der ute vil bruke Powershell til å lage mye kortere skript som utfører visse funksjoner, men kan kombineres med andre skript for å gjøre mer komplekse funksjoner. Jeg ser frem til å se Powershell bli mer og mer tatt i bruk i Windows-butikker over hele verden!

Spesial Takk til Microsoft for sine kommandolinje eksempler finnes i Windows Powershell Brukerveiledning dokumentasjon. Anmeldelser