"Geek" mokykla: išmokti naudoti "Remoting" "PowerShell"

Turinys:

"Geek" mokykla: išmokti naudoti "Remoting" "PowerShell"
"Geek" mokykla: išmokti naudoti "Remoting" "PowerShell"

Video: "Geek" mokykla: išmokti naudoti "Remoting" "PowerShell"

Video:
Video: Kaip gauti kompiuterio sistemos informaciją naudojant „PowerShell“ sistemoje „Windows 10“. 2024, Balandis
Anonim
Viena iš geriausių "PowerShell" funkcijų - tai galimybė nuotoliniu būdu tvarkyti serverius. Tai net leidžia jums valdyti jų krūva iš karto taip pat.
Viena iš geriausių "PowerShell" funkcijų - tai galimybė nuotoliniu būdu tvarkyti serverius. Tai net leidžia jums valdyti jų krūva iš karto taip pat.

Būtinai perskaitykite ankstesnius serijos straipsnius:

  • Sužinokite, kaip automatizuoti "Windows" su "PowerShell"
  • Mokytis naudotis "PowerShell" kompiliacijomis
  • Mokymasis naudoti objektus PowerShell
  • Mokymosi formatavimas, filtravimas ir palyginimas PowerShell

Ir visada sekite visą seriją likusiai savaitę.

Kas yra Remoting?

Masinis serverių valdymas gali būti varginantis, ir jei anksčiau turėtumėte padaryti IIS konfigūracijos pakeitimą 50 žiniatinklio serverių, jūs sužinosite, ką aš turiu omenyje. Tai tokios situacijos, kai "PowerShell Remoting" ir kalbos scenarijaus gebėjimai gali padėti gelbėti. Naudodamiesi HTTP ar saugesniu HTTPS, "PowerShell Remoting" leidžia siųsti komandas nuotoliniame kompiuteryje jūsų tinkle. Tada mašina paleidžia komandas ir siunčia produkciją atgal jums, kuri savo ruožtu rodoma ekrane.

Let's Get Technical

"PowerShell Remoting" branduolyje yra viena "Windows" paslauga, "Windows" nuotolinis valdymas arba "WinRM" paslauga, nes ji tapo žinoma. Naudodami WinRM galite nustatyti vieną ar daugiau seanso konfigūracijų (taip pat žinomų kaip galutiniai taškai), kurie iš esmės yra failai, kuriuose yra informacijos apie patirtį, kurią norite suteikti asmeniui, jungiančiam jūsų nuotolinį "PowerShell" egzempliorių. Konkrečiau, galite naudoti seansų konfigūravimo failus, norėdami nustatyti, kas gali ir kas negali prisijungti prie egzemplioriaus, kokias cmdletus ir scenarijus jie gali paleisti, taip pat kokį saugumo kontekstą turi būti vykdomas seansas. Naudodamiesi WinRM paslauga, jūs taip pat nustatote "klausytojus", kurie klauso gaunamų "PowerShell" užklausų. Šie "klausytojai" gali būti HTTP arba HTTPS ir gali būti susiję su vienu IP adresu jūsų kompiuteryje. Kai atidarote "PowerShell" ryšį su kitu įrenginiu (techniškai tai atliekama naudojant WS-MAN protokolą, pagrįstą HTTP), ryšys susieja vieną iš šių "klausytojų". Tada "klausytojai" atsako už srauto siuntimą į programą, susijusią su atitinkamu sesijos konfigūracijos failu; programa (paprastai PowerShell, bet jūs galite turėti kitas prietaikų programas, jei norite), paleidžia komandą ir perduoda rezultatus per "klausytoją" visame tinkle ir atgal į savo kompiuterį.

Parodyk man kaip

Pirmas dalykas, kurį reikės atlikti, yra įgalinti "Remoting" įrenginyje, prie kurio norite prisijungti. Tai galima padaryti, atlikdami šiuos veiksmus:

Enable-PSRemoting

Image
Image

Tuomet turėsite atsakyti "taip" į visus raginimus. Kai paleisite "Enable-PSRemoting", jūsų kompiuteryje yra keli pakeitimai:

  • Įdiegta WinRM paslauga.
  • "WinRM" paslauga keičiasi nuo rankinio paleidimo režimo iki automatinio.
  • Tai sukuria HTTP klausytoją, kuris yra privalomas visoms jūsų tinklo plokštėms.
  • Tai taip pat sukuria WS-MAN protokolo išimtinę užkardos išimtį.
  • Kai kurios numatytos seanso konfigūracijos yra sukurtos

Jei naudojate "Windows 7", o jūsų tinklo plokštės vieta nustatyta kaip "Vieša", "PowerShell Remoting" nepavyks. Norėdami išspręsti šią problemą, tiesiog pereikite į namų ar darbo tinklo vietą. Arba galite praleisti tinklo patikrinimą, naudodamasis šiais būdais:

Enable-PSRemoting –SkipNetworkProfileCheck

Tačiau mes rekomenduojame geriau pakeisti savo tinklo vietą.
Tačiau mes rekomenduojame geriau pakeisti savo tinklo vietą.

Su "PowerShell" galima prisijungti prie kito kompiuterio dviem būdais. Yra vieno metodo, kuris yra labai panašus į SSH naudojimą, o tada yra vienas iš daugelio metodų.

"PowerShell" sesijos naudojimas

Pirmas būdas prisijungti prie nuotolinio kompiuterio naudodamas "PowerShell" naudoja "PowerShell" seansą. Tiesiog įkiškite sesiją, kad galėtumėte paleisti komandas nuotoliniame kompiuteryje interaktyviai, taip pat ir tu pats savo kompiuteryje. Norėdami atidaryti seansą, tiesiog įveskite:

Enter-PSSession –ComputerName “Darlah”

Greitoji eilutė gaus prefiksą, kuris reiškia mašiną, su kuria naudojate cmdlet.
Greitoji eilutė gaus prefiksą, kuris reiškia mašiną, su kuria naudojate cmdlet.
Iš čia jūs galite iš tikrųjų elgtis taip, lyg jūs sėdėtumėte nuotoliniame kompiuteryje. Pavyzdžiui, jei norite pamatyti visus failus, esančius diske C:, galite padaryti paprastą:
Iš čia jūs galite iš tikrųjų elgtis taip, lyg jūs sėdėtumėte nuotoliniame kompiuteryje. Pavyzdžiui, jei norite pamatyti visus failus, esančius diske C:, galite padaryti paprastą:

Get-ChildItem –Path C:

Jei atvyksite iš "Linux" fono, galite galvoti apie tai, kaip naudoti vieną iš vieno šalinimo metodo kaip "PowerShell" alternatyvą SSH.
Jei atvyksite iš "Linux" fono, galite galvoti apie tai, kaip naudoti vieną iš vieno šalinimo metodo kaip "PowerShell" alternatyvą SSH.

"Invoke-Command" naudojimas

Antrasis būdas, kuriuo galite naudoti "PowerShell" nuotoliniame kompiuteryje, yra "Invoke-Command". Privalumas naudoti "Invoke-Command" priklauso nuo to, kad tą pačią komandą galite paleisti keliose mašinose vienu metu. Kaip galite įsivaizduoti, tai ypač naudinga, jei norite ką nors padaryti, pavyzdžiui, surinkti įvykių žurnalus iš savo serverių. Invoke-Command seka tokia sintaksė:

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

Kadangi komanda paleidžiama lygiagrečiai visose mašinose, reikės šiek tiek sužinoti, iš kokio kompiuterio buvo gautas tam tikras rezultatas. Tai galite padaryti, žiūrėdami nuosavybės PSComputerName.
Kadangi komanda paleidžiama lygiagrečiai visose mašinose, reikės šiek tiek sužinoti, iš kokio kompiuterio buvo gautas tam tikras rezultatas. Tai galite padaryti, žiūrėdami nuosavybės PSComputerName.
Kai naudojate "Invoke-Command", jūs nebeturite objektų, kuriuos galėtumėte tikėtis Pipeline. Matote, kad "PowerShell" atgautų informaciją iš nuotolinio kompiuterio atgal į jūsų kompiuterį, jiems reikia tam tikros formos atstovauti objektams, kuriuos vykdote komanda nuotolinio kompiuterio išėjimuose. Šiomis dienomis atrodo, kad pasirinktas būdas atstovauti hierarchinę duomenų struktūrą yra naudoti XML, o tai reiškia, kad, kai komandą išleidote naudodamiesi "Invoke-Command", rezultatai pirmą kartą perduodami į XML, prieš siunčiant juos į jūsų kompiuterį.Kai jie grįš į jūsų kompiuterį, jie deserializuojami atgal į objektą; Gutka yra tai, kad kai jie yra deserializuoti, visi metodai, išskyrus ToString () metodą, kad objektas buvo pašalintas nuo jo.
Kai naudojate "Invoke-Command", jūs nebeturite objektų, kuriuos galėtumėte tikėtis Pipeline. Matote, kad "PowerShell" atgautų informaciją iš nuotolinio kompiuterio atgal į jūsų kompiuterį, jiems reikia tam tikros formos atstovauti objektams, kuriuos vykdote komanda nuotolinio kompiuterio išėjimuose. Šiomis dienomis atrodo, kad pasirinktas būdas atstovauti hierarchinę duomenų struktūrą yra naudoti XML, o tai reiškia, kad, kai komandą išleidote naudodamiesi "Invoke-Command", rezultatai pirmą kartą perduodami į XML, prieš siunčiant juos į jūsų kompiuterį.Kai jie grįš į jūsų kompiuterį, jie deserializuojami atgal į objektą; Gutka yra tai, kad kai jie yra deserializuoti, visi metodai, išskyrus ToString () metodą, kad objektas buvo pašalintas nuo jo.
Image
Image

Pastaba: šia taisykle yra keletas išimčių, pavyzdžiui, dauguma primityvių tipų, pavyzdžiui, sveikieji skaičiai, gali būti deserializuoti su jo metodais. Taip pat yra procesas, vadinamas rehidravimu, kai kai kuriuos metodus galima pridėti prie deserializuotų objektų. Taigi būk atsargus ir nepamirškite, kad "Get-Member" yra tavo draugas.

Namų darbai

Perskaitykite "DonS Jones" "PowerShell Remoting" e-knygos paslaptis.

Rekomenduojamas: