PS C: WINDOWS> $hostip=[Sistema. Grynasis. DNS]::GetHostEntry(“www.reskit.net“)
![Įmontuoti tipai II dalis](/f/8a6cba9b4ce748efaa82676ab84989cc.jpg)
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: