6Sep

Geeki kool: õppida kasutama Remoting PowerShellis

Üks parimaid funktsioone PowerShelli pakkumised on võimalus hallata servereid kaugjuhtimisega. See võimaldab teil isegi korraga hallata ka neid.

Kindlasti loe eelnevaid sarja artikleid:

  • Õppige Windowsi automatiseerimine PowerShelli
  • -ga Õppige kasutama PowerShellis olevaid kommuteid
  • Õppige PowerShellis kasutama Objekte
  • Õppides vormindamine, filtreerimine ja võrdlemine PowerShellis

ja hoidke häälestusesülejäänud seeria kogu nädala.

Mis on Remoting?

Teie serverite massihaldus võib olla tüütu ja kui teil on varem vaja teha IIS-i konfiguratsiooni muutusi 50 veebiserveril, siis teate, mida ma mõtlen. Need on olukorrad, kus PowerShelli Remoting ja keele skriptimisvõimalused võivad pääseda. Kasutades HTTP-d või turvalisemat HTTPS-i, võimaldab PowerShelli Remoting teil käskude saatmine kaugvõrgu masinasse. Seejärel käivitab masin käsud ja saadab teile väljundi, mis kuvatakse teie ekraanil omakorda.

Let's Get Technical

PowerShell Remotingi keskmes on üks Windowsi teenus, Windows Remote Management või WinRM teenus, nagu see on teada saanud. WinRM-i abil saate seadistada ühte või enamat seansi konfiguratsiooni( tuntud ka kui lõpp-punktid), mis on põhimõtteliselt faile, mis sisaldavad teavet selle kohta, millist kogemust soovite oma kaugseiresüsteemi PowerShelliga ühendava inimesega pakkuda. Täpsemalt võite kasutada seansifondi konfiguratsioonifaile, et määratleda, kes saab ja kes ei saa ühendust eksemplariga, milliseid käskude ja skripte nad saavad käivitada, samuti millist julgeolekukonteksti tuleb seanss käitada. Kasutades WinRM-i teenust, seadisite ka "kuulajatele", kes kuulavad sissetulnud PowerShelli päringuid. Need "kuulajad" võivad olla nii HTTP kui ka HTTPS-id ning võivad seostuda teie arvuti üheainsa IP-aadressiga. Kui avate PowerShelli ühenduse teise masinaga( tehniliselt toimub see WS-MAN protokolli abil, mis põhineb HTTP-l), seob seos ühega nendest "kuulajatest".Seejärel vastutavad "kuulajad" liikluse saatmisega rakendusele, mis on seotud sobiva seansi konfiguratsioonifailiga;rakendus( tavaliselt PowerShell, kuid kui sul on muid hostimise rakendusi), siis käivitab käskluse ja annab tulemusi läbi kogu kuulaja võrgu kaudu ja tagasi oma masinasse.

Näita mulle, kuidas

Esimene asi, mida peate tegema, on võimaldada masinas, kuhu soovite ühenduse luua, Remoting. Seda saab teha, käivitades järgmisi toiminguid:

Enable-PSRemoting

Peate seejärel vastama jaama kõikidele juhistele. Kui käivitate Enable-PSRemoting, tehakse arvutis mõned muudatused:

  • WinRM Service käivitub.
  • WinRM-teenus muutub Käsitsi käivitamise režiimilt Automaatne.
  • See loob HTTP-kuulaja, mis on seotud kõigi teie võrgukaartidega.
  • See loob ka sissetuleva tulemüüri erandi WS-MANi protokollile.
  • Mõned vaikimisi seansside konfiguratsioonid luuakse

Kui kasutate Windows 7 ja võrgukaardi asukoht on seatud avalikuks, siis PowerShelli Remotingi lubamine ebaõnnestub. Selle parandamiseks lülitage lihtsalt sisse Kodu või Töövõrgu asukoht. Teise võimalusena võite võrgukontrolli vahele jätta järgmiste vahenditega:

Enable-PSRemoting -SkipNetworkProfileCheck

Siiski soovitame pigem muuta oma võrgu asukohta.

PowerShelliga on võimalik ühendada teise masinaga kaks võimalust. Siin on üks kuni üks meetod, mis on väga sarnane SSH-i kasutamisele, ja siis on see üks paljudest meetoditest.

PowerShelli seansi kasutamine

Esimene viis PowerShelliga ühendatud kaugseadmesse ühendamiseks kasutab PowerShelli seanssi. Lihtsalt postitatud seanss võimaldab teil käivitada kaugarvuti käsud interaktiivsel moel palju sama, mis teie arvutis. Sessiooni avamiseks sisestage lihtsalt järgmine:

Enter-PSSession -ComputerName "Darlah"

Kiire saab prefiksi, mis tähistab masinat, et käidate cmdletit vastu.

Siit saate tõesti koheselt käituda nii nagu oleksite kaugarvutis istuval kohal. Näiteks, kui soovite näha kõiki C: \ kettale salvestatud faile, võite teha lihtsat:

Get-ChildItem -Path C: \

Kui tulete Linuxi taustast, siis võite mõelda, et kasutate seda üks-ühele turvamismeetodile PowerShelli alternatiivina SSH-ile.

Kasutades invokeerimiskäsku

Teine võimalus PowerShelli kasutamiseks kaugarvutis on käsku Invoke-Command. Juurdepääs käsku Invoke käsku tuleneb asjaolust, et sama käsu saab samaaegselt käitada mitmel masinal. Nagu võite ette kujutada, on see eriti kasulik, kui soovite midagi teha, et koguda sündmuste logi oma serveritest. Käsku käsk järgib järgmist süntaksi:

Invoke-Command -ComputerName Darlah, localhost -ScriptBlock{ Get-EventLog Application -Newest 2}

Kuna käsu käivitamine toimub paralleelselt kõigi masinatega, on teil vaja mõnda moodi näha, milline arvutiantud tulemus tulenes. Seda saate teha, vaadates PSComputerName'i vara.

Kui kasutate käsku Invoke, ei ole enam selliseid objekte, mida te pipeljonis võiksite oodata. Näete, et PowerShell saaks kaugarvutisse teabe teie arvutisse tagasi saada, peavad nad teatud viisil näitama objekte, mis käivituvad serveri väljunditel. Tänapäeval tundub, et valitud hierarhiaalsete andmete struktuuri esitamise viisiks on kasutada XML-i, mis tähendab, et kui käsk käsku käivitada, kasutades käsku Invoke, käivitatakse tulemused enne XML-i saatmist teie masinasse. Kui nad teie masinasse naasta, deserialiseeritakse nad tagasi objektiks;siin on see, et kui nad on deserialiseeritud, on kõik meetodid, välja arvatud ToString() meetod, et objekt oli sellest eemaldatud.

Märkus. Sellest reeglist on mõned erandid, näiteks enamus primitiivseid tüüpe, nagu täisarvud, võib deserialiseerida koos kaasatud meetoditega. On olemas ka protsess, mida nimetatakse rehüdratsiooniks, kus mõned meetodid saab tagasi deserialiseeritud objektidesse tagasi viia. Nii et ole ettevaatlik ja mäletan, et Get-liige on sinu sõber.

Kodutöö

  • Lugege Don Jonesi PowerShelli Remotingi e-raamatu saladusi.