Geek skola: iemācieties lietot Remoting PowerShell

Satura rādītājs:

Geek skola: iemācieties lietot Remoting PowerShell
Geek skola: iemācieties lietot Remoting PowerShell

Video: Geek skola: iemācieties lietot Remoting PowerShell

Video: Geek skola: iemācieties lietot Remoting PowerShell
Video: How To Get Computer System Information Using PowerShell on Windows 10 - YouTube 2024, Maijs
Anonim
Viena no labākajām funkcijām PowerShell piedāvā iespēju attālināti vadīt savus serverus. Tas pat ļauj vienlaikus pārvaldīt to ķekarus.
Viena no labākajām funkcijām PowerShell piedāvā iespēju attālināti vadīt savus serverus. Tas pat ļauj vienlaikus pārvaldīt to ķekarus.

Noteikti izlasiet iepriekšējos sērijas rakstus:

  • Uzziniet, kā automatizēt Windows ar PowerShell
  • Mācīšanās lietot moduļus PowerShell
  • Mācīšanās kā lietot objektus PowerShell
  • Mācību formēšana, filtrēšana un salīdzināšana PowerShell

Un visu nedēļu pieskarieties atlikušajām sērijām.

Kas ir Remoting?

Jūsu serveru lielapjoma pārvaldība var būt apnicīga, un, ja jums agrāk bija jāizdara IIS konfigurācijas izmaiņas 50 tīmekļa serverī, jūs zināt, ko es domāju. Tie ir situācijas, kad PowerShell Remoting un valodas skriptu spējas var nonākt glābšanā. Izmantojot HTTP vai drošāku HTTPS, PowerShell Remoting ļauj jums nosūtīt komandas uz attālināto mašīnu tīklā. Pēc tam mašīna izpilda komandas un nosūta izeju atpakaļ uz jums, kas savukārt tiek parādīta ekrānā.

Let's Get tehniski

PowerShell Remoting pamatā ir viens Windows pakalpojums, Windows Remote Management vai WinRM pakalpojums, jo tas ir kļuvis zināms. Izmantojot WinRM, jūs varat iestatīt vienu vai vairākas sesijas konfigurācijas (zināmas arī kā beigu punkti), kas būtībā ir faili, kas satur informāciju par pieredzi, kuru vēlaties sniegt personai, kura savieno jūsu attālo PowerShell gadījumu. Konkrētāk, jūs varat izmantot sesijas konfigurācijas failus, lai noteiktu, kas var un kam nevar izveidot savienojumu ar konkrēto gadījumu, kādus cmdletus un skriptus, kurus tos var darbināt, kā arī kādam drošības kontekstam sesija jāuztur. Izmantojot WinRM pakalpojumu, jūs arī iestatāt "klausītāji", kas klausās ienākošos PowerShell pieprasījumus. Šie "klausītāji" var būt vai nu HTTP, vai HTTPS, un jūsu ierīcē var piesaistīt vienu IP adresi. Atverot PowerShell savienojumu ar citu mašīnu (tehniski tas tiek darīts, izmantojot WS-MAN protokolu, kas balstīts uz HTTP), savienojums tiek saistīts ar vienu no šiem "klausītājiem". Tad "klausītāji" ir atbildīgi par datplūsmas nosūtīšanu uz pieteikumu, kas saistīts ar atbilstošo sesijas konfigurācijas failu; lietojumprogrammu (parasti PowerShell, bet, ja vēlaties, var būt arī citas hostinga lietojumprogrammas), tad palaiž komandu un pārnes 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 tajā mašīna, ar kuru vēlaties izveidot savienojumu. To var izdarīt, palaižot sekojošo:

Enable-PSRemoting

Jums būs jāatbild uz "jā" visiem uzvedņiem. Kad palaižat Enable-PSRemoting, datorā tiek veiktas dažas izmaiņas:
Jums būs jāatbild uz "jā" visiem uzvedņiem. Kad palaižat Enable-PSRemoting, datorā tiek veiktas dažas izmaiņas:
  • Tiek startēts WinRM pakalpojums.
  • WinRM pakalpojums mainās no manuālā ieslēgšanās režīma uz automātisko.
  • Tas izveido HTTP klausītāju, kurš ir saistīts ar visām jūsu tīkla kartēm.
  • Tas arī izveido WS-MAN protokolu ārkārtas ugunsmūra izņēmumu.
  • Ir izveidotas dažas noklusējuma sesijas konfigurācijas

Ja izmantojat operētājsistēmu Windows 7 un tīkla kartes atrašanās vieta ir iestatīta uz Publiska, PowerShell Remoting iespējošana neizdosies. Lai to novērstu, 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:

Enable-PSRemoting –SkipNetworkProfileCheck

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

Izmantojot PowerShell, ir iespējams izveidot savienojumu ar citu ierīci. Ir viena pret vienu metodi, kas ir ļoti līdzīga SSH lietošanai, un tad ir viena no daudzām metodēm.

PowerShell sesijas izmantošana

