internetul Windows. Android

Serviciul Winrm nu ascultă cererile de gestionare a WS. Cum se activează gestionarea la distanță Windows utilizând politica de grup

Winrm și WinRs sunt inovații în Windows Vista., Windows Server. 2003 R2, Windows Server 2008 (și Core Server 2008). Acestea sunt noi puternice. linie de comandaAdministratorii de sistem de susținere a îmbunătățit gestionarea la distanță și execuția la distanță a programelor pe mașinile Windows. Cu toate acestea, ei trebuie să pornească mai întâi, în plus, veți avea nevoie de ceva timp pentru a studia funcționalitatea acestora. Sunteți norocos: Acest articol are tot ce aveți nevoie pentru a începe să utilizați aceste fonduri chiar astăzi!

Ce este Windows Remote Management (Winrm)?

Gestionarea de la distanță Windows (redusă Winrm) este un nou serviciu de control al telecomenzii pentru Windows Server 2003 R2, Windows Vista și Windows Server 2008. Winrm este o componentă "Server" a acestei aplicații de control la distanță și a vestitorilor (Windows Remote Shell - la distanță miercuri ferestre) - Acesta este un "client" pentru Winrm, care rulează pe un computer la distanță, încercând să gestioneze de la distanță serverul Winrm. Cu toate acestea, ar trebui să observăm că Winrm trebuie să fie instalat pe ambele computere, astfel încât firele să poată funcționa și să primească informații despre sistemul la distanță. Winrm se bazează pe standardele de servicii web pentru management (WS-Management). Aceasta înseamnă că Winrm utilizează protocolul HTTP (PORT 80) și cererile de săpun pentru a efectua lucrări. Este bine deoarece cererile HTTP sunt ușor de reprimat prin firewall. Din aceasta există un efect bun și rău: pe de o parte, va fi mai ușor să controlați computerul la distanță prin Internet, dar, pe de altă parte, atacatorul este mai ușor să atace de la distanță același computer. Un alt avantaj mic de utilizare a portului 80 este că nu este nevoie să deschideți alte porturi pe server dacă conexiunile HTTP primite au fost deja permise.

Potrivit Microsoft, Winrm este "un nou remediu Microsoft pentru stabilirea unui API bazat pe API pentru controlul sistemului". Deci, dacă ați fost interesat anterior de studierea unor astfel de bani, mi se pare că acest lucru "acest lucru nou standard Microsoft "îl face demn de studiu.

Este posibil să fiți familiarizați cu baza de date Windows Management Instrumentation (WMI) (Windows Management Toolkit). Dar, doar în cazul, voi spune că această bază de date conține tot felul de informații despre hardware și software. Calculator. Aproape fiecare administrator de aplicații sistemul Windows.Nivelul bazei de date WMI este redus pentru a efectua toate sarcinile administrative pe acest PC.

Winrm va folosi baza de date WMI pentru a îndeplini sarcini similare cu cele pe care le-ați efectuat utilizând altele software. cum ar fi vbscript. Avantajul lui Winrm este că utilizează HTTP (Port 80), așa cum am spus, în plus, există chiar și cod specialPermiterea WinRM să împartă conexiunile primite la portul 80 cu o componentă IIS, care poate lucra deja cu acest port.

Winrm suportă tipuri diferite Autentificare pentru a preveni realizarea sarcinilor administrative clienților și serverelor. Desigur, trebuie să vă amintiți că, inclusiv Winrm, deschideți o altă modalitate de a vă ataca sistemul. Cu toate acestea, așa cum sunt pentru orice port deschis.Dacă sunt instalate autentificarea și criptarea, deoarece ar trebui să se presupună că ați luat toate măsurile de precauție rezonabile.

Producătorul managerului dvs. de software poate fi programat deja să utilizeze Winrm în următoarele lansări ale software-ului lor, astfel încât să puteți utiliza deja Winrm prin alte aplicații. Cu toate acestea, puteți utiliza această componentă și puteți deține acest lucru, utilizând comanda winrm.cmd.. Cu acest instrument CLI, puteți extrage foarte exact informații din baza de date WMI pentru orice sarcină pe care o rezolvați.

După cum veți vedea mai jos, Winrm are o interfață de linie de comandă cu mai mulți parametri. Informațiile de referință WinRM vor fi afișate chiar și atunci când nu este activată în sistemul dvs.

Figura 1: parametrii liniei de comandă Winrm

Cum să activați și să utilizați Winrm?

Dacă utilizați Windows 2008 Server, Winrm este deja instalat, dar nu este activat în mod implicit. Aceasta este o precauție bună. Cea mai ușoară modalitate de a verifica dacă Winrm este activat și dacă este rulată pe aparatul dvs., acesta merge la promptul de comandă și se formează:

winrm enumerate winrm / config / ascultător

Dacă nu primiți un răspuns, înseamnă că Winrm nu rulează. Pentru a ajusta Winrm pe start automat și permisiunea acces de la distanță Utilizați comanda winrm Quickconfig., de exemplu:

C: \\ Utilizatori \\ Administrator\u003e winrm Quickconfig. Winrm nu este configurat pentru a permite accesul la rețea la această mașină pentru management.Următoarele modificări trebuie făcute:Creați un ascultător Winrm pe http: // * pentru a accepta cererile WS-Man la un IP pe această mașină.Faceți aceste schimbări? y. Winrm a fost actualizat pentru gestionarea la distanță.Crearea unui ascultător Winrm pe http: // * pentru a accepta cererile WS-Man la un IP pe această mașină.C: \\ Utilizatori \\ Administrator\u003e

După configurarea QuickConfig, am reluat comanda de listare cu următoarele rezultate:

C: \\ Utilizatori \\ Administrator\u003e winrm e winrm / config / ascultător AscultătorAdresa \u003d *Transport \u003d http.Port \u003d 80.Numele de gazdă.Activat \u003d Adevărat.URLPREFIX \u003d WMSIN.CertificatThumbprint.LISTENINGON \u003d 10.253.15.98, 127.0.0.1, :: 1, Fe80 :: 5EFE: 10.253.15.98% 11, FE80 :: 9583: 2148: E1ef: 6444% 10C: \\ Utilizatori \\ Administrator\u003e

Acum știu că Winrm este activat.

Apropo, dacă doriți să dezactivați Winrm, trebuie să utilizați o astfel de comandă:

wINRM DELETE WINRM / CONFIG / LISTENER? IPADRESS \u003d * + TRANSPORT \u003d HTTP

Pentru a utiliza Winrm, toate nodurile care interacționează cu acesta trebuie să fie membri ai aceluiași domeniu ca un nod cu Winrm.

Ce este firii și cum să-l utilizați?

WinRs este o abreviere pentru carcasa de la distanță Windows (ferestre de miercuri la distanță). Cu Winds, puteți face cereri de la distanță pentru Windows cu Windows pe care se execută Winrm. Cu toate acestea, nu uitați că mașina dvs. trebuie, de asemenea, să ruleze Winrm pentru a lucra cu frizele.

După cum vedeți în diagrama de mai jos, firs. Este un instrument de comandă completă cu un număr mare de informații de referință despre locul de muncă și acest lucru.

Figura 2: parametrii liniei de comandă ainilor

Una dintre cele mai moduri ordinare Utilizarea frontierelor este executarea comenzilor pe o mașină la distanță. Desigur, această interacțiune are loc utilizând protocolul HTTP (PORT 80) (implicit).

Mai jos este un exemplu de utilizare a frontierelor: Am executat comenzi pe nodul localhost. Am lansat două comenzi: ver.'Și' dIR C:". În fiecare caz, au fost primite informații adecvate ca răspuns.

Figura 3: Demonstrarea comenzilor de frunze

Rezultate

Winrm și WinRs sunt fonduri noi noi despre care sistem administratorii de ferestre Doar obligat să afle. Gândiți-vă la posibilitățile de control la distanță cu Winrm / WinRs! Puteți instala programe, modificați setările, rezolvați problemele (desigur, dacă problema nu se află în interacțiunea rețelei). Puteți merge mai departe și conectați-vă cu un script pentru a efectua aceste sarcini pe mai multe computere. De asemenea, amintiți-vă că, indiferent dacă utilizați aceste fonduri sau nu, software-ul dvs. sistem de gestionare, În curând le vor folosi oricum.

Umed

Piese auto pentru mașina dvs. în orice regiune.

Uneori sunt în St. Petersburg pentru Afaceri, am aruncat o legătură cu compania, care oferă chirie zilnică de apartamente în St. Petersburg. Nu este o alternativă rea la hoteluri.

10/17/2011 DON JONES.

Mi-am dat seama că creatorii PowerShell au fost oarecum leneși și asta e bine. Nu au vrut să codifice parametrul -computerme pentru fiecare echipă, așa că a fost creat sistem general Sub numele de "interacțiune la distanță". În esență, acest sistem activează orice comandă pentru a rula pe un computer la distanță. Puteți efectua chiar și comenzi diferite care există pe un computer la distanță, dar lipsesc pe a ta. Aceasta înseamnă că nu trebuie să instalați în mod constant fiecare echipă pe stația dvs. de lucru. Acest sistem la distanță este foarte eficient și oferă o serie de capabilități administrative interesante.

Când am început să folosesc PowerShell, am fost dus la echipa de service și am observat că are un parametru -computerme. Acest lucru înseamnă că vă puteți conecta la serviciu și de alte computere? După o serie de experimente, am constatat că a fost doar ceea ce a fost scris. Am devenit interesat și am început să caut parametrii executivi din alte echipe. Și supărat când am aflat că erau doar câțiva dintre ei.

PowerShell oferă două tipuri de interacțiuni la distanță: interacțiune la distanță una la una (1: 1) și interacțiune la distanță una la mai multe (1: n). Înainte de a vorbi despre ei, vreau să clarific câteva elemente de bază.

Bazele interacțiunii la distanță în PowerShell

Interacțiunea PowerShell de la distanță funcționează aproape ca Telnet și alte tehnologii vechi de control la distanță. Când executați comanda, începe de fapt pe un computer la distanță. Tot ceea ce revine la computerul dvs. este rezultatul acestei echipe. Spre deosebire de Telnet sau shell Secure (SSH), PowerShell utilizează un nou protocol de sistem de comunicații numit Servicii Web pentru Management (WS-Management). Protocolul acționează pe partea de sus a HTTP sau HTTP secure (HTTPS), ceea ce facilitează poziționarea unui traseu prin firewall-uri, dacă este necesar, deoarece protocolul utilizează un singur port pentru a stabili comunicarea. Implementarea WS-Management de la Microsoft este sub forma unui serviciu de fundal, numit Windows Remote Management. Winrm este instalat cu PowerShell 2.0 și pornește implicit pe servere precum Windows Server 2008 R2. Pe Windows 7, este instalat în mod implicit, dar nu este activat. Trebuie să activați Winrm pe acele computere la care doriți să trimiteți o comandă. Computerul este necesar fizic pentru a lansa serviciul Winrm.

Toate comenzile PowerShell produc obiecte ca ieșire. Când executați comanda de la distanță, ieșirea sa trebuie să fie acoperită într-o formă care poate fi transmisă cu ușurință în rețea utilizând protocolul HTTP sau HTTPS. Deci, PowerShell convertește automat obiectele de ieșire din fișiere XML.care sunt transmise în rețea. După ce ați realizat computerul, acestea sunt convertite înapoi la obiecte cu care poate funcționa PowerShell. Cu toate acestea, aceste obiecte din spate transformate sunt de fapt imagini instantanee. Ei nu se pot actualiza în fiecare minut. Astfel, dacă trebuie să ajungeți la obiecte care sunt procese care rulează pe un computer la distanță, rezultatul rezultat va fi adevărat numai pentru o anumită perioadă de timp în care au fost generate aceste obiecte. Valorile, cum ar fi utilizarea memoriei și a procesorului, nu se vor schimba. Mai mult decât atât, nu veți putea să faceți obiecte convertite pentru a face ceva. De exemplu, nu puteți comanda obiectul să vă opriți. Aceasta este restricția de bază a interacțiunii la distanță, dar nu vă va împiedica să lucrați și să efectuați sarcini interesante.

Există doar câteva cerințe de bază pentru a utiliza sistemul de interacțiune la distanță.

  • Pe măsură ce computerul dvs. (este un computer local) și unul dintre cei pe care doriți să trimiteți o comandă (este un computer la distanță), ar trebui să funcționeze cu Windows PowerShell 2.0? Windows XP este depășită versiunea Windows.La care puteți instala PowerShell 2.0. În acest fel, versiune veche De asemenea, pot participa la sesiunea la distanță.
  • În mod ideal, computerele locale și la distanță trebuie să fie membre ale unui domeniu sau membri ai domeniilor de încredere / încredere. Cu sistemul de interacțiune la distanță, puteți lucra în afara domeniului, dar este dificil, iar aici nu voi spune despre asta. Pentru a afla mai multe despre acest scenariu, consultați secțiunea Ajutor PowerShell, unde spune Remote_trucbleshooting.

Winrm Review.

Acum, să mergem la Winrm, deoarece trebuie să setați setările pentru acest serviciu pentru a începe interacțiunea la distanță. Din nou, repet, trebuie doar să setați setările de interacțiune la distanță Winrm și PowerShell pe un computer la distanță. În majoritatea mediilor în care am lucrat, administratorii au activat un sistem de interacțiune la distanță pe fiecare computer care rulează cu versiuni XP sau mai noi. Acest lucru face posibilă pătrunderea calculatoarelor desktop și portabile neobservate, ceea ce poate fi foarte util (ceea ce înseamnă că utilizatorii unor astfel de computere nu vor ști ce faceți).

Este imposibil să spunem că Winrm este ceva special pentru PowerShell. WinRM poate pune trafic la mai multe aplicații administrative. În esență, Winrm acționează ca un dispecer. Când apare traficul, Winrm decide ce aplicație trebuie să interacționeze cu acesta și să o marcheze cu numele aplicației destinatarului. Cererea de primire trebuie să se înregistreze la Winrm, astfel încât Winrm va putea să asculte traficul primitor în numele său. Cu alte cuvinte, nu trebuie doar să activați Winrm, ci și să înregistrați carcasa de putere ca punct finit pentru Winrm.

Cel mai. calea usoara Efectuarea ambelor sarcini este de a începe PowerShell în numele administratorului și executarea comenzii Enable-Psremoting. Puteți vedea manualul de pe o altă comandă numită set-wasnquickconfig. Nu este nevoie să rulați comanda. Acesta va face permanent-PSRemoting pentru dvs. și, de asemenea, efectuează încă câțiva pași care sunt necesari pentru a stabili interacțiunea și munca la distanță. În esență, comanda Enable-PSRemoting lansează serviciul Winrm, stabilește setările pentru a porni automat, înregistrează PowerShell ca punct final și chiar stabilește excepții de la Firewall-ul Windows pentru a rezolva traficul Winrm primit.

Dacă nu doriți să ocoliți toate computerele pentru activarea interacțiunii la distanță, puteți utiliza obiectul politica de grup Obiect de politică de grup (GPO). Setările GPO necesare sunt încorporate în controlorii de domenii Windows Server 2008 R2. Deschideți doar GPO și mergeți de-a lungul configurației computerului

Șabloane administrative \\ Componente Windows. În partea de jos a listei veți găsi atât carcasa de la distanță, cât și Windows Remote Management (WRM), ale căror setări trebuie să fie setate. Secțiunea Ajutor despre problemele sistemului de interacțiune la distanță (la distanță_trubleshooting) vă va oferi instrucțiuni detaliate despre cum să faceți acest lucru. Vizualizați cum să permiteți remunerarea într-o întreprindere și cum să activați ascultătorilor utilizând o politică de grup în ajutor.

Winrm 2.0 (care este folosit PowerShell) în mod implicit utilizează portul TCP 5985 pentru HTTP și PORT 5986 pentru HTTPS. Acest lucru asigură că Winrm nu va intra în conflict cu serverele web instalate la nivel local, care sunt configurate pentru a asculta porturile 80 și 443. Puteți seta setările Winrm pentru a utiliza porturi alternative, dar nu recomand acest lucru. Fir că părăsiți aceste porturi, toate comenzile de acces la distanță PowerShell vor funcționa bine. Dacă schimbați aceste porturi, va trebui întotdeauna să specificați un port alternativ când porniți comanda de acces la distanță. Aceasta înseamnă că va trebui să imprimați mai mult. Dacă trebuie să editați portul, puteți introduce comanda:

Winrm Set Winrm / Config / Listener? Adresa \u003d * + Transport \u003d http @ (port \u003d "1234")

Figurile 1234 înseamnă portul de care aveți nevoie. Aici această comandă este scrisă în mai multe rânduri, dar trebuie să o introduceți într-o singură linie. Același lucru este valabil și pentru toate celelalte echipe descrise în articol. Dacă trebuie să utilizați HTTPS în loc de HTTP, puteți modifica această comandă pentru a configura noul port HTTPS. Trebuie să admită că există o modalitate de a seta setările WERM pe computerele locale pentru a utiliza porturi implicite alternative. Astfel, nu este necesar să definiți în mod constant un port alternativ când executați comanda de acces la distanță. Dar să lucrăm cu setările implicite specificate de Microsoft.

Dacă vă simțiți în setările GPO în carcasa de la distanță, veți observa că puteți seta, de exemplu, cât timp sesiunea la distanță va rămâne inactivă înainte ca serverul să o întrerupă; Câți utilizatorii de funcționare simultan pot accesa serverul la distanță la un moment dat; Câte memorie și procesează fiecare carcasă la distanță poate utiliza; Numărul maxim de cochilii de la distanță pe care utilizatorii le pot deschide la un moment dat. Aceste setări vă vor ajuta să vă asigurați că serverele dvs. nu sunt copleșite de administratorii uitați. Cu toate acestea, în mod implicit, trebuie să fiți un administrator care să utilizeze interacțiunea la distanță, astfel încât să nu vă faceți griji cu privire la utilizatorii obișnuiți care vă înfundă serverele.

Interacțiune la distanță 1: 1

Folosind o interacțiune la distanță 1: 1, obțineți, în esență, accesați linia de comandă de pe un computer la distanță. Orice comenzi pe care le dați sunt rulate chiar pe un computer la distanță și veți vedea rezultatele din fereastra liniei de comandă. Parțial, arată ca utilizarea Desktop la distanță. Conexiune, cu excepția faptului că sunteți limitat la linia de comandă PowerShell. Sistemul de interacțiune la distanță PowerShell utilizează o parte din resursele pe care le necesită desktopul la distanță, deci are un impact mult mai mic asupra serverelor dvs.

Pentru a stabili o conexiune de 1: 1 cu un computer la distanță numit Server-R2, trebuie să rulați

ENTER-PSSSISION SERVER-R2 Server-R2

Presupunând că ați activat un sistem de interacțiune la distanță pe un dispozitiv la distanță, computerul se află în același domeniu în sine, iar rețeaua dvs. funcționează bine, veți primi conexiunea dorită. PowerShell vă permite să știți că ați ajuns la țintă schimbând invitația liniei de comandă la

PS C: \\\u003e

Partea vă informează că tot ceea ce faceți este să se întâmple pe server-r2. După aceea, puteți rula orice comenzi pe care le doriți. Puteți importa chiar module și adăugați extensiile PowerShell (Pssnapins) pentru a fi amplasate pe un computer la distanță.

Chiar și permisiunea va rămâne aceeași. Copia dvs. de PowerShell va lucra cu același marker de securitate cu care se execută. PowerShell o face să folosească Kerberos, deci nu trece numele de utilizator și parola în rețea. Orice comandă pe care o executați pe un computer la distanță va funcționa sub acreditările dvs., deci totul, pe execuția a ceea ce aveți permisiunea, puteți face. Se pare că se înregistrează direct de la consola de calculator și folosind o copie a PowerShell a acestui computer. Este aproape de genul asta. Iată câteva diferențe.

  • Dacă aveți un script PowerShell pentru profilul dvs. pe un computer la distanță, acesta nu va porni când conectați utilizând sistemul de acces la distanță. Pur și simplu, profilurile sunt un pachet de comenzi care sunt automat pornite de fiecare dată când deschideți fereastra liniei de comandă. Acestea sunt folosite pentru a încărca automat extensii, module și altele asemenea.
  • Sunteți limitat la o politică de execuție a calculatorului la distanță. De exemplu, politica calculatorului dvs. este instalată pe Remotesignet, astfel încât să puteți rula scripturi nesemnate locale. Dacă politica computerului la distanță este setată la restricționat (setare implicită), acesta nu vă va permite să rulați orice scripturi atunci când interacționați de la distanță.

Multe echipe PowerShell merg în perechi: unul face altceva - opusul ei. În cazul nostru, intrarea dvs. vă conectează la un computer la distanță, iar ieșirile de ieșire închide această conexiune. Exit-passsion nu are nevoie de parametri. După pornire, conexiunea la distanță este închisă, iar invitația ferestrei liniei de comandă este returnată la forma normală. Ce se întâmplă dacă uitați să fugi de ieșire-passsion? Nu iti face griji. PowerShell și Winrm sunt capabili să afle ceea ce ați făcut și să închideți conexiunea la distanță dacă este necesar.

Vreau să dau un sfat. Când vă conectați la un computer la distanță, nu rulați Enter-SSSession pe ea până când nu vă dați seama pe deplin ce faceți. De exemplu, lucrați la computer. Sunteți conectat (ă) la server-r2. În șirul PowerShell pe care îl executați

PS C: \\\u003e ENTER-PSSESSION SERVER-DC4

Acum Server-R2 conține o conexiune deschisă de la server-dc4. Acest lucru creează un lanț de interacțiune la distanță ", care este dificil de urmărit. În plus, serverele dvs. nu sunt necesare supraîncărcate. Pot exista momente când trebuie să faceți acest lucru (de exemplu, Server-DC4 se află în spatele firewall-ului și nu puteți obține acces direct la acesta, deci trebuie să utilizați server-R2 ca intermediar). Cu toate acestea, regula generală este după cum urmează: încercați să evitați lanțurile de interacțiune la distanță.

Interacțiune la distanță 1: n

Unul dintre cele mai interesante lucruri din PowerShell este o interacțiune la distanță 1: n. Acesta vă permite să trimiteți comenzi la mai multe computere la distanță în același timp - calcule distribuite pe scară largă. Fiecare computer separat va executa comanda și va trimite rezultatele. Totul se face folosind comanda Invook-comandă în acest formular:

INVOKE-COMAND-COMERCIAME SERVER-R2, SERVER-DC4, SERVER12 -COMMAND (Get-EventLop Security -Neest 200 | unde ($ _. Eventid -Eq 1212))

Echipa din paranteze curbate externe este transmisă la toate cele trei computere la distanță. În mod implicit, PowerShell poate comunica imediat cu 32 de computere. Dacă definiți mai mult de 32 de computere, acestea vor fi construite. Apoi, când un computer completează lucrarea, comanda efectuează următoarele. Dacă aveți într-adevăr o rețea de mare viteză și computere puternice, puteți crește cantitatea utilizând comanda Throdtlelimit. Citiți despre cum să utilizați această opțiune în INVOKE-COMAND, puteți de pe pagina de ajutor.

Singurul parametru pe care nu îl veți vedea pe pagina de ajutor a acestei comenzi este parametrul de comandă. El, așa cum am arătat deja, funcționează bine. Parametrul de comandă este un pseudonim sau un nume scurt pentru parametrul ScriptBlock, care este listat pe pagina de ajutor. Este mai ușor să folosiți comanda pentru mine, așa că am tendința să o folosesc în loc de ScriptBlock, dar lucrează în mod egal.

Dacă citiți cu atenție pagina de ajutor pentru TVOKE-COMAND, ați observat, de asemenea, parametrul care vă permite să specificați fișierul de script, nu comanda. Parametrul FilePath vă permite să trimiteți un script la computerele șterse; Aceasta înseamnă că puteți automatiza anumite sarcini complexe și fiecare computer va efectua partea de lucru.

Acum, concentrați-vă pe parametrul numelui computerului. În exemplul codului invocat-comandă, am avut o listă de nume de calculatoare, separate prin virgule. Dacă aveți o mulțime de computere, atunci este posibil să nu doriți să imprimați numele de fiecare dată când vă conectați la ele. În schimb, puteți crea un fișier text care conține un nume de computer pe o singură linie, fără virgule, citate sau altceva. De exemplu, dacă fișierul dvs. text a fost numit Webservers.txt, ați folosi un astfel de cod:

INVOKE-COMANDS -COMMAND (DIR) -Computerme (Get-Content Webservers.txt)

Parantezele rotunde fac ca Powershell să execute mai întâi comanda Get-Content - arată ca paranteze rotunde în munca matematică. Apoi rezultatele obținute de conținut sunt investite în parametrul -computerme.

De asemenea, puteți solicita un nume de computer în Active Directory, dar este mai dificil. Pentru a găsi un computer, puteți utiliza comanda Get-AdComputer, dar nu introduceți această comandă în paranteze, așa cum au făcut-o în conținut. De ce nu? GET-Content Probleme Stringuri simple de text, în timp ce Get-AdComputer produce obiecte de calculator. Parametrul -compurtername așteaptă șiruri de caractere. Dacă trebuia să primească obiecte "computer", nu aș ști ce să fac cu ei. Prin urmare, dacă doriți să utilizați Get-Adomputer, trebuie să obțineți valori din proprietățile de nume ale obiectelor computerului. Ca aceasta:

INVOKE-COMANDE -COMMAND (DIR) -Computerme (Get-AdComputer -Filter * -Searchbase "OU \u003d Vânzări, DC \u003d Compania, DC \u003d PRI" Selectați-Obiect -expand Nume)

În paranteze, obiectele computerului sunt transmise comenzii de selectare-obiect, iar parametrul -expand este utilizat pentru a afla proprietățile de nume ale acestor obiecte de computer. Rezultatul expresiei în paranteze este un set de nume de calculatoare, nu obiecte de calculator. Numele computerelor sunt doar ceea ce este necesar de parametrul Nume-Computer.

Dacă nu sunteți familiarizat cu Get-Adomputer, să vedem ce face această echipă. Parametrul -filter determină faptul că toate computerele trebuie incluse în rezultate, iar parametrul de bază de cercetare prescrie PowerShell astfel încât să înceapă să caute computere în grupul organizațional de vânzări (OU) din domeniul companiei.Pri. Comanda Get-AdComputer este disponibilă numai în Windows Server 2008 R2 și în Windows 7 după setarea setului de utilitare a instrumentelor de administrare a serverului de la distanță. În aceste sisteme de operareoh, alergi

Import-modul ActiveDirectory

pentru a descărca comenzi pentru serviciul de director la carcasa comenzii, astfel încât să poată fi utilizate.

Există altceva!

Toate aceste exemple au fost prezentate pentru sesiunile de la egal la distanță de interacțiune la distanță. Dacă doriți să restaurați conexiunea cu aceleași computere (sau computer) de mai multe ori într-o perioadă scurtă de timp, puteți crea sesiuni reutilizate, permanente. Este foarte util dacă conexiunea necesită acreditări alternative, numărul portului nu este implicit sau altceva care necesită parametri suplimentari.

Pentru a crea sesiuni permanente, trebuie să utilizați comanda Nou-Passsion, apoi să le salvați într-o variabilă pentru acces ușor. De exemplu, următorul cod creează o sesiune de interacțiune la distanță cu trei computere și le salvează într-o variabilă de sesiuni de $:

$ Sesiuni \u003d noul psession -compurtername unul, doi, trei -port 5555-corector de domeniu \\ Administrator

Sesiunile interacțiunii la distanță sunt închise automat când închideți carcasa comenzii, dar înainte de acea perioadă pot lua memoria și încărcați ușor procesorul pe sistemele locale și la distanță. Pentru a le închide cu precizie, puteți utiliza comanda Eliminare-SSSSsion:

$ sesiuni | Îndepărtați-voință

Când aveți nevoie să redeschideți sesiunile, puteți utiliza comanda INVOKE-COMANDER:

INVOKE-COMANDS -COMMAND (DIR) - SESIUNI DESIGNĂ

Sau puteți aplica Enter-SSSSION:

Enter-SSSSISSION - SESIUNEA DE $ $

Rețineți că, în codul Enter-SSSSsion, se deschide o singură sesiune a interacțiunii la distanță. Variabila index 1 raportează PowerShell că trebuie să redeschideți sesiunea cu computerul numit două (indicele este numărat din valoarea zero).

După cum vedem, beneficiul de la interacțiunea la distanță a PowerShell este foarte mult. Dacă o utilizați, vă veți asigura cât va extinde orizonturile activității dvs.

Don Jones ( [E-mail protejat]) - Instructor tehnic pe PowerShell (www.windowsitpro.com/go/donjoneesspower), autor de mai mult de 35 de cărți. Are titlul de Microsoft MVP



Am cumva probleme cu Winrm pe două servere.

1. Setspn.
O problemă a fost că intrarea SPN http /<имя сервера> au fost înregistrate pentru unii "stânga" cont Utilizator.

A găsit aceste echipe de înregistrări
setspn -f -q * /<имя сервера>

Apoi le-a șters cu comenzi
setspn -d http /<имя сервера>.<имя домена> <имя домена>\<левая учётная запись>
setspn -d http /<имя сервера> <имя домена>\<левая учётная запись>

Apoi, activarea-PSRemoting-Force a avut succes.

2. Pachetul de limbă
Și pe cel de-al doilea server a fost problema dificilă, presupusă cu firewall Imposibil de verificat starea firewall-ului, Am scuzat o grămadă de site-uri, iar decizia sa găsit intuitiv pe baza răspunsului despre ambalajul de limbă instalat.

Winrm Quickconfig.
Serviciul Winrm este Alady Running pe această mașină.
Wmsmanfault.
Mesaj
Furnizorfault.
Wmsmanfault.
Mesaj \u003d Imposibil de verificat starea firewall-ului.

Număr de eroare: -2147024894 0x80070002
Sistemul nu poate gasi fisierul specificat.

Răspunsul a fost scris această eroare Acesta este tratat prin eliminarea ambalajului de limbă suplimentară.
Dar am intrat altfel. Am o operație în limba engleză cu un pachet de limbă rusă suplimentar. Tocmai am schimbat limba de interfață în limba rusă.
Panoul de control, standardele lingvistice și regionale, limbile și tastaturile au schimbat limba de interfață din Anglia în limba rusă.
Rulați deconectarea și ați intrat din nou. Deschise PowerShell și repetat Winrm Quickconfig

PS C: \\ Windows \\ System32\u003e Winrm QC

Serviciul WinRM nu este configurat pentru a rezolva gestionarea computerului la distanță.
Următoarele modificări trebuie făcute:

Creați ascultător Winrm la http: // * pentru a primi interogări WS-Man pe oricare dintre adresele IP ale acestui computer.

Rulați modificările? Y.

Winrm Service actualizat pentru telecomandă.

Crearea ascultătorului Winrm pe http: // * pentru a primi cereri WS-Man pe oricare dintre adresele IP ale acestui computer.

A avut succes, dar încă nu este suficient.

Eroarea refuzată de acces a apărut când încercați să executați comenzi de la distanță pe acest server de pe un alt computer.

New-SSSSION: [<имя сервера>] Conectarea la serverul de la distanță<имя сервера> Eșuat cu următorul mesaj de eroare: Accesul este refuzat. Pentru mai multe informații, consultați Subiectul Ajutor de Ajutor DEGE_REMOTE_TRUBLESHOOTING.

Apoi am repetat Activare-PSRemoting

PS C: \\ Windows \\ System32\u003e Activare-PSRemoting

Fast Set Winrm.
Rulați comanda "set-wasnquickcilfig" pentru includerea pe acest calculator Telecomandă utilizând serviciul Winrm.
Acțiunile necesare.
1. Rulați sau reporniți (dacă rulați deja) Serviciul Winrm.
2. Schimbarea tipului de serviciu Winrm la "Autorun".
3. Crearea unui ascultător pentru a primi solicitări pe orice adresă IP.
4. Configurați excepțiile de firewall pentru traficul de trafic WS-Management (numai protocolul HTTP).

Continua?

(Valoarea implicită este "y"): a
Serviciul Winrm este deja configurat să primească solicitări pe computer.
Winrm este deja configurat pentru a rezolva gestionarea computerului la distanță.

confirmarea
Chiar vrei să faci această acțiune?
Executarea operației "Înregistrarea configurației sesiunii" peste configurația sesiunii Obiect țintă "
"Microsoft.powershell32" nu a fost găsit. Comanda "Regission-passionConfiguration Microsoft.powershell32 va fi executat
-ProcesorChitectura X86 -Force "pentru a crea o configurație de sesiune" Microsoft.powershell32 ". Winrm Service va
a reluat. ".
[Y] Da - y [a] Da pentru toate - a [N] NO - N [l] Nu pentru toate - L [s] Suspendare [?] Ajutor
(Valoarea implicită este "y"): a

După aceea, Winrm pe acest server a câștigat așa cum ar trebui.

În acest articol, voi încerca să le spun cum să activez și să configurez centralizat serviciul de gestionare a telecomenzii Windows (Winrm) pe toate computerele țintă utilizând politica de grup. Permiteți-mi să vă reamintesc că Gestionarea de la distanță Windows este un serviciu special care permite administratorilor să poată accesa și gestiona de la distanță și gestionați sistemul de operare Windows și server (și, dacă ați folosit anterior setul de utilități Microsoft Sysinternals, MRM ar trebui să-l placă).
Luați PC-ul obișnuit cu și pe care nu este activat funcția Windows. MANAGEMENT LA DISTANTA. La promptul de comandă, introducem următoarea comandă:


Următorul mesaj de eroare ar trebui să apară, indicând faptul că MRM nu este setat:
WMSN vina. Clientul nu se poate conecta la destinația specificată în cerere. Număr de eroare: - 2144108526 0x80338012

Dacă aveți nevoie să îl configurați pe Winrm manual pe un sistem separat, este suficient să introduceți comanda:

Winrm Quickconfig.

În cazul în care aveți nevoie pentru a configura Winrm pe grupul de computere, puteți utiliza parametrii speciali ai politicii de grup. Politica de interes este localizată în secțiunea: Configurația calculatorului -\u003e Politici -\u003e Componente Windows -\u003e Windows Remote Management (Winrm) -\u003e Winrm Service. Trebuie să activați următorii parametri:
Permiteți configurarea automată a ascultătorilor
Permiteți autentificarea de bază.


În secțiunea Filtru IPv4, indicați *, ceea ce înseamnă că computerul poate primi conexiuni (și, prin urmare, comenzi de control) de oriunde, înseamnă că foile de pe computer vor primi cereri pe toate interfețele IP.


Apoi, în secțiunea Configurare a computerului -\u003e Politici -\u003e Componente Windows -\u003e Windows Shell Remote Activează elementul:
Permiteți accesul la distanță de la distanță


Și în cele din urmă, trebuie să specificați tipul de pornire de la serviciul de service la distanță Windows la "Automatic" (automat). Permiteți-mi să vă reamintesc că puteți gestiona metoda de rulare a serviciilor din următoarea secțiune a politicii de grup: Configurarea computerului -\u003e Setări Windows -\u003e Setări de securitate -\u003e Servicii de sistem.


După activarea WINRM utilizând politica de grup, veți verifica starea serviciului utilizând echipa familiară:


Asigurați-vă că tipul de pornire al serviciului Winrm este setat în Automatic. Deși pe faptul că tipul de lansare "automată cu o întârziere", pentru că În mod prestabilit, este specificată o întârziere de pornire (întârziereAutoSTART \u003d 1 în HKEY_LOCAL_MACHINE \\ SYSTEM \\ CURRENTCONTROLSET \\ SERVICES \\ WINRM)) pentru serviciul Winrm.

Acum, după activarea WINRM, utilizând politicile de grup, acest sistem poate fi controlat de la distanță folosind comenzile WinTS. Următoarea comandă va deschide linia de comandă care rulează pe sistemul la distanță:

Wins -r: Computer01 cmd

După ce apare linia de comandă, puteți efectua și vedea rezultatul executării oricăror comenzi pe un computer la distanță, ca și cum lucrați la acesta local. Rețineți că, pe computerul dvs., Winrm ar trebui, de asemenea, să fie activat.

Setarea interacțiunii la distanță în PowerShell (partea 1)

Pentru a asigura posibilitatea interacțiunii la distanță cu folosind PowerShell., Este necesar să se facă anumite setări. Numărul acestor setări depinde de sistemul de operare, de mediul de rețea, de cerințele de securitate (și, de asemenea, Dumnezeu știe ce). Ca destul de multe setări, voi încerca să vorbesc despre cele mai importante dintre ele. Sa mergem…

Activați telecomanda

Pentru a gestiona un computer la distanță, trebuie să rezolvați interacțiunea la distanță pe acest computer. Excepția este Windows Server 2012, unde toate caracteristicile de control la distanță sunt activate în mod implicit. Pentru toate celelalte sisteme de operare este necesar:

1. Porniți serviciul Winrm și puneți-l pe Autorun;
2. Creați un ascultător (ascultător), care va asculta cererile de control;
3. Includeți regula firewall care permite traficul de management WS.

Pentru a configura un computer, cea mai ușoară utilizare a cmdlet-ului Activare-PSRemoting. Acesta va face toate acțiunile necesare și va înregistra, de asemenea, configurația sesiunii implicite. Pentru a suprima cererile de confirmare, puteți adăuga parametrul forum-forte. Consola trebuie lansată cu drepturi de administrator, altfel va fi emisă o eroare.

ÎN mediu de domeniu Puteți utiliza politici de grup pentru a configura Remoting PS.

În secțiunea Configuration \\ Politici \\ Windows Setări \\ Sectarea serviciilor de sistem, veți include "Politica" Window Management Management (WS-Management ". Setează modul de pornire pentru serviciul Winrm.

În configurația calculatorului \\ Șabloane de administrare \\ Componente Windows \\ Windows Remote Management (Winrm) \\ Winrm Service, porniți politica "Permiteți configurația automată a ascultătorilor", care creează un ascultător pe portul 5985 (port http în mod implicit). În plus, puteți specifica ce IP poate fi conectat. Dacă nu este nevoie de filtrare IP, puneți semnul *, ceea ce înseamnă să primiți conexiuni de la orice adresă.

Apoi, accesați setările Configuration \\ Windows \\ Setări de securitate \\ Secțiunea Firewall-ului Windows și creați o nouă regulă în configurația computerului \\ Windows Firewall Security Security \\ Reguli de inbound. Selectați elementul predefinit (reguli predefinite) și selectați Windows Remote Management în listă.

Rețineți că puteți alege două moduri de funcționare - o poziție și compatibilă. În primul caz, portul 5985 va fi deschis de WINRM implicit, în cel de-al doilea port 80 (pentru compatibilitatea cu vechile versiuni Winrm). Ambele sunt alese în mod implicit.

Configurați configurația între computere

Pentru conectare la distanță PowerShell folosește autentificarea reciprocă între computere. Aceasta înseamnă că, înainte de a stabili conexiunea, aparatul la distanță trebuie să-și confirme autenticitatea. Pur și simplu puneți-vă, dacă vă conectați la un computer numit SRV1, atunci înainte de a instala conexiunea (SRV1) trebuie să vă dovedească că este într-adevăr, altfel conexiunea nu va fi instalată.

Dacă computerele sunt membre ale unui singur domeniu sau sunt în diferite domenii, dar au încredere în alte domenii, atunci va fi executată autentificarea reciprocă servicii de domenii. Principalul lucru este că numele computerului este permis pentru adresa IP și corespunzătoare numelui computerului în Active Directory.

Atenţie:când este conectat, trebuie să specificați numele de calculatoare valide, adică Deoarece acestea sunt specificate în Active Directory. Dacă computerul intră în domeniul local, puteți specifica numele computerului, de exemplu SRV1.. Pentru a specifica un nume de computer dintr-un alt domeniu, trebuie să specificați o completă numele domeniului (FQDN) - Srv1.contoso.com.. Dacă specificați adresa IP sau un alt nume DNS (de exemplu, CNAME alias), atunci autentificarea reciprocă nu va funcționa.

Dacă unul sau ambele computer nu sunt incluse în domeniu, atunci pentru autentificarea reciprocă există două opțiuni: Adăugați o mașină la distanță la lista de gazde de încredere sau utilizați SSL.

Gazde de încredere.

Adăugarea unui computer la gazdele de încredere - calea este simplă, dar mai puțin sigură. Pentru computerele din gazdele de încredere, autentificarea reciprocă este de fapt dezactivată. Prin urmare, merită să folosiți în acest fel cu mare grijă.

Puteți adăuga un computer la nodurile de încredere folosind PowerShell. Pentru a crea o listă de gazde de încredere și a adăuga computerul SRV1 la acesta, folosim comanda:

Set-element wsin: \\ localhost \\ client \\ troustendhosts - valvate srv1.contoso.com

La adăugarea mai multor computere, numele lor pot fi enumerate prin virgulă. Este permisă specificarea nu numai a numelui, ci adresa IP a computerului. De asemenea, acceptă simbolurile de substituție. De exemplu, puteți adăuga toate computerele de la domeniul Contoso.com la gazdele de încredere, specificând valoarea * .contoso.com sau deloc fără excepție:

Set-element Wmsin: \\ LocalHost \\ Client \\ Trustendhosts -Value *

Pentru a adăuga un nume de computer într-o listă existentă de noduri de încredere, trebuie mai întâi să salvați valoarea curentă în variabilă și apoi să alocați valoarea la lista divizată, care include valorile curente și noi. De exemplu, pentru a adăuga un computer SRV2 la o listă de noduri de încredere, utilizați următoarea comandă:

$ Curr \u003d (obțineți-un element Wmsman: \\ localhost \\ client \\ troustendhosts) valoare
Set-element wsin: \\ localhost \\ client \\ troustendhosts - valoarea "$ curr, srv2.contoso.com"

Ei bine, și vedeți lista de noduri de încredere, puteți comanda:

Obțineți-elementul Wbo: \\ LocalHost \\ Client \\ TrustedHosts

De asemenea, pentru a adăuga la TrustedHosts, puteți utiliza politica de grup. În configurația calculatorului \\ Șabloane de administrare \\ Componente Windows \\ Windows Remote Management (Winrm) \\ winrm client, porniți politica "Gazde de încredere" și adăugați nume sau adrese IP de computere prin virgulă. Pastele sunt acceptate.

Notă: Dacă sunt configurate TrustedHosts prin GPO, atunci PS nu poate fi schimbat. Același lucru este valabil și pentru toate celelalte setări PS Remoting.

Conexiunea utilizând SSL este cea mai protejată versiune a interacțiunii la distanță. Dar în comparație cu restul modului în care este destul de complicat în setare, așa că va trebui să-l facă puțin.

În primul rând, pentru a utiliza această metodă, avem nevoie de digital certificat SSL. Pentru mașina la care ne vom conecta. Obținerea unui certificat - un subiect separat, nu ne vom opri. În mediul de testare, voi folosi utilitarul MakeCert care face parte din Windows SDK și creează un certificat auto-semnat:

makeTERT -A SHA1 -R -PE -N "CN \u003d WKS8" -EKU 1.3.6.1.5.5.7.3.1 -SS My -SR LocalMachine -Sky Schimbul -SP "Microsoft RSA Schannel Criptographic Furnizor" -Sy 12-M 12 "C: \\ myssl.cer"

Această comandă va crea un certificat SSL pentru o perioadă de un an și va fi plasat în magazinul de certificate de calculator local. Rețineți că certificatul trebuie să fie emis la același nume pe care îl veți specifica în comanda de conectare.

După primire, certificatul trebuie adăugat la autoritatea rădăcină de încredere (centre de certificare de bază de încredere). Pentru aceasta, deschideți certificatul și faceți clic pe butonul "Instalare certificat".

Expertul de import al certificatului începe. Specificați locația depozitului "PC-ul local".

Ca depozit, alegeți "Centrele de Certificare Rădăcină de încredere".

Acum, certificatul nostru este de încredere. Deschiderea din nou și pe fila "Compoziție", găsim o amprentă de certificat (certificatThumbprint). Copiați-l în clipboard.

Acum puteți crea un ascultător pentru HTTPS. Deschideți consola PowerShell și introduceți comanda:

NEW-WSININSTANCE WINRM / CONFIG / LISTENER -SELESTET @ (adresa \u003d '*'; transport \u003d 'https') -ValueEt @ (hostname \u003d 'wks8'; certificatThumbrint \u003d "xxx ')

În câmpul CertificatThumbrint, introduceți amprenta certificatului copiat în paragraful anterior.

Excepții de ferestre de firewall (dacă sunt pornite) pentru un nou ascultător, trebuie să fiți configurat manual, automat, nu vor fi creați. Prin urmare, vom crea o nouă regulă pentru traficul primitor pe porturile TCP 5986 și 443:

NEW-NetFireWallrule -DisplayName "Windows Remote Management (HTTPS)" -DIRECT INBOUNDOCOL TCP -Localport 5986,443 nu permiteți -Enabled Adevărat

De asemenea, pentru a crea regula, puteți utiliza clipul grafic sau utilitatea liniei de comandă Netsh, care este mai mult.

Apoi, mergem la computerul SRV1 de la care ne vom conecta. Pentru că folosesc un certificat auto-semnat, va trebui să adauge certificate de radiculare de încredere și la client. Copiați fișierul certificat Myssl.cer pe SRV1 și instalați comanda:

certUtil -addstore rădăcină C: \\ myssl.cer

Asta-i tot, setarea este finalizată. Acum vă puteți conecta. Deschideți sesiunea interactivă pe echipa WKS8:

Enter-SSSSISSION - WKS8 \\ Kirill -sessl

Rețineți că, atunci când este conectat prin SSL, trebuie să introduceți acreditările, precum și specificați tipul de conexiune. Atunci totul este ca de obicei.

Dezactivați cecurile

Când este conectat prin SSL, se verifică că certificatul a fost emis de o autoritate de certificare de încredere și a fost lansată pentru această mașină. Pur și simplu, numele din certificat trebuie să se potrivească cu numele specificat în comanda de conectare, iar editorul certificatului trebuie să fie în lista centrelor de certificare de bandă de încredere. Dacă se găsește o nerespectare a acestor condiții la verificarea, conexiunea nu va avea loc.

În principiu, acest lucru este corect, dar dacă este necesar, verificarea poate fi anulată. Pentru a face acest lucru, în proprietățile sesiunii există doi parametri:

SkipCacheck - anulează verificarea editorului de certificate;
-SkipcnCheck - Anulează verificarea conformității numelui calculatorului.

Creați o nouă sesiune utilizând acești parametri poate fi, de exemplu, aici:

$opțiune \u003d New-Masssionoption --Skipcacheck -skipcncheck
Enter-SSSSISSION --Computerime WKS8 -Sessionoption $ Opțiune - WKS18 \\ Kirill -Utusessl

Adevărat, în acest caz, semnificația certificatelor SSL este pierdută, iar apoi este mai ușor să se utilizeze gazdele tricotate. Dar există o astfel de oportunitate și este necesar să știți despre asta.

Setari aditionale

Începând cu a doua versiune, Winrm în mod implicit ascultă portul 5985 pentru HTTP și 5986 pentru HTTPS. Pentru compatibilitatea cu versiunile vechi (sau pentru a nu deschide porturi suplimentare pe firewall), puteți activa suplimentar ascultătorii pe porturile tradiționale 80 și 443. pentru http:

Set-element wsin: \\ localhost \\ serviciu \\ activcompatilyhttplistener $ Adevărat

Și pentru HTTPS:

Set-element Wmsin: \\ LocalHost \\ Service \\ EnabCompatilyyhttpsListener $ Adevărat

Același lucru se poate face folosind politicile de grup. Pentru a face acest lucru, în configurația computerului \\ Șabloane de administrare \\ Componente Windows \\ Windows Remote Management (Winrm) \\ Winrm Service (Winrm Service (Activați compatibilitatea Listenerului HTTP și pornirea compatibilității Listenerului de compatibilitate ".

Porturile implicite pot fi modificate și indicați pentru a asculta orice port non-standard, de exemplu Port 8080:

Set-element Wmsin: \\ LocalHost \\ Listener \\ Listener * \\ Port -Value 8080

Notă: Instalarea ascultătorilor pe porturile non-standard va crește ușor siguranța. Cu toate acestea, rețineți că, dacă portul implicit va avea de fiecare dată când îl puteți specifica manual când este conectat.

Asta e tot. În articole, luați în considerare configurația sesiunilor la distanță, crearea punctelor finale (punctul final) și altceva pe lucrurile mici 🙂