Geek Kool Õpi kasutama Remotingit PowerShellis
Üks parimaid omadusi, mida PowerShell pakub, on serverite kaugjuhtimine. See võimaldab isegi korraga hallata neid.
Lugege kindlasti seeria eelmisi artikleid:
- Lugege, kuidas Windowsi PowerShelli abil automatiseerida
- Õppimine kasutama Cmdleti PowerShellis
- Õppimine, kuidas kasutada objekte PowerShellis
- Vormindamine, filtreerimine ja võrdlemine PowerShellis
Ja hoia ülejäänud sarja jaoks terve nädal.
Mis on Remoting?
Teie serverite mahukas haldamine võib olla tüütu ja kui teil on olnud vaja enne IIS-i konfiguratsiooni muutmist 50 veebiserverisse, siis te teate, mida ma mõtlen. Need on sellised olukorrad, mil PowerShelli eemaldamine ja keele skriptimissuutlikkus võivad pääseda. Kasutades HTTP-d või turvalisemat HTTPS-i, saate PowerShelli eemaldamise abil saata käske võrgus olevasse kaugarvutisse. Seejärel käivitab masin käske ja saadab väljundi tagasi, mis omakorda kuvatakse ekraanil.
Lähme tehniliseks
PowerShelli Remotingi keskmes on üks Windows Service, Windows Remote Management või WinRM teenus, nagu see on teada. WinRM-i abil saate seadistada ühe või mitu seansi konfiguratsiooni (tuntud ka kui lõpp-punktid), mis on põhiliselt failid, mis sisaldavad teavet selle kohta, millist kogemust soovite oma kaugjuurdepääsuga PowerShelli eksemplari ühendada. Täpsemalt, saate kasutada seansi konfiguratsioonifaile, et määratleda, kes saab ja kes ei suuda ühendada eksemplariga, milliseid cmdlete ja skripte nad saavad käivitada, samuti seda, millist turvakonteksti sessiooni peab käima. WinRM teenuse abil seadistate ka kuulajad, kes kuulavad sissetulevaid PowerShelli päringuid. Need „kuulajad” võivad olla kas HTTP või HTTPS ja neid saab siduda ühe seadme IP-aadressiga. Kui avate PowerShelli ühenduse teise masinaga (tehniliselt tehakse see WS-MAN protokolli alusel, mis põhineb HTTP-l), seob ühendus ühe neist „kuulajatest”. "Kuulajad" on siis vastutavad liikluse saatmise eest vastava seansi konfiguratsioonifailiga seotud rakendusele; rakendus (tavaliselt PowerShell, kuid kui soovid, võib teil olla ka muid hostimisrakendusi), siis käivitab käsu ja edastab tulemused läbi „kuulaja” üle võrgu ja tagasi oma masinale.
Näita mulle, kuidas
Esimene asi, mida peate tegema, on võimaldada eemaldamist masinal, millega soovite ühendust luua. Seda saab teha järgmise toiminguga:
Enable-PSRemoting
Seejärel peate kõikidele küsimustele vastama jah. Rakenduse Enable-PSRemoting käivitamisel tehakse arvutisse mõned muudatused:
- WinRM-teenus käivitub.
- WinRM-teenus muutub käsitsi käivitamise režiimilt automaatseks.
- See loob HTTP-kuulaja, mis on seotud kõigi teie võrgukaartidega.
- See loob ka sissetuleva tulemüüri erandi WS-MAN protokolli jaoks.
- Loodakse mõned seansi vaikeseadistused
Kui kasutate operatsioonisüsteemi Windows 7 ja teie võrgukaardi asukoht on seatud avalikkusele, siis PowerShelli eemaldamine ei õnnestu. Selle parandamiseks lülitage lihtsalt kodu või töö võrgu asukohta. Teise võimalusena võite võrgukontrolli vahele jätta, kasutades järgmist:
Enable-PSRemoting -SkipNetworkProfileCheck
Soovitame siiski pigem muuta oma võrgu asukohta.
PowerShelli abil saab ühendada teise seadmega kaks võimalust. Üks on üks meetod, mis on väga sarnane SSH kasutamisega, ja seejärel on üks paljudest meetoditest.
PowerShelli seansi kasutamine
Esimene viis, kuidas ühendada PowerShelli abil kaugarvutiga, kasutab midagi, mida nimetatakse PowerShelli sessiooniks. Lihtsamalt öeldes saab seansi abil juhtida kaugarvutis käske interaktiivsel moel sama palju, nagu teie oma masinal. Seansi avamiseks sisestage lihtsalt järgmine:
Sisestage PSSession-arvutiarvuti nimi “Darlah”
Arve saab eesliite, mis tähistab masinat, millega te cmdletit käitate.
Siit võid tõesti kohelda nii, nagu sa istuksid kaugarvutis. Näiteks, kui soovite näha kõiki C-failil olevaid faile:
Get-ChildItem -Path C: \ t
Kui te tulete Linuxi taustast, võite mõelda selle ühe kuni ühe meetodi kasutamisele kui PowerShelli alternatiiv SSH-le.
Invoke-Command'i kasutamine
Teine võimalus, mida saate PowerShelli abil kaugarvutis kasutada, on Invoke-Command. Invoke-Command'i kasutamise eeliseks on asjaolu, et sama käsku saab samaaegselt mitmetel masinatel täita. Nagu te võite ette kujutada, on see eriti kasulik, kui soovite midagi sellist, mis on ürituste logide kogumine teie serveritest. Invoke-Command järgib järgmist süntaksit:
Invoke-Command -arvuti nimi Darlah, localhost -ScriptBlock Get-EventLog rakendus-uusim 2
Kuna käsk käivitatakse paralleelselt kõikides masinates, on teil vaja mõnda viisi näha, milline PC on antud tulemus. Seda saate teha, vaadates PSComputerName omadust.
Kui kasutate käsku Invoke-Command, ei ole teil enam objekte, mida võite gaasijuhtmes oodata. Näed, et PowerShell saaks kaugarvutist teavet oma masinale tagasi, vajavad nad mingit võimalust, et esindada objekte, mida juhtis kaugjuhtimispuldi väljunditel. Nendel päevadel tundub, et valitud viis esindada hierarhilist andmestruktuuri on XML-i kasutamine, mis tähendab, et kui sa annad käsu Invoke-Commandiga, on tulemused enne seadmesse tagasi saatmist XML-i jaoks seriaaliseeritud. Kui nad oma masinale tagasi jõuavad, siis nad deserializitakse tagasi objektiks; siin on see, et kui need on deserializeeritud, siis kõik meetodid, välja arvatud metoodika ToString (), et objekt oli sellest eemaldatud.
Märkus: Sellest reeglist on mõned erandid, näiteks võib enamik primitiivseid tüüpe nagu täisarvud deserializeerida selle meetoditega. Samuti on olemas protsess, mida nimetatakse rehüdratatsiooniks, kus mõningaid meetodeid saab lisada deserializeeritud objektidele. Lihtsalt olge ettevaatlik ja pidage meeles, et Get-Member on teie sõber.
Kodutöö
- Lugege Don Jonesi e-raamatu PowerShelli eemaldamise saladusi.