Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • Erori
  • Cum se conectează linia de comandă a unui computer la distanță. PsExec - utilitar pentru executarea comenzilor de la distanță

Cum se conectează linia de comandă a unui computer la distanță. PsExec - utilitar pentru executarea comenzilor de la distanță

Utilitare precum Telnet și software de management de la distanță precum PC Anywhere de la Symantec vă permit să rulați programe pe sisteme la distanță, dar nu sunt ușor de instalat deoarece trebuie să instalați și software-ul client pe sistemele de la distanță pe care doriți să le accesați. PsExec este o versiune ușoară a Telnet. Vă permite să executați procese pe sisteme la distanță folosind toate capacitățile interfeței interactive a aplicațiilor console, fără a fi nevoie să instalați manual software-ul client. Principalul beneficiu al PsExec este capacitatea de a invoca interactiv CLI pe sistemele de la distanță și de a rula de la distanță instrumente precum IpConfig. Acesta este singurul mod de a afișa informații despre sistemul de la distanță pe ecranul computerului local.

Notă. Unele scanere antivirus raportează că unul sau mai multe dintre aceste programe sunt infectate cu virusul „admin la distanță”. Niciunul dintre programele din PsTools nu conține viruși, dar au fost folosiți de viruși, ceea ce duce la aceste avertismente.

Instalare

Doar copiați programul PsExec în folderul executabil. Când lansați comanda psexec, este afișat ajutorul pentru sintaxa comenzii.

PsExec rulează pe Windows Vista, NT 4.0, Win2000, Windows XP și Server 2003, inclusiv versiunile OS pe 64 de biți

Utilizare

Un articol de Mark Russinovici în numărul din iulie 2004 al revistei Windows IT Pro Magazine descrie metode suplimentare de lucru cu programul PsExec.

utilizare: psexec [\\ computer [, computer2 [, ...] | @fișier] [- u utilizator [-p parola]] [- ns] [- l] [- s | -e] [- x] [- i [sesiune]] [- c [-f | -v]] [-w director] [- d] [-<приоритет>] [- un n, n, ...] program [argumente]

calculator

Instruiește PsExec să ruleze aplicația pe computerul sau computerele specificate. Dacă nu este specificat niciun nume de computer, PsExec va lansa aplicația pe sistemul local, dar dacă este specificat un asterisc (\\ *) pentru numele computerului, atunci PsExec va lansa aplicația pe toate computerele din domeniul curent.

@fişier

Instruiește PsExec să ruleze aplicația pe toate computerele enumerate în fișierul text specificat.

Procesoarele pe care poate fi rulată aplicația sunt separate prin virgule, iar procesoarele sunt numerotate începând de la 1. De exemplu, pentru a rula aplicația pe procesoarele doi și patru, introduceți „-a 2,4”

Programul specificat este copiat în sistemul de la distanță pentru execuție. Dacă acest parametru nu este specificat, atunci aplicația trebuie să fie localizată în folderul de sistem al sistemului de la distanță.

Indică să nu așteptați finalizarea cererii. Acest parametru ar trebui utilizat numai atunci când rulează aplicații non-interactive.

Profilul de cont specificat nu este încărcat.

Programul specificat este copiat pe sistemul de la distanță, chiar dacă un astfel de fișier există deja pe sistemul de la distanță.

Programul care se lansează accesează desktopul sesiunii specificate pe sistemul de la distanță. Dacă nu este specificată nicio sesiune, atunci procesul este executat în sesiunea de consolă.

Când începe procesul, utilizatorului i se acordă drepturi limitate (drepturile grupului Administratori sunt revocate și utilizatorului i se acordă doar drepturile atribuite grupului Utilizatori). În Windows Vista, procesul începe cu un nivel de securitate scăzut.

Vă permite să setați întârzierea pentru conectarea la computere la distanță (în secunde).

Vă permite să specificați o parolă opțională pentru numele de utilizator. Dacă acest parametru este omis, vi se va solicita să introduceți o parolă, iar parola nu va fi afișată pe ecran.

Procesul de la distanță este pornit din contul de sistem.

Vă permite să specificați un nume de utilizator opțional pentru autentificarea la sistemul de la distanță.

Fișierul specificat este copiat în sistemul de la distanță în locul celui existent numai dacă numărul său de versiune este mai mare sau este mai nou.

Vă permite să specificați directorul de lucru pentru proces (calea în interiorul sistemului la distanță).

Afișează interfața de utilizator pe desktopul Winlogon (numai pentru sistemul local).

-prioritate(prioritate)

Vă permite să setați diferite priorități pentru proces: -low (scăzut), -subnormal (sub medie), -abovenormal (peste medie), -high (high) sau -realtime (timp real).

program

Numele programului de rulat.

argumente

Argumentele trecute (rețineți că căile fișierelor trebuie specificate ca căi locale pe sistemul țintă).

Utilizați ghilimele pentru a specifica un nume de aplicație care conține spații, de exemplu psexec \\ marklap "c: \ longname \ app.exe". Datele introduse sunt transmise sistemului de la distanță atunci când apăsați tasta „Enter”; pentru a finaliza procesul de la distanță, trebuie să apăsați combinația de taste Ctrl-C.

Dacă nu este specificat niciun nume de utilizator, atunci procesul de la distanță începe din același cont ca și programul PsExec. Cu toate acestea, deoarece procesul de la distanță este uzurparea identității, acesta nu va avea acces la resursele de rețea ale sistemului de la distanță. Dacă este specificat un nume de utilizator, atunci procesul de la distanță este lansat din contul specificat și obține acces la aceleași resurse de rețea de pe sistemul de la distanță ca și acest cont. Rețineți că parola este trimisă la sistemul de la distanță în text clar.

La accesarea sistemului local, această versiune de PsExec poate fi utilizată în locul Runas, deoarece PsExec nu necesită drepturi de administrator.

Exemple de

Această comandă invocă interfața interactivă a liniei de comandă pe sistemul \\ marklap:

psexec \\ marklap cmd

Această comandă pornește programul IpConfig pe sistemul de la distanță cu parametrul / all și afișează datele primite pe ecranul sistemului local:

psexec \\ marklap ipconfig / all

Această comandă copiază programul test.exe pe sistemul de la distanță și îl rulează interactiv.

psexec \\ marklap -c test.exe

Dacă un astfel de program este deja instalat pe sistemul de la distanță și nu se află în directorul de sistem, specificați calea completă către acest program

psexec \\ marklap c: \ bin \ test.exe

Această comandă rulează programul Regedit în mod interactiv din contul de sistem pentru a vizualiza aceste chei de registry SAM și SECURITY:

psexec -i -d -s c: \ windows \ regedit.exe

Această comandă este utilizată pentru a invoca Internet Explorer ca utilizator limitat:

psexec -l -d "c: \ fișiere de program \ internet explorer \ iexplore.exe"

Sarcina a apărut pentru a efectua o operațiune folosind linia de comandă pe un alt computer, desigur, mergeți la utilizator pentru a lansa linia de comandă și introduceți comenzi - nu metoda noastră, trebuie să pornim linia de comandă a computerului la distanță fără să ne ridicăm de pe scaun și efectuați acțiunile necesare în linia de comandă. Desigur, o astfel de acțiune poate fi efectuată folosind programe de conectare la distanță, dar acest lucru nu este întotdeauna convenabil și necesită ca dvs. și utilizatorul să aveți un program similar (client-server). Procedura de conectare la linia de comandă a altui computer poate fi efectuată destul de simplu folosind comanda PSEXEC.

PsExec este un utilitar de linie de comandă cu capacitatea de a invoca interactiv interfața de linie de comandă pe sisteme Windows la distanță și de a rula diverse comenzi de la distanță.

Acest utilitar poate fi instalat doar pe computerul administratorului. Pentru a instala, trebuie să-l descărcați, aici este link-ul către Site oficial Microsoft ... După descărcarea arhivei, trebuie să o dezarhivați, să găsiți fișierul PsExec.exe în folderul dezarhivat. Faceți clic pe el de două ori, va apărea o fereastră cu un acord de licență, faceți clic pe „ De acord".

Să analizăm sintaxa comenzii:

psexec [\\ computer [, computer2 [, ...] | @fișier] [- u utilizator [-p parola]] [- ns] [- l] [- s | -e] [- x] [- i [sesiune]] [- c [-f | -v]] [-w director] [- d] [-<приоритет>] [- un n, n, ...] program [argumente]

calculator Instruiește PsExec să ruleze aplicația pe computerul sau computerele specificate. Dacă nu este specificat niciun nume de computer, PsExec va lansa aplicația pe sistemul local, dar dacă este specificat un asterisc (\\ *) pentru numele computerului, atunci PsExec va lansa aplicația pe toate computerele din domeniul curent.

@fişier Instruiește PsExec să ruleze aplicația pe toate computerele enumerate în fișierul text specificat.

-A Procesoarele pe care poate fi rulată aplicația sunt separate prin virgule, iar procesoarele sunt numerotate începând de la 1. De exemplu, pentru a rula aplicația pe procesoarele doi și patru, introduceți „-a 2,4”

-c Programul specificat este copiat în sistemul de la distanță pentru execuție. Dacă acest parametru nu este specificat, atunci aplicația trebuie să fie localizată în folderul de sistem al sistemului de la distanță.

-d Indică să nu așteptați finalizarea cererii. Acest parametru ar trebui utilizat numai atunci când rulează aplicații non-interactive.

-e Profilul de cont specificat nu este încărcat.

-f Programul specificat este copiat pe sistemul de la distanță, chiar dacă un astfel de fișier există deja pe sistemul de la distanță.

-i Programul care se lansează accesează desktopul sesiunii specificate pe sistemul de la distanță. Dacă nu este specificată nicio sesiune, atunci procesul este executat în sesiunea de consolă.

-l Când începe procesul, utilizatorului i se acordă drepturi limitate (drepturile grupului Administratori sunt revocate și utilizatorului i se acordă doar drepturile atribuite grupului Utilizatori). În Windows Vista, procesul începe cu un nivel de securitate scăzut.

-n Vă permite să setați întârzierea pentru conectarea la computere la distanță (în secunde).

-p Vă permite să specificați o parolă opțională pentru numele de utilizator. Dacă acest parametru este omis, vi se va solicita să introduceți o parolă, iar parola nu va fi afișată pe ecran.

-s Procesul de la distanță este pornit din contul de sistem.

-u Vă permite să specificați un nume de utilizator opțional pentru autentificarea la sistemul de la distanță.

-v Fișierul specificat este copiat în sistemul de la distanță în locul celui existent numai dacă numărul său de versiune este mai mare sau este mai nou.

-w Vă permite să specificați directorul de lucru pentru proces (calea în interiorul sistemului la distanță).

-X Afișează interfața de utilizator pe desktopul Winlogon (numai pentru sistemul local).

-prioritate(prioritate) Vă permite să setați diferite priorități pentru proces: -low (scăzut), -subnormal (sub medie), -abovenormal (peste medie), -high (high) sau -realtime (timp real).

program Numele programului de rulat.

argumente Argumentele trecute (rețineți că căile fișierelor trebuie specificate ca căi locale pe sistemul țintă).

Exemple de lucru în echipă PSEXEC:

1) Pentru a porni linia de comandă a altui computer, trebuie să introduceți
psexec \\<имя компьюетра>cmd

De exemplu:
psexec \\ WIN782 cmd


apoi puteți introduce comenzile de care aveți nevoie.

2) Pentru a rula orice program (în acest exemplu test.exe) pe computerul de la distanță, trebuie să executați comanda (această comandă copiază programul test.exe în sistemul de la distanță și îl execută în modul interactiv).

psexec \\<имя компьютера>-c test.exe

De exemplu:
psexec \\WIN782-c test.exe

3) Dacă un astfel de program este deja instalat pe sistemul de la distanță și nu se află în directorul de sistem, specificați calea completă către acest program

psexec \\ WIN782 c: \ temp \ test.exe

Această lecție va arăta cum să ștergeți un fișier prin linia de comandă în Windows(7, 8, XP, Vista). Comenzile DEL sau ERASE vă vor ajuta în acest sens, care sunt folosite atunci când nu puteți șterge fișierul în mod obișnuit. Căci, DEL și ERASE nu vor funcționa.

Desigur, pentru început. Veți obține cele mai bune rezultate cu această acțiune.

Dacă folosiți această lecție, atunci fișierul va fi șters imediat fără a-l trimite la coșul de gunoi.

În cmd introduceți DEL /? și apăsați Enter pentru a previzualiza parametrii comenzii. Dacă ați făcut corect, veți vedea o explicație (captură de ecran de mai jos).

Utilizarea cmd la pornirea Windows

Uneori devine necesar să mergeți la cmd înainte de a porni sistemul. Datorită faptului că un program rău intenționat blochează o intrare cu succes sau că sectorul de pornire al sistemului este deteriorat, următorii pași vă vor ajuta:

  1. Deschideți promptul de comandă când Windows pornește
  2. În cmd introduceți DiskPartși apăsați enter
  3. Apoi, trebuie să scrieți volumul listei și să apăsați pe Enter din nou (vezi captura de ecran de mai jos). Acest lucru vă va permite să vedeți litera unității în care doriți să ștergeți fișierul.
  4. Când vi se solicită, tastați ieșire și apăsați Enter.

Acum nu ezitați să introduceți opțiunile pentru comenzile de ștergere, care sunt descrise mai jos.

Făcând acest lucru, veți șterge orice fișier de pe computer folosind linia de comandă.

Ștergerea unui anumit fișier

Pentru a șterge un anumit element, trebuie să cunoașteți numele și extensia acestuia. În caz contrar, crește probabilitatea de a șterge lucrul greșit!

În cmd introduceți următoarea comandă și apăsați enter:

DEL / F / S / Q / A „Element de cale completă cu extensie”

De exemplu, dacă vreau să șterg cu numele „șterge” și cu extensia (.bat) aflată pe unitatea C în folderul „coș de gunoi”, trebuie să introduc comanda:

DEL / F / S / Q / A „C: \ gunoi \ delete.bat”

Ștergeți toate fișierele cu sau fără confirmare din linia de comandă

În acest caz, trebuie să confirmați sau să respingeți acțiunile cu litere (Y - da / N - nu) pentru a șterge toate fișierele din directorul principal și subfolderele.

Pentru a confirma, utilizați următoarea sintaxă:

DEL / F / S / Q / A „Calea completă către dosar \ *”

Dacă trebuie să șterg toate fișierele de pe unitatea D din folderul „în coșul de gunoi”, care conține multe alte directoare și fișiere, folosesc comanda:

DEL / F / S / Q / A "D: \ adăugați în coș \ *"

Pentru a ștergeți fișierul din linia de comandă cu confirmare, / P este adăugat la parametri și arată astfel:

DEL / P / F / S / A "D: \ experiment \ *"

Este posibil să ștergeți toate fișierele cu o anumită extensie, apoi comanda va lua forma:

DEL / F / S / Q / A „Calea completă către dosar \ *. Extensie”

Este util mai ales atunci când există o mulțime de elemente inutile de același tip, care nu sunt o opțiune pentru a repeta manual, ci pot fi pur și simplu eliminate într-un lot din cmd.

Cu abordarea corectă, poți ștergeți fișierul prin linia de comandă, în câteva secunde. Sper că recomandările au fost utile. Dacă sunteți interesat de cmd, vă sfătuiesc să vă familiarizați cu materialul, care nu va fi mai puțin interesant.

  • Administrare server,
  • Administrarea sistemului,
  • terminologia IT
  • În zilele noastre chiar și pentru câini a venit cu telecomanda .


    Revenind la ciclul „Rezumatul administratorului”, aș dori să vorbesc despre opțiunile de lansare a programelor executabile pe computere la distanță. Acest articol va fi de interes pentru cei care nu au încă sisteme de management centralizate, dar au deja o înțelegere a oboselii de a ocoli manual stațiile de lucru și serverele. Sau cei care nu sunt interesați de soluții „la cheie” pentru că sunt antisportivi.


    În ceea ce privește motivul pentru care este necesară o astfel de lansare de programe, se poate cita isteria recentă cu Petya / Not-Petya, când toată lumea s-a grăbit să verifice / dezactiveze și să descarce actualizări. Da, și este, de asemenea, posibil să efectuați un inventar sau să instalați un patch urgent folosind această metodă.


    Am primit odată un loc de muncă într-o organizație în timpul epidemiei Kido\Conficker. Cel mai simplu mod de a afla dacă totul este bine în IP-ul companiei a fost un utilitar glorios de la Kaspersky numit Kido Killer, care a verificat prezența unui virus și l-a eliminat. Nu a fost distractiv să rulez manual programul pe o sută bună de mașini, așa că a trebuit să mă familiarizez cu automatizarea.

    Dacă în sistemele de operare * nix SSH este de obicei folosit pentru lansarea de la distanță, atunci metodele Windows de lansare a programelor și scripturilor sunt cu adevărat ca nisipul în deșert. Voi analiza principalele opțiuni, atât cunoscute, cât și exotice. Nu voi atinge lucruri atât de evidente precum un server telnet, mai ales că Microsoft l-a eliminat deja din sistemele de operare moderne.

    Metodele sunt vechi, testate în timp

    Psexec

    Poate că acesta este primul lucru care îmi vine în minte când vine vorba de rularea programelor de la distanță. Utilitarul de la Mark Russinovich a fost folosit încă de pe vremea Windows NT și este încă în uz. Pe lângă funcția principală, o puteți folosi atât ca Runas, cât și pentru lansarea programelor într-o sesiune de utilizator a unui server terminal. Psexec de asemenea, vă permite să setați nucleele procesorului pe care va rula programul și prioritatea acestuia în sistem.


    De exemplu, să vedem dacă a fost instalată o actualizare care remediază faimoasa vulnerabilitate SMB de pe lista de computere:


    psexec @ computers.txt / u USER / p PASS cmd.exe / v / c "" systeminfo | găsiți „KB4012212” || ecou!nume computer! >> \\ server \ share \ log.txt "" "

    Fișierul computers.txt conține o listă de computere. Puteți utiliza \\ * pentru a rula pe întregul domeniu. Fișierul \\ server \ share \ log.txt va conține numele stațiilor de lucru sau serverelor fără a fi actualizat. Dacă în domeniu există computere cu * nix la bord sau nu există acces la resursa rețelei administrative Administrator $- comanda nu va fi executată pe această mașină, dar procesarea va continua. Pentru a preveni blocarea scriptului de fiecare dată când încercați să vă conectați, puteți seta un timeout folosind tasta -n.


    Dacă computerul este oprit, nu vom ști despre asta. Prin urmare, este mai bine să verificați în prealabil disponibilitatea mașinilor sau să colectați informații despre succesul sau eșecul într-un fișier.


    Prin contra Psexec poate fi atribuită faptului că este adesea folosit de scriitorii de viruși din cauza confortului și popularității sale. Prin urmare, sistemele antivirus pot detecta utilitarul ca o amenințare de administrare la distanță.


    În mod implicit, procesul de pe mașina de la distanță rulează ca utilizatorul care a pornit Psexec. Dacă este necesar, numele de utilizator și parola pot fi setate în mod explicit sau puteți utiliza contul SISTEM.

    Wmic

    WMI (Windows Management Instrumentation), o implementare a standardului de management WBEM orientat pe obiecte, este adesea folosit pentru a gestiona sistemele Windows folosind diverse utilitare grafice. Puteți utiliza wbemtest.exe ca utilitar GUI pentru a lucra cu WMI.


    Pentru a lucra cu WMI din consola creată wmic.exe... De exemplu, pentru a verifica actualizările instalate, în loc de construcția înfiorătoare din exemplul anterior, puteți folosi o comandă simplă:


    wmic / node: „servername” qfe get hotfixid | găsiți „KB4012212”

    De asemenea, puteți utiliza lista de computere cu comanda /node:"@computers.txt".


    De asemenea, puteți rula programe folosind WMI - sintaxa este extrem de simplă:


    wmic / node: apelul procesului „nume server” creați „cmd / c unele comenzi”

    Din păcate, spre deosebire de Psexec, nu veți putea obține rezultate în consolă - va trebui să scoateți rezultatele comenzii într-un fișier.


    În mod implicit, procesul de pe mașina de la distanță rulează ca utilizatorul care a pornit wmic. Dacă este necesar, numele de utilizator și parola pot fi setate explicit.

    Politicile și scripturile de grup

    Dacă opțiunile anterioare nu necesitau un mediu de domeniu, atunci este necesar un domeniu în acest caz. Scripturile sunt acceptate atunci când un utilizator se conectează și se deconectează din sistem, precum și când acesta este pornit și oprit. Deoarece fiecare administrator Windows le-a întâlnit, nu voi descrie în detaliu cum să le folosesc - vă voi aminti doar unde să le căutați.



    Scripturi care sunt executate la pornirea și oprirea sistemului.



    Scripturi care sunt executate atunci când un utilizator se conectează și se dezactivează.


    Scripturile configurate în secțiunea utilizator sunt executate în numele utilizatorului, iar în secțiunea computer - sub contul SISTEM.

    Sarcini programate

    Un mod destul de interesant care merită dreptul la viață. Sarcinile programate pot fi create din linia de comandă folosind utilitarul schtasks.exe, executați-le, apoi ștergeți. Mai multe detalii despre sintaxă pot fi găsite în documentație, dar voi analiza un exemplu de utilizare a sarcinilor programate într-un mediu de domeniu. Să presupunem că trebuie să executăm o comandă cât mai repede posibil, indiferent dacă computerul este oprit sau nu. Pentru aceasta, sunt folosite așa-numitele Preferințe de politică de grup.


    Căutați instalarea sarcinilor programate în configurația computerului sau utilizatorului - „Setări - Setări panou de control - Sarcini programate”.



    Crearea unei noi sarcini programate.


    Pentru a executa o comandă sau un script ASAP, va trebui să creați o „sarcină imediată (Windows 7 și o versiune ulterioară)”. Dacă dintr-o dată există mașini care rulează Windows XP în infrastructură, atunci „Următoarea sarcină (Windows XP)” va funcționa.


    Merită să creați mai multe politici cu filtre WMI adecvate sau să creați două sarcini programate diferite într-o singură politică de direcționare - de exemplu, folosind același filtru WMI. Acest lucru va ajuta la evitarea conflictelor într-un mediu eterogen cu Windows vechi și nou.


    Un exemplu de filtru WMI pentru a aplica politica numai computerelor care rulează Windows XP:


    SELECTAȚI * FROM Win32_OperatingSystem WHERE Versiunea LIKE „5.1%” ȘI ProductType = „1”

    Restul procedurii de creare a unei sarcini programate este banală. Singurul lucru, nu uitați să marcați elementul „Aplicați o dată și nu aplicați din nou” dacă sarcina nu necesită repornire.



    Rulați sarcina imediată o singură dată.


    Cu aceste sarcini programate, programul va porni imediat ce computerul primește o actualizare a politicii de grup. Acest lucru este convenabil: nu trebuie să verificați disponibilitatea computerelor în cazul Psexec și wmic și să forțați utilizatorii să-și repornească mașinile, ca în cazul scripturilor de politică de grup. Dacă este necesar, puteți copia fișierul script local în secțiunea „Setări - Configurare Windows - Fișiere”.


    Sarcinile programate vă permit să setați în mod explicit numele de utilizator pentru pornirea programului, inclusiv pentru SISTEM.

    Prin registru

    Modificarea registrului pe mașinile utilizatorilor este o opțiune ciudată, doar în caz de urgență. Puteți utiliza ramurile Run sau RunOnce. Citiți mai multe despre ele în documentație. Însăși modificarea registrului poate fi efectuată prin politici de grup sau din linia de comandă - de exemplu, cu următoarea comandă:


    reg add \\ COMPUTER \ HKLM \ Software \ Microsoft \ Windows \ CurrentVersion \ RunOnce / v script / t Reg_SZ / d "script.cmd"

    În funcție de ramura registrului, procesul va fi executat fie sub utilizatorul care s-a autentificat la sistem, fie sub contul SISTEM.


    Există și alte moduri, cum ar fi editarea comenzilor rapide în folderul Startup sau adăugarea la o comandă rapidă la un program popular && script.cmd, dar aceste metode sunt deja din seria „se poate, dar nu este necesar”.


    Acum să trecem la noile instrumente.

    Metode noi sau unde fără PowerShell

    PowerShell, fidel numelui său, se poate conecta la computere de la distanță folosind WMI, RPC și WS-Management (WSMan). Utilizarea ultimei metode necesită o configurare prealabilă.


    Cmdleturile care nu necesită preconfigurare au de obicei un parametru ComputerName, dar nici un parametru Session. Puteți vizualiza o listă de astfel de cmdleturi cu comanda:


    Obține-Comandă | unde ($ _. parameters.keys -conține „ComputerName” -și $ _. parameters.keys -notcontains „Sesiune”)

    Pentru a configura WSMan, în general, este suficient să rulați comanda Activare-PSRemoting-Force. Va porni serviciul de gestionare la distanță WinRM și va înregistra excepții în firewall - în principiu, acest lucru se poate face pentru întregul domeniu folosind politici de grup. Configurația este descrisă mai detaliat în documentație.


    După ce toate computerele sunt gata să accepte solicitări, ne putem conecta folosind cmdleturile PowerShell corespunzătoare. Pentru a testa conectivitatea, utilizați cmdletul Test-WSMan.



    Verificarea conectivității.


    Pentru a executa o anumită comandă sau script, utilizați cmdletul Invocare-Comandă cu următoarea sintaxă:


    Invoke-Command -ComputerName COMPUTER -ScriptBlock (COMMAND) -credential USERNAME

    Unde COMPUTER este numele computerului, COMMAND ― este numele comenzii și USERNAME este numele de utilizator, dacă este cazul.



    Ne uităm la conținutul discului de la un computer la distanță.


    Dacă trebuie să obținem o consolă cu drepturi depline - nu de dragul automatizării, ci de dragul controlului unui anumit computer, atunci putem folosi cmdletul Enter-PSSession.



    Lucrăm în consola unui computer la distanță.


    Permiteți-mi să vă reamintesc că cu ajutorul puteți restricționa cmdleturile disponibile pentru o astfel de sesiune sau puteți oferi acces la cele de care aveți nevoie fără drepturi de administrator.


    Desigur, pe lângă instrumentele încorporate și utilitarele mici, există multe programe pentru gestionarea structurii. Pe lângă soluțiile mature, instrumente de monitorizare precum Zabbix și chiar consola de control Kaspersky Anti-Virus pot fi folosite pentru a gestiona configurații precum Chef, Ansible și MS SCCM.


    Într-o perioadă de structuri eterogene, ar fi bine să poți gestiona Windows și Linux într-o manieră unificată. Acest lucru se poate face folosind PowerShell, care în sine este demn de un articol separat - merită sau este prea mult?


    Etichete:

    • lansare de la distanță
    • wmi
    • powershell
    Adaugă etichete

    În zilele noastre chiar și pentru câini a venit cu telecomanda .


    Revenind la ciclul „Rezumatul administratorului”, aș dori să vorbesc despre opțiunile de lansare a programelor executabile pe computere la distanță. Acest articol va fi de interes pentru cei care nu au încă sisteme de management centralizate, dar au deja o înțelegere a oboselii de a ocoli manual stațiile de lucru și serverele. Sau cei care nu sunt interesați de soluții „la cheie” pentru că sunt antisportivi.


    În ceea ce privește motivul pentru care este necesară o astfel de lansare de programe, se poate cita isteria recentă cu Petya \ Not-Petya, când toată lumea s-a grăbit să verifice / dezactiveze SMBv1 și să descarce actualizări. Da, și este, de asemenea, posibil să efectuați un inventar sau să instalați un patch urgent folosind această metodă.


    Am primit odată un loc de muncă într-o organizație în timpul epidemiei Kido\Conficker. Cel mai simplu mod de a afla dacă totul este bine în IP-ul companiei a fost un utilitar glorios de la Kaspersky numit Kido Killer, care a verificat prezența unui virus și l-a eliminat. Nu a fost distractiv să rulez manual programul pe o sută bună de mașini, așa că a trebuit să mă familiarizez cu automatizarea.

    Dacă în sistemele de operare * nix SSH este de obicei folosit pentru lansarea de la distanță, atunci metodele Windows de lansare a programelor și scripturilor sunt cu adevărat ca nisipul în deșert. Voi analiza principalele opțiuni, atât cunoscute, cât și exotice. Nu voi atinge lucruri atât de evidente precum un server telnet, mai ales că Microsoft l-a eliminat deja din sistemele de operare moderne.

    Metodele sunt vechi, testate în timp

    Psexec

    Poate că acesta este primul lucru care îmi vine în minte când vine vorba de rularea programelor de la distanță. Utilitarul de la Mark Russinovich a fost folosit încă de pe vremea Windows NT și este încă în uz. Pe lângă funcția principală, o puteți folosi atât ca Runas, cât și pentru lansarea programelor într-o sesiune de utilizator a unui server terminal. Psexec de asemenea, vă permite să setați nucleele procesorului pe care va rula programul și prioritatea acestuia în sistem.


    De exemplu, să vedem dacă a fost instalată o actualizare care remediază faimoasa vulnerabilitate SMB de pe lista de computere:


    psexec @ computers.txt / u USER / p PASS cmd.exe / v / c "" systeminfo | găsiți „KB4012212” || ecou!nume computer! >> \\ server \ share \ log.txt "" "

    Fișierul computers.txt conține o listă de computere. Puteți utiliza \\ * pentru a rula pe întregul domeniu. Fișierul \\ server \ share \ log.txt va conține numele stațiilor de lucru sau serverelor fără a fi actualizat. Dacă în domeniu există computere cu * nix la bord sau nu există acces la resursa rețelei administrative Administrator $- comanda nu va fi executată pe această mașină, dar procesarea va continua. Pentru a preveni blocarea scriptului de fiecare dată când încercați să vă conectați, puteți seta un timeout folosind tasta -n.


    Dacă computerul este oprit, nu vom ști despre asta. Prin urmare, este mai bine să verificați în prealabil disponibilitatea mașinilor sau să colectați informații despre succesul sau eșecul într-un fișier.


    Prin contra Psexec poate fi atribuită faptului că este adesea folosit de scriitorii de viruși din cauza confortului și popularității sale. Prin urmare, sistemele antivirus pot detecta utilitarul ca o amenințare de administrare la distanță.


    În mod implicit, procesul de pe mașina de la distanță rulează ca utilizatorul care a pornit Psexec. Dacă este necesar, numele de utilizator și parola pot fi setate în mod explicit sau puteți utiliza contul SISTEM.

    Wmic

    WMI (Windows Management Instrumentation), o implementare a standardului de management WBEM orientat pe obiecte, este adesea folosit pentru a gestiona sistemele Windows folosind diverse utilitare grafice. Puteți utiliza wbemtest.exe ca utilitar GUI pentru a lucra cu WMI.


    Pentru a lucra cu WMI din consola creată wmic.exe... De exemplu, pentru a verifica actualizările instalate, în loc de construcția înfiorătoare din exemplul anterior, puteți folosi o comandă simplă:


    wmic / node: „servername” qfe get hotfixid | găsiți „KB4012212”

    De asemenea, puteți utiliza lista de computere cu comanda /node:"@computers.txt".


    De asemenea, puteți rula programe folosind WMI - sintaxa este extrem de simplă:


    wmic / node: apelul procesului „nume server” creați „cmd / c unele comenzi”

    Din păcate, spre deosebire de Psexec, nu veți putea obține rezultate în consolă - va trebui să scoateți rezultatele comenzii într-un fișier.


    În mod implicit, procesul de pe mașina de la distanță rulează ca utilizatorul care a pornit wmic. Dacă este necesar, numele de utilizator și parola pot fi setate explicit.

    Politicile și scripturile de grup

    Dacă opțiunile anterioare nu necesitau un mediu de domeniu, atunci este necesar un domeniu în acest caz. Scripturile sunt acceptate atunci când un utilizator se conectează și se deconectează din sistem, precum și când acesta este pornit și oprit. Deoarece fiecare administrator Windows le-a întâlnit, nu voi descrie în detaliu cum să le folosesc - vă voi aminti doar unde să le căutați.



    Scripturi care sunt executate la pornirea și oprirea sistemului.



    Scripturi care sunt executate atunci când un utilizator se conectează și se dezactivează.


    Scripturile configurate în secțiunea utilizator sunt executate în numele utilizatorului, iar în secțiunea computer - sub contul SISTEM.

    Sarcini programate

    Un mod destul de interesant care merită dreptul la viață. Sarcinile programate pot fi create din linia de comandă folosind utilitarul schtasks.exe, executați-le, apoi ștergeți. Mai multe detalii despre sintaxă pot fi găsite în documentație, dar voi analiza un exemplu de utilizare a sarcinilor programate într-un mediu de domeniu. Să presupunem că trebuie să executăm o comandă cât mai repede posibil, indiferent dacă computerul este oprit sau nu. Pentru aceasta, sunt folosite așa-numitele Preferințe de politică de grup.


    Căutați instalarea sarcinilor programate în configurația computerului sau utilizatorului - „Setări - Setări panou de control - Sarcini programate”.



    Crearea unei noi sarcini programate.


    Pentru a executa o comandă sau un script ASAP, va trebui să creați o „sarcină imediată (Windows 7 și o versiune ulterioară)”. Dacă dintr-o dată există mașini care rulează Windows XP în infrastructură, atunci „Următoarea sarcină (Windows XP)” va funcționa.


    Merită să creați mai multe politici cu filtre WMI adecvate sau să creați două sarcini programate diferite într-o singură politică de direcționare - de exemplu, folosind același filtru WMI. Acest lucru va ajuta la evitarea conflictelor într-un mediu eterogen cu Windows vechi și nou.


    Un exemplu de filtru WMI pentru a aplica politica numai computerelor care rulează Windows XP:


    SELECTAȚI * FROM Win32_OperatingSystem WHERE Versiunea LIKE „5.1%” ȘI ProductType = „1”

    Restul procedurii de creare a unei sarcini programate este banală. Singurul lucru, nu uitați să marcați elementul „Aplicați o dată și nu aplicați din nou” dacă sarcina nu necesită repornire.



    Rulați sarcina imediată o singură dată.


    Cu aceste sarcini programate, programul va porni imediat ce computerul primește o actualizare a politicii de grup. Acest lucru este convenabil: nu trebuie să verificați disponibilitatea computerelor în cazul Psexec și wmic și să forțați utilizatorii să-și repornească mașinile, ca în cazul scripturilor de politică de grup. Dacă este necesar, puteți copia fișierul script local în secțiunea „Setări - Configurare Windows - Fișiere”.


    Sarcinile programate vă permit să setați în mod explicit numele de utilizator pentru pornirea programului, inclusiv pentru SISTEM.

    Prin registru

    Modificarea registrului pe mașinile utilizatorilor este o opțiune ciudată, doar în caz de urgență. Puteți utiliza ramurile Run sau RunOnce. Citiți mai multe despre ele în documentație. Însăși modificarea registrului poate fi efectuată prin politici de grup sau din linia de comandă - de exemplu, cu următoarea comandă:


    reg add \\ COMPUTER \ HKLM \ Software \ Microsoft \ Windows \ CurrentVersion \ RunOnce / v script / t Reg_SZ / d "script.cmd"

    În funcție de ramura registrului, procesul va fi executat fie sub utilizatorul care s-a autentificat la sistem, fie sub contul SISTEM.


    Există și alte moduri, cum ar fi editarea comenzilor rapide în folderul Startup sau adăugarea la o comandă rapidă la un program popular && script.cmd, dar aceste metode sunt deja din seria „se poate, dar nu este necesar”.


    Acum să trecem la noile instrumente.

    Metode noi sau unde fără PowerShell

    PowerShell, fidel numelui său, se poate conecta la computere de la distanță folosind WMI, RPC și WS-Management (WSMan). Utilizarea ultimei metode necesită o configurare prealabilă.


    Cmdleturile care nu necesită preconfigurare au de obicei un parametru ComputerName, dar nici un parametru Session. Puteți vizualiza o listă de astfel de cmdleturi cu comanda:


    Obține-Comandă | unde ($ _. parameters.keys -conține „ComputerName” -și $ _. parameters.keys -notcontains „Sesiune”)

    Pentru a configura WSMan, în general, este suficient să rulați comanda Activare-PSRemoting-Force. Va porni serviciul de gestionare la distanță WinRM și va înregistra excepții în firewall - în principiu, acest lucru se poate face pentru întregul domeniu folosind politici de grup. Configurația este descrisă mai detaliat în documentație.


    După ce toate computerele sunt gata să accepte solicitări, ne putem conecta folosind cmdleturile PowerShell corespunzătoare. Pentru a testa conectivitatea, utilizați cmdletul Test-WSMan.



    Verificarea conectivității.


    Pentru a executa o anumită comandă sau script, utilizați cmdletul Invocare-Comandă cu următoarea sintaxă:


    Invoke-Command -ComputerName COMPUTER -ScriptBlock (COMMAND) -credential USERNAME

    Unde COMPUTER este numele computerului, COMMAND ― este numele comenzii și USERNAME este numele de utilizator, dacă este cazul.



    Ne uităm la conținutul discului de la un computer la distanță.


    Dacă trebuie să obținem o consolă cu drepturi depline - nu de dragul automatizării, ci de dragul controlului unui anumit computer, atunci putem folosi cmdletul Enter-PSSession.



    Lucrăm în consola unui computer la distanță.


    Permiteți-mi să vă reamintesc că folosind JEA, puteți restricționa cmdleturile disponibile pentru o astfel de sesiune sau puteți acorda acces la cele de care aveți nevoie fără drepturi de administrator.


    Desigur, pe lângă instrumentele încorporate și utilitarele mici, există multe programe pentru gestionarea structurii. Pe lângă soluțiile mature, instrumente de monitorizare precum Zabbix și chiar consola de control Kaspersky Anti-Virus pot fi folosite pentru a gestiona configurații precum Chef, Ansible și MS SCCM.


    Într-o perioadă de structuri eterogene, ar fi bine să poți gestiona Windows și Linux într-o manieră unificată. Acest lucru se poate face folosind PowerShell, care în sine este demn de un articol separat - merită sau este prea mult?


    Etichete: Adăugați etichete

    Top articole similare