Pirmais veids, kā pieslēgties attālajai mašīnai, izmantojot PowerShell, izmanto to, ko sauc par PowerShell sesiju. Vienkārši ielieciet sesiju, ļaujot interaktīvā veidā palaist komandas tālvadības iekārtā, tāpat kā jūs savā datorā. Lai atvērtu sesiju, vienkārši ierakstiet šādu:

Enter-PSSession –ComputerName “Darlah”

Uzvedne saņem prefiksu, kas nozīmē aparātu, ka jūs izmantojat cmdlet pret.
Uzvedne saņem prefiksu, kas nozīmē aparātu, ka jūs izmantojat cmdlet pret.
No šejienes jūs patiešām varat izturēties pret ātru darbību, it kā jūs sēdētu attālajā mašīnā. Piemēram, ja jūs vēlaties redzēt visus failus C: diskā, jūs varat to izdarīt vienkārši:
No šejienes jūs patiešām varat izturēties pret ātru darbību, it kā jūs sēdētu attālajā mašīnā. Piemēram, ja jūs vēlaties redzēt visus failus C: diskā, jūs varat to izdarīt vienkārši:

Get-ChildItem –Path C:

Ja jūs nākat no Linux fona, jūs varat iedomāties izmantot šo vienu uz vienu atkārtotas izmantošanas metodi kā PowerShell alternatīvu SSH.
Ja jūs nākat no Linux fona, jūs varat iedomāties izmantot šo vienu uz vienu atkārtotas izmantošanas metodi kā PowerShell alternatīvu SSH.

Izmantojot Invoke-Command

Otrs veids, kā jūs varat izmantot PowerShell attālajā datorā, ir, izmantojot Invoke-Command. Priekšrocība izmantot Invoke-Command nāk no fakta, ka jūs varat izpildīt to pašu komandu vairākām mašīnām vienlaicīgi. Kā jūs varat iedomāties, tas ir īpaši noderīgi, ja vēlaties kaut ko darīt, piemēram, savākt serveru notikumu žurnālus. Invoke-Command izpilda šādu sintaksi:

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

Tā kā komanda tiek izpildīta paralēli visās iekārtās, jums būs nepieciešams zināms veids, kā noskaidrot, kurš no datoriem ir iegūts no konkrētā rezultāta. To var izdarīt, aplūkojot īpašumu PSComputerName.
Tā kā komanda tiek izpildīta paralēli visās iekārtās, jums būs nepieciešams zināms veids, kā noskaidrot, kurš no datoriem ir iegūts no konkrētā rezultāta. To var izdarīt, aplūkojot īpašumu PSComputerName.
Kad jūs izmantojat Invoke-Command, jums vairs nav objektu, ko jūs varētu sagaidīt Pipeline. Redzējāt, lai PowerShell varētu saņemt informāciju no attālinātās ierīces atpakaļ uz jūsu ierīci, tiem ir nepieciešams veids, kā pārstāvēt objektus, kurus komanda izpilda uz attālinātās iekārtas izejām. Šodien šķiet, ka izvēlētais veids, kā pārstāvēt hierarhisku datu struktūru, ir XML izmantošana, tas nozīmē, ka, izsniedzot komandu, izmantojot komandu Invoke-Command, rezultāti tiek sērijalizēti XML sistēmā, pirms tie tiek nosūtīti atpakaļ uz jūsu datoru.Kad viņi atgriežas pie savas mašīnas, tie tiek deserializēti atpakaļ objektā; Šajā gadījumā gotcha ir tas, ka tad, kad tie tiek deserializēti, visas metodes, izņemot ToString () metodi, ka objekts tika noņemts no tā.
Kad jūs izmantojat Invoke-Command, jums vairs nav objektu, ko jūs varētu sagaidīt Pipeline. Redzējāt, lai PowerShell varētu saņemt informāciju no attālinātās ierīces atpakaļ uz jūsu ierīci, tiem ir nepieciešams veids, kā pārstāvēt objektus, kurus komanda izpilda uz attālinātās iekārtas izejām. Šodien šķiet, ka izvēlētais veids, kā pārstāvēt hierarhisku datu struktūru, ir XML izmantošana, tas nozīmē, ka, izsniedzot komandu, izmantojot komandu Invoke-Command, rezultāti tiek sērijalizēti XML sistēmā, pirms tie tiek nosūtīti atpakaļ uz jūsu datoru.Kad viņi atgriežas pie savas mašīnas, tie tiek deserializēti atpakaļ objektā; Šajā gadījumā gotcha ir tas, ka tad, kad tie tiek deserializēti, visas metodes, izņemot ToString () metodi, ka objekts tika noņemts no tā.
Image
Image

Piezīme. Šim noteikumam ir daži izņēmumi, piemēram, lielāko daļu primitīvo tipu, piemēram, veseli skaitļi, var deserializēt ar iekļautajām metodēm. Ir arī process, ko sauc par rehidratāciju, kur dažas metodes var pievienot atpakaļ deserializētiem objektiem. Tātad, esi uzmanīgs un atcerieties, Get-loceklis ir tavs draugs.

Mājasdarbs

Lasiet Don Jonesa PowerShell Remoting e-grāmatas noslēpumus.

Ieteicams: