Įmontuoti tipai II dalis

PS C: WINDOWS> $hostip=[Sistema. Grynasis. DNS]::GetHostEntry(“www.reskit.net“)

Įmontuoti tipai II dalis

PS C: WINDOWS> $hostip.hostname

www.reskit.net

PS C: WINDOWS> $hostip.addresslist

IPAddressToString: 213.254.189.191

Adresas: 3216899797

AdresasŠeima: Internetinis tinklas

ScopeId :

IsIPv6Multicast: klaidinga

IsIPv6LinkLocal: klaidinga

IsIPv6SiteLocal: klaidinga

Šiame pavyzdyje pavadinau sistemos metodą GetHostName. Grynasis. Dns klasė, kuri paima vieną eilutės argumentą (išspręstą pagrindinio kompiuterio pavadinimą) ir grąžina vieną ar daugiau IPHostEntry objektų, po vieną kiekvienam rastam IP adresui; šiuo atveju tik vienas, kuris tada buvo rodomas. Atkreipkite dėmesį į sintaksę, naudojamą statinio GetHostName metodo iškvietimui: visą klasės pavadinimą turite įtraukti į laužtinius skliaustus, po kurių du dvitaškiai, tada metodo pavadinimas ir skliaustų rinkinys, tuščias () arba su kableliais atskirtais parametrais, jei daugiau nei vienas. Taigi, skambinant Sistema. Grynasis. DNS.GetHostByAddress būtų atlikta taip:

PS C: WINDOWS> [Sistema. Grynasis. Dns]::GetHostByAddress(“207.46.19.190″) | ft * -auto

HostName slapyvardžiai AddressList

——– ——- ———–

wwwbaytest1.microsoft.com {} {207.46.19.190}

Šis žodinis skambinimo susitarimas kartu su poreikiu išrašyti klasių pavadinimus tampa šiek tiek varginantis ir iš pradžių nėra akivaizdus. Manau, kad tai tik dalis dalykų, kuriuos turite žinoti, kad galėtumėte pasinaudoti .NET Framework naudojant PowerShell.

Taigi, kaip pasinaudotumėte šia funkcija? Viena iš galimybių yra sukurti sistemos stebėjimo scenarijų. Galite sukurti kableliais atskirtų reikšmių (CSV) failą su pagrindinio kompiuterio pavadinimais ir jų statiniais IP adresais, o tada scenarijus galėtų tai nuskaityti. failą ir pritaikykite funkciją GetHostByAddress, kad nustatytumėte tikrąjį IP adresą, šiuo metu įrašytą DNS, pranešant apie bet kokius neatitikimų. Galite išplėsti šią programą naudodami sistemą. Grynasis. Tinklo informacija. Ping klasė, kad iš tikrųjų išsiųstų ping kiekvieną pagrindinį kompiuterį, naudojant metodą Send (), kaip parodyta čia:

$hostname ="www.reskit.net

$pingSender = naujo objekto sistema. Grynasis. Tinklo informacija. Ping

$atsakymas = $PingSender. Siųsti ($hostname)

# Spausdinti rezultatus

„Pagrindinio kompiuterio pavadinimas {0}“ -f $hostname

"Adresas: {0}" -f $atsakyti. Adresas. ToString()

„RoundTrip time: {0}“ -f $reply. Pirmyn ir atgal laikas

„Laikas gyventi: {0}“ -f $atsakyti. Galimybės. Ttl

„Neskirstyti: {0}“ -f $atsakyti. Galimybės. Dont Fragment

„Buferio dydis: {0}“ -f $atsakyti. Buferis. Ilgis

Jūsų būklės stebėjimo scenarijus dabar gali paimti prieglobos failą, atlikti ping kiekvieną iš jų ir paryškinti bet kurį serverį, kurio RTT yra per didelis arba kuris nereaguoja į ping.

Dar du .NET klasės bibliotekų komponentai, su kuriais kartais susidursite, yra laukai ir sąrašai arba Enums. Laukas yra konstanta, kurią teikia .NET Framework, vienas gerai žinomas matematinis pavyzdys yra pi, pateikta sistemoje. Matematinės vardų erdvė:

PS C: WINDOWS> [vienas] $pi1 = [sistema.math]::pi

PS C: WINDOWS> [dvigubas] $pi2 = [sistema.math]::pi

PS C: WINDOWS> $pi1, $pi2

3.141593

3.14159265358979

Kaip matysite iš šio pavyzdžio, .NET Framework pateikia ir dvigubo, ir vieno tikslumo konstantas.

Sąrašai yra vienodai šaunūs sistemos komponentai. Tam tikriems .NET klasės metodams reikalingi parametrai, kuriuos reikia pasirinkti iš tam tikro rinkinio: pavyzdžiui, galite naudoti sistemą. Konsolė. Fono spalva ir sistema. Konsolė. ForegroundColor, kad nustatytumėte atitinkamai konsolės fono ir priekinio plano spalvas. Tokie metodai naudoja kaip parametrą spalvos pavadinimą, todėl, pavyzdžiui, norėdami konsolėje nustatyti baltus simbolius mėlyname fone, turite nurodyti: