Nuotolinis „Windows“ valdymas naudojant „WinRM“. WinRM – nuotolinis darbas su PowerShell Winrm parametrais

Nuotolinis „Windows“ valdymas naudojant „WinRM“.  WinRM – nuotolinis darbas su PowerShell Winrm parametrais
Nuotolinis „Windows“ valdymas naudojant „WinRM“. WinRM – nuotolinis darbas su PowerShell Winrm parametrais

2011-10-17 Donas Džounsas

Supratau, kad „PowerShell“ kūrėjai buvo šiek tiek tingūs, ir tai yra gerai. Jie nenorėjo koduoti parametro -ComputerName kiekvienai komandai, todėl sukūrė bendrą sistemą, vadinamą „nuotoliniu“. Iš esmės ši sistema leidžia paleisti bet kurią komandą nuotoliniame kompiuteryje. Jūs netgi galite paleisti skirtingas komandas, kurios yra nuotoliniame kompiuteryje, bet neegzistuoja jūsų. Tai reiškia, kad jums nereikia nuolat diegti kiekvienos komandos savo darbo vietoje. Ši nuotolinė sistema yra labai efektyvi ir suteikia daug įdomių administravimo funkcijų

Kai pradėjau naudoti PowerShell, susidomėjau komanda Get-Service ir pastebėjau, kad ji turi parametrą -ComputerName. Ar tai nereiškia, kad prie paslaugos galite prisijungti iš kitų kompiuterių? Atlikęs daugybę eksperimentų sužinojau, kad būtent taip ir parašyta. Susidomėjau ir pradėjau ieškoti parametrų -ComputerName iš kitų komandų. Ir nuliūdau, kai sužinojau, kad jų tik keletas.

„PowerShell“ teikia dviejų tipų nuotolinį valdymą: nuotolinį „vienas su vienu“ (1:1) ir „vienas su daugeliu“ (1:n) nuotolinį naudojimą. Prieš kalbėdamas apie juos, noriu paaiškinti keletą pagrindinių dalykų.

„PowerShell“ nuotolinio valdymo pagrindai

„PowerShell“ nuotolinis valdymas veikia panašiai kaip „Telnet“ ir kitos senesnės nuotolinio valdymo technologijos. Kai paleidžiate komandą, ji iš tikrųjų paleidžiama nuotoliniame kompiuteryje. Viskas, kas grąžinama į kompiuterį, yra šios komandos rezultatas. Skirtingai nuo Telnet ar Secure Shell (SSH), PowerShell naudoja naują ryšių sistemos protokolą, vadinamą Web Services for Management (WS-Management). Protokolas veikia virš HTTP arba HTTP Secure (HTTPS), todėl prireikus lengviau nukreipti per ugniasienes, nes protokolas naudoja tik vieną prievadą ryšiui užmegzti. „Microsoft“ įdiegia WS-Management kaip foninę paslaugą, vadinamą „Windows Remote Management“. „WinRM“ įdiegtas kartu su „PowerShell 2.0“ ir pagal numatytuosius nustatymus veikia tokiuose serveriuose kaip „Windows Server 2008 R2“. Sistemoje „Windows 7“ ji įdiegta pagal numatytuosius nustatymus, bet nėra aktyvuota. Kompiuteriuose, į kuriuos norite siųsti komandą, turite suaktyvinti WinRM. Kompiuteryje, kuriame esate fiziškai, nereikia paleisti „WinRM“ paslaugos.

Visos „PowerShell“ komandos sukuria objektus kaip išvestį. Kai komandą vykdote nuotoliniu būdu, jos išvestis turi būti tokios formos, kurią būtų galima lengvai perduoti tinklu naudojant HTTP arba HTTPS. Pavyzdžiui, „PowerShell“ automatiškai konvertuoja išvesties objektus į XML failus, kurie siunčiami per tinklą. Kai jie pasiekia kompiuterį, jie vėl paverčiami objektais, su kuriais gali dirbti „PowerShell“. Tačiau šie atgal konvertuoti objektai iš tikrųjų yra momentiniai vaizdai. Jie negali atnaujinti savęs kiekvieną minutę. Taigi, jei turite patekti į objektus, vaizduojančius procesus, veikiančius nuotoliniame kompiuteryje, tada gautas rezultatas bus teisingas tik tam tikrą laikotarpį, per kurį šie objektai buvo sugeneruoti. Tokios reikšmės kaip atmintis ir procesoriaus naudojimas nepasikeis. Be to, negalėsite priverstinai konvertuotų objektų nieko daryti. Pavyzdžiui, negalite įsakyti objektui sustoti. Tai yra pagrindinis nuotolinio bendradarbiavimo apribojimas, tačiau tai netrukdys jums dirbti ir daryti įdomių dalykų.

Yra tik keli pagrindiniai nuotolinio valdymo sistemos naudojimo reikalavimai.

  • Kaip jūsų kompiuteris (dar žinomas kaip vietinis kompiuteris) ir tas, kuriam norite nusiųsti komandą (dar žinomas kaip nuotolinis kompiuteris), turėtų veikti su Windows PowerShell 2.0? „Windows XP“ yra senoji „Windows“ versija, kurioje galite įdiegti „PowerShell 2.0“. Taigi senoji versija taip pat gali dalyvauti nuotolinėje sesijoje.
  • Idealiu atveju vietiniai ir nuotoliniai kompiuteriai turėtų būti to paties domeno nariai arba patikimų / patikimų domenų nariai. Galite dirbti su nuotolinio valdymo sistema už domeno ribų, tačiau tai sunku, ir aš apie tai čia nekalbėsiu. Norėdami sužinoti daugiau apie šį scenarijų, žr. „PowerShell“ žinyno temą apie Remote_Troubleshooting.

WinRM apžvalga

Dabar pereikime prie „WinRM“, nes norint pradėti nuotolinį naudojimą, reikia sukonfigūruoti šios paslaugos nustatymus. Vėlgi, nuotoliniame kompiuteryje reikia nustatyti tik „WinRM“ ir „PowerShell“ nuotolinio valdymo nustatymus. Daugumoje aplinkų, kuriose dirbau, administratoriai įgalino nuotolinį valdymą kiekviename kompiuteryje, kuriame veikia XP ar naujesnės versijos. Tai leidžia nepastebimai įsiskverbti į stalinius ir nešiojamuosius kompiuterius, o tai gali būti labai naudinga (tai reiškia, kad tokių kompiuterių vartotojai nežinos, ką jūs darote).

Tai nereiškia, kad „WinRM“ yra kažkas ypatingo „PowerShell“. WinRM gali nukreipti srautą į kelias administracines programas. Iš esmės WinRM veikia kaip dispečeris. Kai atvyksta srautas, WinRM nusprendžia, kuri programa turi sąveikauti su ja ir pažymi ją paskirties programos pavadinimu. Gaunančioji programa turi užsiregistruoti WinRM, kad WinRM galėtų jos vardu klausytis gaunamo srauto. Kitaip tariant, jums reikia ne tik įjungti „WinRM“, bet ir užregistruoti „Power Shell“ kaip „WinRM“ galinį tašką.

Lengviausias būdas atlikti abi užduotis yra paleisti PowerShell kaip administratorių ir paleisti komandą Enable-PSRemoting. Vadove galite ieškoti kitos komandos, pavadintos Set-WSManQuickConfig. Nereikia vykdyti komandos. „Enable-PSRemoting“ tai padaro už jus, taip pat atlieka keletą kitų veiksmų, būtinų nuotoliniam ryšiui užmegzti ir valdyti. Iš esmės komanda „Enable-PSRemoting“ paleidžia „WinRM“ paslaugą, sukonfigūruoja ją taip, kad ji būtų paleista automatiškai, užregistruoja „PowerShell“ kaip galinį tašką ir netgi nustato išimtis „Windows“ užkardoje, kad leistų įeinantį „WinRM“ srautą.

Jei nenorite pereiti per kiekvieną kompiuterį, kad įgalintumėte nuotolinį ryšį, galite naudoti grupės strategijos objektą (GPO). Reikalingi GPO parametrai yra integruoti į Windows Server 2008 R2 domeno valdiklius. Tiesiog atidarykite GPO ir eikite į maršrutą Kompiuterio konfigūracija\

Administravimo šablonai\Windows komponentai. Sąrašo apačioje rasite ir Remote Shell, ir Windows Remote Management (WRM), kurių nustatymus turite sukonfigūruoti. Pagalbos skyriuje apie nuotolinio ryšio sistemos problemas (Remote_Troubleshooting) rasite išsamias instrukcijas, kaip tai padaryti. Peržiūrėkite žinyno skyrius, kaip įgalinti nuotolinį ryšį įmonėje ir kaip įjungti klausytojus naudojant grupės politiką.

„WinRM 2.0“ (kurią naudoja „PowerShell“) pagal numatytuosius nustatymus naudoja TCP prievadą 5985 HTTP ir 5986 prievadą HTTPS. Taip užtikrinama, kad WinRM neprieštarautų vietoje įdiegtiems žiniatinklio serveriams, sukonfigūruotiems klausytis 80 ir 443 prievaduose. Galite sukonfigūruoti WinRM naudoti alternatyvius prievadus, bet aš to nerekomenduoju. Jei paliksite šiuos prievadus, visos „PowerShell“ nuotolinės prieigos komandos veiks gerai. Jei pakeisite šiuos prievadus, vykdydami nuotolinės prieigos komandą visada turėsite nurodyti alternatyvų prievadą. Tai reiškia, kad turėsite įvesti daugiau. Jei būtinai reikia pakeisti prievadą, galite įvesti komandą:

Winrm nustatyti winrm/config/ klausytoją? Adresas=* +Transportas=HTTP @(Port = "1234")

Skaičiai 1234 rodo jums reikalingą prievadą. Čia ši komanda parašyta keliomis eilutėmis, tačiau ją reikia įvesti vienoje eilutėje. Tas pats pasakytina ir apie visas kitas šiame straipsnyje aprašytas komandas. Jei reikia naudoti HTTPS, o ne http, galite modifikuoti šią komandą, kad sukonfigūruotumėte naują HTTPS prievadą. Turiu pripažinti, kad yra būdas sukonfigūruoti WinRM nustatymus vietiniuose kompiuteriuose, kad pagal numatytuosius nustatymus būtų naudojami alternatyvūs prievadai. Tokiu būdu jums nereikės nuolat apibrėžti alternatyvaus prievado, kai vykdote nuotolinės prieigos komandą. Bet dirbkime su numatytaisiais „Microsoft“ nustatytais nustatymais.

Jei įsigilinsite į GPO nustatymus programoje Remote Shell, pastebėsite, kad galite nustatyti, pavyzdžiui, kiek laiko nuotolinė sesija išliks neaktyvi, kol serveris ją nutrauks; kiek vienu metu esančių vartotojų gali pasiekti nuotolinį serverį vienu metu; kiek atminties ir procesų gali naudoti kiekvienas nuotolinis apvalkalas; Didžiausias nuotolinių apvalkalų, kuriuos vartotojai gali atidaryti vienu metu, skaičius. Šie nustatymai padės užtikrinti, kad jūsų serveriai nebūtų perkrauti užsimiršusių administratorių. Tačiau pagal numatytuosius nustatymus, norėdami naudoti nuotolinį ryšį, turite būti administratoriumi, todėl jums nereikės jaudintis, kad įprasti vartotojai užkimš jūsų serverius.

Nuotolinis bendravimas 1:1

Naudodami 1:1 nuotolinį valdymą, iš esmės turite prieigą prie komandų eilutės viename nuotoliniame kompiuteryje. Visos jūsų pateiktos komandos paleidžiamos tiesiai nuotoliniame kompiuteryje, o rezultatus matysite komandų eilutės lange. Tai šiek tiek panašu į nuotolinio darbalaukio ryšio naudojimą, išskyrus tai, kad apsiribojate „PowerShell“ komandų eilutės aplinka. „PowerShell“ nuotolinis valdymas naudoja dalį išteklių, kurių reikia nuotoliniam darbalaukiui, todėl jis daro daug mažesnį poveikį jūsų serveriams.

Norėdami užmegzti 1:1 ryšį su nuotoliniu kompiuteriu, vadinamu Server-R2, turite paleisti

Enter-PSSession - Kompiuterio pavadinimo serveris-R2

Darant prielaidą, kad nuotoliniame įrenginyje įjungėte nuotolinį ryšį, kompiuteris yra tame pačiame domene ir jūsų tinklas veikia normaliai, gausite reikiamą ryšį. „PowerShell“ leidžia jums žinoti, kad pasiekėte savo tikslą, pakeisdami komandų eilutę į

PS C:\>

Dalis informuoja, kad viskas, ką darote, vyksta Server-R2. Po to galite paleisti bet kokias norimas komandas. Jūs netgi galite importuoti bet kokius modulius ir pridėti „PowerShell“ plėtinių (PSSnapins), kurie bus nuotoliniame kompiuteryje.

Netgi leidimai išliks tokie patys. Jūsų „PowerShell“ kopija veiks su tuo pačiu saugos prieigos raktu, su kuriuo buvo paleista. „PowerShell“ tai atlieka naudodama „Kerberos“, todėl tinkle neperduoda vartotojo vardo ir slaptažodžio. Visos komandos, kurias paleisite nuotoliniame kompiuteryje, bus vykdomos naudojant jūsų kredencialus, todėl galite daryti viską, ką turite leidimą. Tai panašu į prisijungimą tiesiai iš kompiuterio konsolės ir naudojant to kompiuterio „PowerShell“ kopiją. Tai beveik taip. Štai keletas skirtumų.

  • Jei nuotoliniame kompiuteryje turite savo profilio „PowerShell“ scenarijų, jis nebus paleistas, kai prisijungiate naudodami nuotolinės prieigos sistemą. Paprasčiau tariant, profiliai yra komandų paketas, kuris automatiškai paleidžiamas kiekvieną kartą, kai atidarote komandų eilutės langą. Jie naudojami automatiškai atsisiųsti plėtinius, modulius ir pan.
  • Jus riboja nuotolinio kompiuterio vykdymo politika. Tarkime, kad jūsų kompiuterio strategija nustatyta į RemoteSigned, kad galėtumėte paleisti vietinius nepasirašytus scenarijus. Jei nuotolinio kompiuterio strategija nustatyta į Restricted (numatytasis nustatymas), ji neleis paleisti jokių scenarijų, kai bendraujate nuotoliniu būdu.

Daugelis „PowerShell“ komandų pateikiamos poromis: viena ką nors daro, kita – priešingai. Mūsų atveju Enter-PSSession sujungia jus su nuotoliniu kompiuteriu, o Exit-PSSession tą ryšį uždaro. Exit-PSSession nereikalauja jokių parametrų. Paleidus nuotolinį ryšį, jis uždaromas, o komandų eilutės lango eilutė grįš į normalią. Ką daryti, jei pamiršote paleisti Exit-PSSession? Nesijaudink. „PowerShell“ ir „WinRM“ gali išsiaiškinti, ką padarėte, ir prireikus uždaryti nuotolinį ryšį.

Noriu duoti vieną patarimą. Kai prisijungiate prie nuotolinio kompiuterio, neleiskite jame Enter-PSSession, kol visiškai nesuvoksite, ką darote. Pavyzdžiui, jūs dirbate KompiuteryjeA. Prisijungiate prie Server-R2. Paleidžiate PowerShell liniją

PS C:\>Enter-PSSession Server-DC4

Serveris-R2 dabar turi atvirą ryšį su Server-DC4. Tai sukuria „nuotolinę grandinę“, kurią sunku atsekti. Be to, jūsų serveriai tampa be reikalo perkrauti. Kartais gali tekti tai padaryti (pavyzdžiui, Server-DC4 yra už ugniasienės ir jūs negalite jos tiesiogiai pasiekti, todėl kaip tarpininką turite naudoti Server-R2). Tačiau bendra taisyklė yra tokia: stenkitės vengti nuotolinių grandinių.

1:n nuotoliniu būdu

Vienas šauniausių „PowerShell“ dalykų yra 1:n nuotolinis valdymas. Tai leidžia siųsti komandas į kelis nuotolinius kompiuterius vienu metu – visavertis paskirstytasis kompiuteris. Kiekvienas kompiuteris individualiai vykdys komandą ir atsiųs rezultatus. Viskas daroma naudojant komandą Invoke-Command šioje formoje:

Invoke-Command -ComputerName Server-R2, Server-DC4, Server 12 -Command (Get-EventLog Security -Newest 200 | Kur ($_.EventID -eq 1212))

Išoriniuose skliausteliuose esanti komanda siunčiama į visus tris nuotolinius kompiuterius. Pagal numatytuosius nustatymus „PowerShell“ gali kalbėtis su iki 32 kompiuterių vienu metu. Jei nurodysite daugiau nei 32 kompiuterius, jie bus įrašyti į eilę. Tada, kai vienas kompiuteris išsijungia, kitas vykdo komandą. Jei turite tikrai greitą tinklą ir galingus kompiuterius, galite padidinti jų skaičių naudodami komandos parametrą ThrottleLimit. Galite perskaityti, kaip naudoti šį parametrą žinyno puslapyje Invoke-Command.

Vienintelis parametras, kurio nematysite šios komandos žinyno puslapyje, yra komandos parametras. Tai, kaip jau parodžiau, veikia puikiai. Komandos parametras yra ScriptBlock parametro pseudonimas arba trumpasis pavadinimas, kuris pateikiamas pagalbos puslapyje. Man lengviau naudoti komandą, todėl aš linkęs naudoti ją vietoj ScriptBlock, bet jie veikia taip pat.

Jei atidžiai perskaitėte Invoke-Command žinyno puslapį, taip pat pastebėjote parinktį, leidžiančią nurodyti scenarijaus failą, o ne komandą. Parametras FilePath leidžia siųsti scenarijų į nuotolinius kompiuterius; tai reiškia, kad galite automatizuoti kai kurias sudėtingas užduotis ir kiekvienam kompiuteriui atlikti savo darbo dalį.

Dabar sutelkime dėmesį į kompiuterio pavadinimo parametrą. Invoke-Command pavyzdiniame kode turėjau kableliais atskirtą kompiuterių pavadinimų sąrašą. Jei turite daug kompiuterių, galbūt nenorėsite įvesti jų pavadinimų kiekvieną kartą, kai prie jų prisijungiate. Vietoj to galite sukurti tekstinį failą, kuriame vienoje eilutėje yra vienas kompiuterio pavadinimas, be kablelių, kabučių ar dar ko nors. Pavyzdžiui, jei jūsų tekstinis failas pavadintas webservers.txt, turėtumėte naudoti tokį kodą:

Invoke-Command -Command ( dir ) - ComputerName (Get-Content webservers.txt)

Skliaustai verčia „PowerShell“ pirmiausia vykdyti komandą Get-Content – ​​tai panašu į tai, kaip skliaustai veikia matematikoje. Tada Get-Content rezultatai įterpiami į parametrą -ComputerName.

Taip pat galima užklausti kompiuterio pavadinimo „Active Directory“, tačiau tai yra sudėtingiau. Norėdami rasti kompiuterį, galite naudoti komandą „Get-ADComputer“, tačiau jos nerašysite skliausteliuose, kaip tai padarėte naudodami „Get-Content“. Kodėl gi ne? „Get-Content“ sukuria paprastas teksto eilutes, o „Get-ADComputer“ – „kompiuterio“ tipo objektus. Parametras -ComputerName tikisi eilutės. Jeigu jam tektų gauti kompiuterinius objektus, nežinotų, ką su jais daryti. Todėl, jei norite naudoti Get-ADComputer, turite gauti reikšmes iš kompiuterio objektų nuosavybės Name. Kaip šitas:

Invoke-Command -Command (dir) -ComputerName (Get-ADComputer -Filter * -SearchBase "ou=Pardavimai, dc=įmonė, dc=pri" | Pasirinkti objektą -Išskleisti pavadinimą)

Skliausteliuose kompiuterio objektai perduodami komandai Select-Object, o parametras -Expand naudojamas šių kompiuterio objektų savybei Name išsiaiškinti. Išraiškos skliausteliuose rezultatas yra kompiuterių pavadinimų rinkinys, o ne kompiuterio objektai. Kompiuterių pavadinimai yra būtent tai, ko reikia parametrui -Computer Name.

Jei nesate susipažinę su Get-ADComputer, pažiūrėkime, ką ši komanda veikia. Parametras -Filter nurodo, kad visi kompiuteriai turi būti įtraukti į rezultatus, o parametras -Search Base nurodo PowerShell pradėti ieškoti kompiuterių pardavimo organizacijos grupėje (OU) domene company.pri. Komanda Get-ADComputer pasiekiama tik Windows Server 2008 R2 ir Windows 7 įdiegus nuotolinio serverio administravimo įrankius. Šiose operacinėse sistemose veikiate

„ActiveDirectory“ importavimo modulis

įkelti katalogų tarnybos komandas į komandų apvalkalą, kad jas būtų galima naudoti.

Yra dar kažkas!

Visi šie pavyzdžiai buvo pateikti „peer-to-peer“ nuotolinio naudojimo sesijoms. Jei ketinate iš naujo prisijungti prie tų pačių kompiuterių (ar kompiuterio) kelis kartus per trumpą laiką, galite sukurti daugkartinio naudojimo nuolatines sesijas. Tai labai naudinga, jei ryšiui reikia alternatyvių kredencialų, nenumatytųjų prievado numerio ar bet ko kito, kuriam reikalingi papildomi parametrai.

Norėdami sukurti nuolatines sesijas, turite naudoti komandą New-PSSession, tada išsaugoti jas kintamajame, kad būtų lengviau pasiekti. Pavyzdžiui, šis kodas sukuria nuotolinio valdymo seansą su trimis kompiuteriais ir išsaugo juos kintamajame $sessions:

$sessions = Nauja-PSSesija - Kompiuterio pavadinimas Vienas, du, trys - Prievadas 5555 - Kredencialas DOMAIN\Administratorius

Nuotolinės sesijos uždaromos automatiškai, kai uždarote komandų apvalkalą, tačiau iki tol jie gali užimti atmintį ir šiek tiek procesoriaus naudojimo vietinėse ir nuotolinėse sistemose. Norėdami juos tiksliai uždaryti, galite naudoti komandą Remove-PSSession:

$sesijos | Pašalinti-PSSession

Kai reikia iš naujo atidaryti seansus, galite naudoti komandą Invoke-Command:

Invoke-Command -Command (vad.) -Seansas $sesijos

Arba galite naudoti Enter-PSSession:

Įveskite-PSSession -Seansas $sesija

Atminkite, kad Enter-PSSession kode vėl atidaromas tik vienas nuotolinis seansas. Indekso kintamasis 1 nurodo PowerShell, kad jis turėtų iš naujo atidaryti seansą su kompiuteriu pavadinimu Two (indeksas pagrįstas nuliu).

Kaip matome, „PowerShell“ nuotolinis valdymas turi daug privalumų. Jei naudositės, pamatysite, kiek tai praplės jūsų akiratį.

Donas Džounsas ( [apsaugotas el. paštas]) yra „PowerShell“ techninis instruktorius (www.windowsitpro.com/go/DonJonesPowerShell), daugiau nei 35 knygų autorius. Turi Microsoft MVP titulą



Skaityti: 839

Paaiškinsiu, kaip galite centralizuotai įjungti ir konfigūruoti „Windows Remote Management“ (WinRM) paslaugą visuose tiksliniuose kompiuteriuose, naudojant GrupėSaugumaspolitika. „Windows Remote Management“ yra speciali paslauga, leidžianti administratoriams nuotoliniu būdu pasiekti ir valdyti klientų ir serverių „Windows“ operacines sistemas.

Paimkime įprastą kompiuterį suWindows7, kuris yra įtrauktas į domeną ir kuriame funkcija nėra aktyvuotaWindowsNuotolinisValdymas. Komandinėje eilutėje įveskite šią komandą:

Paleiskite komandų eilutę administratoriaus teisėmis.

Turėtumėte pamatyti šį klaidos pranešimą, nurodantį, kad WRM neįdiegtas:

WSMan gedimas. Klientas negali prisijungti prie užklausoje nurodytos paskirties vietos. Klaidos numeris: – 2144108526 0?80338012

Jei jums reikia rankiniu būdu sukonfigūruoti WinRM atskiroje sistemoje, tiesiog įveskite komandą:

winrm greitoji konfigūracija

Apsvarsčiau galimybę jį įdiegti vienoje darbo vietoje.

Jei reikia sukonfigūruoti WinRM kompiuterių grupėje, galite naudoti specialius grupės strategijos nustatymus. Sukurkime grupės politiką konteineriui, kuriame yra darbo stotys. Kompiuterio konfigūracija- Politikai - Administraciniai šablonai-> „Windows“ komponentai – „Windows“ nuotolinio valdymo pultas. Aktyvuojame šiuos parametrus:

„Windows“ nuotolinio valdymo klientas.

„Windows“ nuotolinio valdymo paslauga

Skiltyje IPv4 filtras nurodyti *, o tai reiškia, kad kompiuteris gali priimti ryšius (taigi ir valdymo komandas) iš bet kurios vietos.

Toliau skyriuje Kompiuterio konfigūracija- Politikai - Administracinisšablonai – „Windows“ komponentai – „Windows Remote Shell“.

Suaktyvinkite elementą:

Leisti nuotolinę prieigą prie apvalkalo – įjungta

Galite tvarkyti paslaugų pradžios būdą iš šios grupės strategijos skyriaus: Kompiuterio konfigūracija – Politikos – „Windows“ konfigūracija – Saugos parametrai – Sistemos paslaugos.

Atidarykite „Windows Remote Management Service“ (WM-Management) paslaugą ir atlikite toliau nurodytus nustatymus, žr. ekrano kopiją.

Viskas paruošta. Iš naujo paleidžiame darbo stotį ir suaktyvinę WinRM naudodami grupės politiką, patikrinkite paslaugos būseną kliento sistemoje naudodami pažįstamą komandą:

WinRM išvardija winrm/config/listener

Įsitikinkite, kad WinRM paslaugos paleidimo tipas nustatytas kaip automatinis. Nors iš tikrųjų paleidimo tipas yra „automatinis su vėlavimu“, nes Pagal numatytuosius nustatymus WinRM paslauga turi paleidimo delsos nustatymą (parametras DelayedAutoStart=1 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\WinRM).

Pritaikius grupės politiką, šią sistemą galima valdyti nuotoliniu būdu naudojant WinRS komandas. Ši komanda atidarys komandų eilutę, veikiančią nuotolinėje sistemoje:

laimėtojai –r:<имя_компьютера>cmd

Kai pasirodys komandų eilutės langas, galėsite vykdyti bet kurią komandą ir matyti jos rezultatus nuotoliniame kompiuteryje, tarsi su ja dirbtumėte vietoje. Atminkite, kad „WinRM“ taip pat turi būti suaktyvintas jūsų pagrindiniame kompiuteryje.

Mano atveju bandymo mašina vadinama aletest4

winrs -r:alektest4 cmd

Įrašo navigacija

Naudodami Telegram klientą naudokite tarpinį serverį ((blokavo Roskomnadzor, naudokite vpn arba tarpinį serverį)).

Nuotolinis „Windows“ valdymas naudojant „WinRM“.

Tiesą sakant WinRM(arba „Windows“ nuotolinis valdymas) ir verčiama kaip „nuotolinio valdymo pultas langai". WinRM– operacinių sistemų nuotolinio valdymo paslauga Windows. Nuo tada jis buvo įtrauktas į operacines sistemas Vista Ir Serveris 2008, Dėl Windows XP Ir Serveris 2003 jį reikia įdiegti atskirai nuo čia. WinRM– nuotolinio valdymo programos serverio dalis, prie kurios galima prisijungti nuotoliniu būdu naudojant klientą „Windows Remote Shell“ (WinRS).

WinRM paslaugų pagrindu Web Services for Management (WS-Management) ir naudoja HTTP (80 prievadas) arba HTTPS (443) ir SOAP užklausas, kad atliktų darbą. Nepriklausomai nuo naudojamo protokolo, visas srautas siunčiamas WinRM yra užšifruotas (nebent specialiai išjungsite šią parinktį). Numatytasis autentifikavimo protokolas yra Kerberos.

IN Windows Server 2008 WinRMįdiegtas, bet (saugumo sumetimais) neįjungtas pagal numatytuosius nustatymus. Norėdami patikrinti, ar jis veikia WinRM mūsų kompiuteryje įveskite komandų eilutę winrm išvardinti winrm/config/listener

Jei atsakymo nėra, tada WinRM nebėga. Norint nustatyti WinRM Norėdami pradėti automatiškai ir leisti nuotoliniu būdu prisijungti prie kompiuterio, įveskite komandą winrm greitoji konfigūracija arba winrm qc

Kad WinRM neprašytų patvirtinimo, prie skambučio galite pridėti raktą - tyliai. Galite sužinoti informacijos apie integruoto žinyno koregavimą. WinRM: winrm pagalbos konfigūracija

Na, išjunkite WinRM galite naudoti šią komandą:
winrm ištrinti winrm/config/listener?IPAdress=*+Transport=HTTP

Be to, visus būtinus nustatymus galima atlikti naudojant grupės politiką. Norėdami tai padaryti, jums reikia:

  • Nustatykite paslaugą WinRMį automatinį paleidimą
  • Leiskite prisijungti prie atitinkamų ugniasienės prievadų (80 ir 443). Windows
  • Konfigūruokite grupės strategijos elementą Kompiuterio konfigūracija\Administravimo šablonai\Windows komponentai\Windows Remote Management\Windows Remote Management\Leisti automatinį klausytojų diegimą (Kompiuterio konfigūracija\Administravimo šablonai\Windows komponentai\Windows Remote Management\WinRM Service\Leisti automatinį klausytojų konfigūravimą). Čia turėsite nurodyti IP adresus, iš kurių leidžiami ryšiai.

Dabar pereikime prie naudojimo. Norėdami prisijungti prie nuotolinio kompiuterio, naudojame įrankį WinRS. WinRS– santrumpa „Windows Remote Shell“.(nuošali aplinka Windows). SU WinRS galime teikti nuotolines užklausas į veikiančius kompiuterius WinRM. Tačiau atminkite, kad jūsų mašina taip pat turi veikti WinRM dirbti su WinRS.

Pagrindinis naudojimo būdas WinRS yra komandų vykdymas nuotoliniame kompiuteryje. Kompiuterio pavadinimas nurodomas raktu -r po kurios seka, pavyzdžiui, komanda, kurią reikia vykdyti laimėtojair: SRV2 ipconfig / visi veikia nuotoliniame kompiuteryje SRV2 komanda ipconfig/visi

Numatytasis ryšio protokolas yra http, bet taip pat galite naudoti https: winrs -r:https://SRV2 ipconfig /all

Taip pat galite naudoti WinRS atidaryti interaktyvią sesiją nuotoliniame kompiuteryje: winrs -r:SRV2 cmd.exe

Ši funkcija panaši į prisijungimą per telnet, bet naudokite WinRS Saugumo požiūriu tikrai geriau.

Norint naudoti WinRM, visi kompiuteriai turi būti to paties domeno nariai. Jei jūsų atveju taip nėra, galite pabandyti sumažinti saugos lygį. Norėdami tai padaryti, kompiuteryje, kurį norime pasiekti, įveskite šias komandas:

« tiesa")

« »}

WinRM nustatė winrm/config/client @(TrustedHosts= « Kompiuterio pavadinimas" }

kur ComputerName yra nuotolinis kompiuteris, iš kurio bus užmegztas ryšys.

Kompiuteryje, iš kurio prisijungsime, įveskite:

WinRM nustatė winrm/config/service/auth @(Basic= « tiesa")

WinRM nustatė winrm/config/client @(TrustedHosts= « »}

WinRM nustatė winrm/config/client @(TrustedHosts="Kompiuterio pavadinimas" }

kur ComputerName yra kompiuteris, kurį valdysime.

Tada užmezgame ryšį naudodami komandą:

laimėtojai -r:"Kompiuterio pavadinimas" : –u: Domenas\Vartotojo vardas -p: Slaptažodis cmd.exe

kur domenas\vartotojo vardas yra vartotojo abonementas, turintis administratoriaus teises nuotoliniame kompiuteryje.

Kartą turėjau problemų su WinRM dviejuose serveriuose.

1.NUSTATYMAS
Viena vertus, problema buvo ta, kad HTTP/ SPN<имя сервера>buvo užregistruoti kažkokiai „neteisingai“ vartotojo paskyrai.

Radau šiuos įrašus su komanda
setspn -F -Q */<имя сервера>

Tada ištryniau juos su komandomis
setspn -D http/<имя сервера>.<имя домена> <имя домена>\<левая учётная запись>
setspn -D http/<имя сервера> <имя домена>\<левая учётная запись>

Tada įgalinti-psremoting-force sėkmingai baigta.

2. KALBŲ PAKETAS
O antrajame serveryje tariamai iškilo sudėtinga ugniasienės problema Nepavyko patikrinti ugniasienės būsenos, ieškojo daugybėje svetainių ir intuityviai atrado sprendimą, remdamasis atsakymu dėl įdiegto kalbos paketo.

WinRm QuickConfig
WinRM paslauga jau veikia šiame kompiuteryje.
WSManFault
Pranešimas
Teikėjo gedimas
WSManFault
Pranešimas = Nepavyko patikrinti ugniasienės būsenos.

Klaidos numeris: -2147024894 0x80070002
Sistema negali rasti nurodyto failo.

Atsakyme buvo teigiama, kad šią klaidą galima išspręsti pašalinus papildomą kalbos paketą.
Bet aš padariau kitaip. Turiu anglišką operacinę sistemą su papildomu rusų kalbos paketu. Tiesiog pakeičiau sąsajos kalbą į rusų.
Valdymo skydas, regioninės ir kalbos parinktys, kalbos ir klaviatūros pakeitė sąsajos kalbą iš anglų į rusų.
Atsijungiau ir vėl prisijungiau. Atidarė „PowerShell“ ir pakartojo „WinRm QuickConfig“.

PS C:\Windows\system32> winrm qc

„WinRM“ paslauga nesukonfigūruota taip, kad būtų galima nuotoliniu būdu valdyti kompiuterį.
Reikia atlikti šiuos pakeitimus:

Sukurkite WinRM klausytoją HTTP://*, kad priimtumėte WS-Man užklausas bet kuriuo iš šio kompiuterio IP adresų.

Padaryti pakeitimų? y

WinRM paslauga buvo atnaujinta nuotoliniam valdymui.

Sukūrė WinRM klausytoją HTTP://*, kad priimtų WS-Man užklausas bet kuriuo iš šio kompiuterio IP adresų.

Pasisekė, bet vis tiek nepakankamai.

Bandant nuotoliniu būdu vykdyti komandas šiame serveryje iš kito kompiuterio, pasirodė klaida Prieiga uždrausta.

Nauja PSS sesija: [<имя сервера>] Prisijungiama prie nuotolinio serverio<имя сервера>nepavyko su tokiu klaidos pranešimu: Prieiga uždrausta. Norėdami gauti daugiau informacijos, žr. žinyno temą about_Remote_Troubleshooting.

Tada pakartojau Enable-PsRemoting

PS C:\Windows\system32> Enable-PsRemoting

WinRM greitoji sąranka
Paleiskite komandą Set-WSManQuickConfig, kad įgalintumėte nuotolinį valdymą naudodami WinRM paslaugą šiame kompiuteryje.
Būtini veiksmai.
1. Paleiskite arba iš naujo paleiskite WinRM paslaugą (jei ji jau veikia).
2. WinRM paslaugos tipo pakeitimas į "autostart".
3. Sukurkite klausytoją, kad priimtumėte užklausas bet kuriuo IP adresu.
4. WS-Management paslaugų srauto ugniasienės išimčių konfigūravimas (tik http protokolas).

Tęsti?

(numatytoji reikšmė yra "Y"):a
„WinRM“ paslauga jau sukonfigūruota priimti užklausas kompiuteryje.
„WinRM“ paslauga jau sukonfigūruota, kad būtų galima nuotoliniu būdu valdyti kompiuterį.

Patvirtinimas
Ar tikrai norite atlikti šį veiksmą?
Atliekant operaciją „Registruoti seanso konfigūraciją“ tiksliniame objekte „Seanso konfigūracija“
„Microsoft.PowerShell32“ nerasta. Bus vykdoma komanda „Register-PSSessionConfiguration Microsoft.PowerShell32“.
-procesorarchitecture x86 -force", kad sukurtumėte "Microsoft.PowerShell32" seanso konfigūraciją. WinRM paslauga
paleistas iš naujo“.
[Y] Taip - T [A] Taip visiems - A [N] Ne - N [L] Ne visiems - L [S] Sustabdyti - S [?] Pagalba
(numatytoji reikšmė yra "Y"):a

Po to šiame serveryje WinRM veikė kaip turėtų.

„WinRM“ ir „WinRS“ yra naujiena „Windows Vista“, „Windows Server 2003 R2“, „Windows Server 2008“ (ir „Server 2008 Core“). Tai yra galingi nauji komandų eilutės įrankiai, kurie siūlo sistemos administratoriams patobulintas nuotolinio valdymo ir nuotolinio vykdymo galimybes „Windows“ įrenginiuose. Tačiau pirmiausia jas reikia įjungti ir prireiks šiek tiek laiko, kol išmoks jų funkcijas. Jums pasisekė, šiame straipsnyje rasite viską, ko reikia norint pradėti naudotis šiais įrankiais jau šiandien!

Kas yra „Windows Remote Management“ (WinRM)?

„Windows Remote Management“ (sutrumpintai WinRM) yra nauja patogi nuotolinio valdymo paslauga, skirta „Windows Server 2003 R2“, „Windows Vista“ ir „Windows Server 2008“. „WinRM“ yra šios nuotolinio valdymo programos „serverio“ komponentas, o „WinRS“ („Windows Remote Shell“) yra „ klientas“, skirtas WinRM, kuris veikia nuotoliniame kompiuteryje, bandant nuotoliniu būdu valdyti WinRM serverį. Tačiau turėčiau atkreipti dėmesį į tai, kad abiejuose kompiuteriuose turi būti įdiegtas ir įjungtas WinRM, kad WinRS veiktų ir gautų informaciją apie nuotolinę sistemą. WinRM yra pagrįstas Web Services for Management (WS-Management) standartais. Tai reiškia, kad WinRM darbui atlikti naudoja HTTP (80 prievadas) ir SOAP užklausas. Geras dalykas yra tai, kad HTTP užklausas galima lengvai siųsti per užkardą. Iš to išplaukia geros ir blogos pasekmės: viena vertus, bus lengviau valdyti nuotolinį kompiuterį internetu, tačiau, kita vertus, užpuolikui bus lengviau nuotoliniu būdu pulti tą patį kompiuterį. Kitas nedidelis 80 prievado naudojimo pranašumas yra tai, kad nereikia atidaryti kitų serverio prievadų, jei įeinantys HTTP ryšiai jau buvo leidžiami.

„Microsoft“ teigimu, „WinRM“ yra „naujas Microsoft įrankis, skirtas sukurti standartais pagrįstą API sistemos valdymui“. Taigi, jei anksčiau nesidomėjote sužinoti apie tokius įrankius, manau, kad „tai naujas Microsoft standartas“ verta to mokytis.

Galbūt jau esate susipažinę su „Windows Management Instrumentation“ (WMI) duomenų baze. Bet tik tuo atveju pasakysiu, kad šioje duomenų bazėje yra visokios informacijos apie kompiuterio aparatinę ir programinę įrangą. Beveik kiekviena programa, valdanti Windows sistemą, nusileidžia iki WMI duomenų bazės lygio, kad galėtų atlikti visas administracines užduotis konkrečiame kompiuteryje.

WinRM naudos WMI duomenų bazę užduotims, panašioms į tas, kurias atlikote naudodami kitą programinę įrangą, pvz., VBScript, atlikti. WinRM pranašumas yra tas, kad jis naudoja HTTP (80 prievadą), kaip sakiau, ir netgi yra specialus kodas, leidžiantis WinRM padalinti gaunamus ryšius 80 prievade su IIS komponentu, kuris jau gali veikti tame prievade.

WinRM palaiko įvairius autentifikavimo tipus, kad niekas negalėtų atlikti administravimo užduočių jūsų klientuose ir serveriuose. Žinoma, turite atsiminti, kad įjungę „WinRM“ atveriate dar vieną kelią atakai prieš jūsų sistemą. Tačiau, kaip ir bet kurio atviro prievado atveju, jei autentifikavimas ir šifravimas nustatyti tinkamai, galima manyti, kad ėmėtės visų pagrįstų atsargumo priemonių.

Galbūt jūsų sistemos valdymo programinės įrangos gamintojas jau planavo naudoti WinRM būsimuose savo programinės įrangos leidimuose, todėl jau galite naudoti WinRM per kitas programas. Tačiau šį komponentą galite naudoti patys naudodami komandą winrm.cmd. Naudodami šį CLI įrankį galite labai lengvai išgauti informaciją iš WMI duomenų bazės apie bet kurią išspręstą užduotį.

Kaip pamatysite toliau, WinRM turi komandų eilutės sąsają su daugybe parinkčių. Žinyno informacija apie WinRM bus rodoma net jei jūsų sistemoje jis neįjungtas.

1 pav.: WinRM komandinės eilutės parinktys

Kaip įjungti ir naudoti WinRM?

Jei naudojate „Windows 2008 Server“, „WinRM“ jau įdiegtas, bet neįjungtas pagal numatytuosius nustatymus. Tai gera atsargumo priemonė. Paprasčiausias būdas patikrinti, ar WinRM įjungtas ir veikia jūsų kompiuteryje, yra eiti į komandinę eilutę ir įvesti:

winrm išvardinti winrm/config/listener

Jei negaunate atsakymo, WinRM neveikia. Norėdami sukonfigūruoti WinRM, kad jis paleistų automatiškai ir leistų nuotolinę prieigą, naudokite komandą winrm greitoji konfigūracija, Pavyzdžiui:

C:\Vartotojai\Administratorius> winrm greitoji konfigūracija „WinRM“ nenustatytas leisti valdyti nuotolinę prieigą prie šio įrenginio.Turi būti atlikti šie pakeitimai:Sukurkite WinRM klausytoją HTTP://*, kad priimtumėte WS-Man užklausas į bet kurį šio įrenginio IP.Atlikti šiuos pakeitimus? y „WinRM“ buvo atnaujintas nuotoliniam valdymui.Sukūrė WinRM klausytoją HTTP://*, kad priimtų WS-Man užklausas į bet kurį šio įrenginio IP.C:\Vartotojai\Administratorius>

Nustatęs „Quickconfig“, iš naujo paleidau išvardinimo komandą su šiais rezultatais:

C:\Vartotojai\Administratorius> winrm e winrm/config/listener KlausytojasAdresas = *Transportas = HTTPPrievadas = 80Pagrindinio kompiuterio pavadinimasĮjungta = tiesaURLPrefix = wsmanSertifikatas Nykščio atspaudasListeningOn = 10.253.15.98, 127.0.0.1, ::1, fe80::5efe:10.253.15.98%11, fe80::9583:2148:e1ef:6444%10C:\Vartotojai\Administratorius>

Dabar žinau, kad WinRM įjungtas.

Beje, jei norite išjungti WinRM, turite naudoti šią komandą:

winrm ištrinti winrm/config/listener?IPAdress=*+Transport=HTTP

Norint naudoti WinRM, visi su juo bendraujantys mazgai turi būti to paties domeno, kaip ir mazgo, kuriame veikia WinRM, nariai.

Kas yra WinRS ir kaip juo naudotis?

WinRS yra „Windows Remote Shell“ akronimas. Naudodami „WinRS“ galite pateikti nuotolines užklausas „Windows“ įrenginiams, kuriuose veikia „WinRM“. Tačiau nepamirškite, kad jūsų kompiuteryje taip pat turi veikti WinRM, kad jis veiktų su WinRS.

Kaip matote toliau pateiktoje diagramoje, laimėtojai yra visų funkcijų komandų eilutės įrankis su daugybe nuorodos informacijos, kaip juo naudotis.

2 pav.: WinRS komandinės eilutės parinktys

Vienas iš labiausiai paplitusių WinRS naudojimo būdų yra komandų vykdymas nuotoliniame kompiuteryje. Žinoma, šis ryšys vyksta naudojant HTTP protokolą (80 prievadas) (numatytasis).

Žemiau pateikiamas pavyzdys naudojant WinRS: paleidau komandas localhost pagrindiniame kompiuteryje. Aš paleidau dvi komandas: "" ver'Ir' rež. C:‘. Kiekvienu atveju buvo gauta atitinkama informacija.

3 pav.: WinRS komandų demonstravimas

Rezultatai

WinRM ir WinRS yra labai galingi nauji įrankiai, apie kuriuos turėtų sužinoti Windows sistemos administratoriai. Pagalvokite apie nuotolinio valdymo su WinRM/WinRS galimybes! Galite įdiegti programas, keisti nustatymus, spręsti problemas (žinoma, jei problema ne tinklo komunikacijoje). Galite eiti toliau ir prijungti WinRS su scenarijumi, kad atliktumėte šias užduotis keliuose kompiuteriuose. Taip pat atminkite, kad nesvarbu, ar naudojate šiuos įrankius, ar ne, jūsų sistemos valdymo programinė įranga netrukus vienaip ar kitaip juos naudos.

Apsauga

Auto dalys Jūsų automobiliui bet kuriame regione.

Kartais būnu Sankt Peterburge darbo reikalais, man davė nuorodą į įmonę, kuri siūlo kasdienę butų nuomą Sankt Peterburge. Gera alternatyva viešbučiams.