Domača » kako » Geek School Naučite se uporabljati oddajanje v PowerShell

    Geek School Naučite se uporabljati oddajanje v PowerShell

    Ena izmed najboljših funkcij, ki jih ponuja PowerShell, je zmožnost oddaljenega upravljanja strežnikov. Omogoča vam tudi upravljanje z njimi naenkrat.

    Preberite prejšnje članke v seriji:

    • Naučite se avtomatizirati Windows s PowerShell
    • Učenje uporabe ukaznih vrstic v PowerShell
    • Učenje uporabe objektov v programu PowerShell
    • Učenje oblikovanja, filtriranja in primerjave v programu PowerShell

    In ostanite z nami do konca tedna.

    Kaj je oddajanje?

    Množično upravljanje vaših strežnikov je lahko dolgočasno, in če ste morali spremeniti konfiguracijo IIS na 50 spletnih strežnikih, boste vedeli, kaj mislim. To so vrste situacij, pri katerih lahko pride do reševanja PowerShell Remoting in sposobnosti skriptnega jezika. Če uporabljate HTTP ali varnejši HTTPS, vam PowerShell Remoting omogoča pošiljanje ukazov oddaljenemu računalniku v omrežju. Naprava nato zažene ukaze in pošilja izhod nazaj k vam, kar je nato prikazano na zaslonu.

    Let's Get Technical

    V središču delovanja PowerShell Remoting je ena storitev Windows, oddaljeno upravljanje Windows ali storitev WinRM, kot je postalo znano. Z uporabo programa WinRM lahko nastavite eno ali več konfiguracij seje (imenovanih tudi končne točke), ki so v bistvu datoteke, ki vsebujejo informacije o izkušnji, ki jo želite zagotoviti osebi, ki se povezuje z oddaljenim primerom PowerShell. Natančneje, lahko uporabite konfiguracijske datoteke seje, da določite, kdo se lahko in kdo ne more povezati s primerkom, katere cmdletke in skripte lahko tečejo, pa tudi, v kakšnem varnostnem kontekstu mora biti seja opravljena. S storitvijo WinRM nastavite tudi »poslušalce«, ki poslušajo dohodne zahteve za PowerShell. Ti »poslušalci« lahko bodisi HTTP ali HTTPS in so lahko vezani na en naslov IP na vaši napravi. Ko odprete povezavo PowerShell z drugim računalnikom (tehnično to storite z uporabo protokola WS-MAN, ki temelji na HTTP), se povezava poveže z enim od teh »poslušalcev«. "Poslušalci" so nato odgovorni za pošiljanje prometa aplikaciji, ki je povezana z ustrezno konfiguracijsko datoteko seje; aplikacija (običajno PowerShell, vendar lahko imate druge aplikacije za gostovanje, če želite) nato zažene ukaz in pošlje rezultate nazaj skozi »poslušalca« prek omrežja in nazaj na vaš računalnik.

    Pokaži mi kako

    Prva stvar, ki jo boste morali storiti, je omogočiti oddajanje na napravi, s katero se želite povezati. To je mogoče storiti z izvajanjem naslednjega:

    Omogoči PSRemoting

    Nato boste morali odgovoriti z da na vse pozive. Ko zaženete možnost Enable-PSRemoting, se v računalniku izvede nekaj sprememb:

    • Zažene se storitev WinRM.
    • Storitev WinRM Service se preklopi iz načina ročnega zagona na samodejno.
    • Ustvari poslušalca HTTP, ki je vezan na vse vaše omrežne kartice.
    • Prav tako ustvari izjemo vhodnega požarnega zidu za protokol WS-MAN.
    • Ustvari se nekaj privzetih konfiguracij seje

    Če uporabljate operacijski sistem Windows 7 in je lokacija vaše omrežne kartice nastavljena na Javno, omogočanje prenosa moči PowerShell ne bo uspelo. Če jo želite popraviti, preprosto preklopite na domačo ali delovno omrežje. Lahko pa preskočite preverjanje omrežja z naslednjim:

    Omogoči-PSRemoting -SkipNetworkProfileCheck

    Priporočamo pa, da raje spremenite omrežno lokacijo.

    S PowerShellom se lahko povežete z drugim računalnikom na dva načina. Na voljo je ena na ena metoda, ki je zelo podobna uporabi SSH, in potem je tu še ena do več načinov.

    Uporaba seje PowerShell

    Prvi način za povezovanje z oddaljenim računalnikom z uporabo PowerShellja je nekaj, kar se imenuje PowerShell Session. Preprosto povedano seja vam omogoča, da poganjate ukaze na oddaljeni napravi na interaktivni način, zelo enako kot na svojem računalniku. Če želite odpreti sejo, vnesite naslednje:

    Vnesi-PSSession -Ime računalnika »Darlah«

    Poziv bo dobil predpono, ki pomeni stroj, proti kateremu upravljate cmdlet.

    Tukaj lahko resnično obravnavate poziv, kot če bi sedeli na oddaljenem računalniku. Na primer, če želite videti vse datoteke na disku C: lahko naredite preprosto:

    Get-ChildItem -Path C: \ t

    Če prihajate iz ozadja Linuxa, lahko uporabite to metodo za eno od načinov oddaljenega oddajanja kot alternativo PowerShell za SSH.

    Uporaba funkcije Invoke-Command

    Drugi način, s katerim lahko PowerShell uporabljate na oddaljenem računalniku, je uporaba funkcije Invoke-Command. Prednost uporabe Invoke-Command izhaja iz dejstva, da lahko isti ukaz izvršite na več računalnikih hkrati. Kot si lahko predstavljate, je to še posebej uporabno, če želite narediti nekaj takega, kot zbiranje dnevnikov dogodkov s strežnikov. Invoke-Command sledi naslednji sintaksi:

    Invoke-Command -ComputerName Darlah, localhost -ScriptBlock aplikacija Get-EventLog -Newest 2

    Ker je ukaz izveden vzporedno na vseh strojih, boste potrebovali način, s katerim boste videli, iz katerega računalnika je bil dan določen rezultat. To lahko storite tako, da pogledate lastnost PSComputerName.

    Ko uporabljate ukaz Invoke-Command, nimate več predmetov, ki jih lahko pričakujete v cevovodu. Vidite, da bi PowerShell podatke iz oddaljenega računalnika vrnil v računalnik, potrebujejo način predstavitve objektov, ki jih je naredil ukaz na oddaljenih napravah. Danes se zdi, da je izbrani način predstavljanja hierarhične podatkovne strukture uporaba XML, kar pomeni, da, ko izdate ukaz z uporabo funkcije Invoke-Command, se rezultati najprej serijsko razširijo v XML, preden se pošljejo nazaj na vaš računalnik. Ko se vrnejo k vaši napravi, se deserialized nazaj v predmet; Gotcha tukaj je, da ko so deserialized, vse metode, razen ToString () metoda, da je predmet je bil odstranjen iz njega \ t.

    Opomba: Obstaja nekaj izjem od tega pravila, na primer več primitivnih tipov, kot so cela števila, lahko deserializirate z vključenimi metodami. Obstaja tudi proces, imenovan Rehidracija, kjer lahko nekatere metode dodamo nazaj v deserizirane objekte. Zato bodite previdni in se spomnite, da je Get-Member vaš prijatelj.

    Domača naloga

    • Preberite Secrets of PowerShell Remont ebook by Don Jones.