Mājas lapa » » Geek skola Uzziniet, kā lietot Remoting PowerShell

    Geek skola Uzziniet, kā lietot Remoting PowerShell

    Viens no labākajiem PowerShell piedāvājumiem ir spēja attālināti pārvaldīt savus serverus. Tas pat ļauj jums pārvaldīt ķekars arī uzreiz.

    Noteikti izlasiet iepriekšējos sērijas rakstus:

    • Uzziniet, kā automatizēt Windows ar PowerShell
    • Mācīšanās lietot Cmdlet PowerShell
    • Mācīšanās lietot objektus PowerShell
    • Mācību formatēšana, filtrēšana un salīdzināšana programmā PowerShell

    Un visu nedēļu palieciet pārējo sēriju.

    Kas ir Remoting?

    Jūsu serveru lielapjoma pārvaldība var būt garlaicīga, un, ja jums iepriekš bija jāizdara IIS konfigurācijas maiņa 50 tīmekļa serveros, jūs zināt, ko es domāju. Tās ir situācijas, kad PowerShell Remoting un valodas skriptu spēja var tikt glābta. Izmantojot HTTP vai drošāku HTTPS, PowerShell Remoting ļauj jums nosūtīt komandas uz tālvadības iekārtu jūsu tīklā. Pēc tam mašīna vada komandas un nosūta izvadi atpakaļ, kas savukārt tiek parādīts ekrānā.

    Let's Get Tehniskie

    PowerShell Remoting pamatā ir viens Windows pakalpojums, Windows attālā pārvaldība vai WinRM pakalpojums, kā tas ir zināms. Izmantojot WinRM, jūs varat iestatīt vienu vai vairākas sesijas konfigurācijas (pazīstamas arī kā galapunkti), kas būtībā ir faili, kas satur informāciju par pieredzi, kuru vēlaties sniegt personai, kas savieno tālvadības PowerShell instanci. Konkrētāk, varat izmantot sesijas konfigurācijas failus, lai noteiktu, kas var un kurš nevar izveidot savienojumu ar instanci, kādi cmdlet un skripti var darboties, kā arī to, kādam drošības kontekstam sesijai ir jādarbojas. Izmantojot WinRM pakalpojumu, jūs arī iestatāt “klausītājus”, kas klausās ienākošos PowerShell pieprasījumus. Šie “klausītāji” var būt vai nu HTTP, vai HTTPS, un tie var būt saistīti ar vienu IP adresi jūsu ierīcē. Atverot PowerShell savienojumu ar citu mašīnu (tehniski tas tiek darīts, izmantojot WS-MAN protokolu, kura pamatā ir HTTP), savienojums piesaista vienu no šiem “klausītājiem”. Tad “klausītāji” ir atbildīgi par satiksmes nosūtīšanu uz programmu, kas saistīta ar atbilstošo sesijas konfigurācijas failu; lietojumprogramma (parasti PowerShell, bet, ja vēlaties, jums var būt citas hostinga lietojumprogrammas), tad palaiž komandu un padara rezultātus atpakaļ caur “klausītāju” visā tīklā un atpakaļ uz jūsu ierīci.

    Parādi man kā

    Pirmā lieta, kas jums jādara, ir iespējot Remoting ierīcē, ar kuru vēlaties izveidot savienojumu. To var izdarīt, rīkojoties šādi:

    Iespējot-PSRemoting

    Tad jums būs jāatbild uz visiem uzvedumiem. Palaidot Enable-PSRemoting, datorā tiek veiktas dažas izmaiņas:

    • Sākas WinRM pakalpojums.
    • WinRM pakalpojums mainās no Manuālās palaišanas režīma uz Automātiski.
    • Tas rada HTTP klausītāju, kas ir saistīts ar visām jūsu tīkla kartēm.
    • Tas arī izveido ievades ugunsmūra izņēmumu WS-MAN protokolam.
    • Tiek izveidotas dažas noklusējuma sesijas konfigurācijas

    Ja izmantojat operētājsistēmu Windows 7 un jūsu tīkla kartes atrašanās vieta ir iestatīta uz Publisks, PowerShell Remoting tiks iespējota. Lai to labotu, vienkārši pārslēdzieties uz mājas vai darba tīkla atrašanās vietu. Varat arī izlaist tīkla pārbaudi, izmantojot sekojošo:

    Iespējot-PSRemoting -SkipNetworkProfileCheck

    Tomēr mēs iesakām drīzāk mainīt tīkla atrašanās vietu.

    Pastāv divi veidi, kā savienot ar citu ierīci, izmantojot PowerShell. Ir viena līdz viena metode, kas ir ļoti līdzīga SSH izmantošanai, un tad tur ir viena metode.

    Izmantojot PowerShell sesiju

    Pirmais veids, kā izveidot savienojumu ar attālo mašīnu, izmantojot PowerShell, izmanto kaut ko, ko sauc par PowerShell sesiju. Vienkārši runājot, sesija ļauj darbināt komandas uz attālās mašīnas interaktīvā veidā, tāpat kā jūs savā datorā. Lai atvērtu sesiju, vienkārši ierakstiet:

    Ievadiet-PSSession -DatoruName “Darlah”

    Uzvedne iegūs prefiksu, kas nozīmē, ka mašīna darbojas pret cmdlet.

    No šejienes jūs patiešām varat izturēties pret ātrumu, it kā jūs sēdētu pie attālās mašīnas. Piemēram, ja vēlaties redzēt visus failus C: \ t

    Get-ChildItem-C ceļš: \ t

    Ja nāk no Linux fona, jūs varat iedomāties, ka šo vienu līdz vienu metodi var izmantot kā PowerShell alternatīvu SSH.

    Izmantojot Invoke-Command

    Otrs veids, kā jūs varat izmantot PowerShell tālvadības ierīcē, ir izmantot Invoke-Command. Priekšrocība, izmantojot Invoke-Command, nāk no tā, ka jūs varat izpildīt to pašu komandu vairākās iekārtās vienlaicīgi. Kā jūs varat iedomāties, tas ir īpaši noderīgi, ja vēlaties kaut ko darīt, piemēram, apkopot notikumu žurnālus no saviem serveriem. Invoke-Command seko šādai sintaksei:

    Ielūgt-komandu -ComputerName Darlah, localhost -ScriptBlock Get-EventLog Application -Newest 2

    Tā kā komanda tiek izpildīta paralēli visās mašīnās, jums būs nepieciešams kaut kāds veids, lai redzētu, kurš PC ir iegūts. To var izdarīt, apskatot PSComputerName rekvizītu.

    Kad jūs izmantojat Invoke-Command, jums vairs nav objekti, kurus jūs varētu sagaidīt cauruļvadā. Jūs redzat, lai PowerShell varētu saņemt informāciju no attālās mašīnas atpakaļ jūsu datorā, viņiem ir nepieciešams kaut kāds veids, kā attēlot objektus, kurus komandai, kuru jūs darbojāt ar attāliem mašīnu izvadiem. Šajās dienās šķiet, ka izvēlētais veids, kā attēlot hierarhisku datu struktūru, ir izmantot XML, kas nozīmē, ka, izsniedzot komandu, izmantojot Invoke-Command, rezultāti vispirms tiek XML formātā pirms nosūtīšanas atpakaļ uz jūsu ierīci. Kad viņi atgriežas pie jūsu mašīnas, tie tiek deserializēti atpakaļ objektā; šeit ir tas, ka tad, kad tie ir deserializēti, visas metodes, izņemot metodi ToString (), ka objekts tika noņemts no tā.

    Piezīme. Šim noteikumam ir daži izņēmumi, piemēram, lielākā daļa primitīvo tipu, piemēram, veseli skaitļi, var tikt atdalīti ar tās metodēm. Pastāv arī process, ko sauc par hidratāciju, kur dažas metodes var pievienot atpakaļ deserializētiem objektiem. Tāpēc esiet uzmanīgi un atcerieties, ka Get-Member ir jūsu draugs.

    Mājasdarbs

    • Lasiet PowerShell Remoting noslēpumus ebook by Don Jones.