În lecția de astăzi, în nostru Geek Școală serie acoperă SysInternals, am de gând să-ți arăt cum să utilizați PsTools set de utilitare pentru a efectua tot felul de taskuri de administrare, atât la nivel local, și pe computerele de la distanță la fel de bine.,dacă v-ați dorit vreodată să vă conectați la un alt computer și să executați o comandă, să obțineți rapid informații despre procesele care rulează și, opțional, să le ucideți sau chiar să opriți un serviciu pe un alt computer, puteți utiliza utilitățile PsTools pentru a face toate aceste lucruri și chiar mai mult.evident, puteți utiliza Remote Desktop sau un serviciu similar pentru a vă conecta la orice computer Windows și pentru a vedea de fapt desktopul și pentru a face orice ați face local, dar utilitățile PsTools vă permit să faceți multe sarcini din linia de comandă — sau mai bine, dintr-un script pe care îl puteți reutiliza mai târziu.,acestea sunt tipurile de utilități care funcționează cel mai bine într-un mediu corporativ, iar stăpânirea acestor instrumente vă va face cu siguranță mult mai bine la locul de muncă de administrare a sistemului, vă va economisi timp și vă va permite să faceți lucrurile într-un mod mult mai inteligent. A face lucrurile mai inteligent și mai rapid este o abilitate critică pentru a fi un mare sysadmin.există douăsprezece instrumente în setul PsTools și, în timp ce unele dintre ele sunt extrem de utile, altele au fost înlocuite cu instrumente încorporate în versiuni mai recente de Windows și există câteva altele care nu sunt utile pentru majoritatea oamenilor., Vom trece prin toate, astfel încât să înțelegeți cum funcționează și de ce ați putea dori să le utilizați pe fiecare.,orl log de pe linia de comandă
este de remarcat faptul că puteți utiliza un instrument ca PsExec să execute tot felul de utilitati linie de comandă pe computerele de la distanță. inclusiv foarte util ca cele Autoruns instrument de linie de comandă și multe altele., Posibilitățile sunt nesfârșite odată ce ați îmbrățișat puterea PsTools.
toate aceste instrumente pot fi utilizate pe computere locale, dar sunt în mare parte utile pentru conectarea la computere la distanță și efectuarea de comenzi pe ele.
conectarea la computere la distanță (sintaxa pentru toate utilitățile)
toate utilites pot fi rulate fie pe computerul local, fie la distanță, astfel încât toate au același prim argument pentru numele computerului, dacă este necesar. Rețineți că puteți utiliza adresa IP dacă doriți în schimb., Dacă omiteți acest argument, comanda va funcționa pe computerul local.
psinfo \\numecomputer
de asemenea, puteți lista mai multe calculatoare ca psinfo \\computer1, computer2, computer3, sau ai putea pune toate numele într-un fișier și de referință ca psinfo @computerlist.txt. Sintaxa finală este psinfo \ \ * care funcționează pe toate computerele din domeniu, ceea ce probabil nu este ceva ce veți folosi în fiecare zi.,
dacă trebuie să vă conectați cu acreditări alternative, deoarece contul computerului dvs. local are un nume de utilizator și o parolă diferite de celălalt computer, puteți utiliza opțiunile-u și-p, deși am reține că este posibil să nu doriți să utilizați-p în linia de comandă cu o parolă în comandă din motive de securitate. Actualizare: ca de ultima versiune de PsExec, nici un instrument trece parole ca text clar mai, astfel încât singura îngrijorare este dacă cineva poate citi fișierele script și a vedea parola acolo.,
psinfo \\computername -u „utilizator” -p „Parolă”
„utilizatorul” o parte din comanda se va schimba la „DOMENIU\utilizator” dacă sunteți într-un mediu de domeniu și aveți nevoie pentru a schimba de la care rulează în prezent utilizator.notă: în general, va trebui să vă conectați la computerele la distanță cu un cont de administrator.dacă vă aflați într-un mediu de domeniu, care majoritatea oamenilor care au nevoie să utilizeze PsTools va fi, puteți ignora această secțiune în întregime ca totul ar trebui să funcționeze bine., Pentru oricine rulează Windows 7, 8 sau Vista într-un mediu de acasă sau folosind câteva computere într-un birou fără domeniu, va trebui să reglați controlul contului de utilizator pe computerul de la distanță pentru a permite pstools să ruleze corect.
problema este descris bine de Microsoft:
atunci Când un utilizator care este membru al grupului local de administratori la țintă calculator de la distanță stabilește o distanță administrativă conexiune prin utilizarea de utilizare netă * \\remotecomputer\Acțiune$ de comandă, de exemplu, ei nu se va conecta ca administrator cu drepturi depline., Utilizatorul nu are potențial de altitudine pe computerul de la distanță, iar utilizatorul nu poate efectua sarcini administrative.
Pentru a explica într-un mod diferit, atunci când încercați să vă conectați la alt computer și a alerga ceva care necesită acces de administrator, nu există nici o modalitate de a declanșa UAC prompt și accept de pe computerul dvs., astfel încât acesta nu se va conecta ca administrator.
și acest lucru nu este un lucru rău., Tu nu ar trebui să modificați această setare fără a înțelege pe deplin care va fi care să permită o deschidere de malware pentru a răspândi de la un calculator la altul — presupunând că malware a local numele de utilizator și parola, care parola este la fel ca celălalt computer, și malware-ul este atât de dificil, care cele mai multe nu. Dar încă nu este ceva să fie luate ușor.
și din nou, dacă vă aflați într-un mediu de domeniu, această problemă nu există și nu trebuie schimbată. Și dacă testați doar cu o grămadă de mașini virtuale, nu aveți de ce să vă faceți griji.,
Pentru a optimiza UAC pentru a permite PsTools pentru a rula veți dori pentru a deschide Registry Editor și navigați la următoarea cheie:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\
Windows\CurrentVersion\Policies\System
Odată ce sunt acolo, a crea un nou 32-bit DWORD pe partea dreaptă, dau numele LocalAccountTokenFilterPolicy și valoarea de 1. Nu trebuie să reporniți computerul pentru ca setarea să aibă efect.,
Notă: doar pentru a clarifica, această setare trebuie să se întâmple pe computerul la distanță care vă conectați.
PsExec
PsExec este, probabil, cel mai puternic instrument în set, după cum puteți executa orice comanda in local prompt de comandă ca de executare pe computerul la distanță. Aceasta include orice poate fi rulat pe linia de comandă — puteți schimba valorile registrului, puteți rula scripturi și utilități sau vă puteți conecta de la acel computer la altul., Ieșirea comenzilor va fi afișată pe computerul dvs. local, mai degrabă decât pe cel de la distanță.
sintaxa este simplă:
psexec \\numecomputer <opțiuni> apptorun.exe <argumente>
mod Realist, deși, ar trebui să includă, de asemenea, numele de utilizator și parola de pe linia de comandă., De exemplu, să se conecteze la un alt PC și verificați conexiunile la rețea pe lista, ar trebui să utilizați ceva de genul asta:
psexec \\computername -u Utilizator -p Parola ipconfig
comanda ar produce rezultate similare cu următoarele:
Dacă doriți pentru a trece de ieșire de comandă într-o altă comandă, sau ai vrut să redirecționeze producția într-un fișier, în mod normal, ar face ceva de genul comanda.exe > ieșire.txt, și același lucru se întâmplă și cu PsExec., Deci, o comandă ca următoarea va salva ieșirea netstat-an într-un fișier din directorul rădăcină al computerului Local.
psexec \\numecomputer netstat -un > C:\connections.txt
Dacă doriți pentru a trece > sau | caracter pe PsExec conexiune la computerul la distanță, aveți de gând să nevoie pentru a utiliza ^ caracter, care este un pic-cunoscut caracterul de evacuare în Windows command shell., Asta, desigur, înseamnă că va trebui să folosim shell-ul de comandă pe computerul de la distanță și nu doar să rulăm procesul, astfel încât să putem face redirecționarea sau conducta în primul rând. Deci, asta face ca comanda noastră să fie așa (schimbând calea către directorul de acasă unde avem acces la scriere).
psexec \\numecomputer cmd /c netstat-o ^> C:\users\geek\connections.,txt
Acest exemplu ar plasa lista de conexiuni deschise generate de netstat în directorul home al utilizatorului de pe computerul la distanță, într-un fișier numit conexiuni.txt.
copierea programelor pe PC-ul de la distanță
nu vă limitați doar la aplicațiile de pe PC-ul de la distanță atunci când utilizați PsExec și, de fapt, puteți rula orice aveți local. De exemplu, dacă ați vrut să faceți o scanare de linie de comandă Autoruns a sistemului de la distanță, dar ați avut doar autorunsc.exe pe computerul local, puteți utiliza comutatorul-c pentru a copia aplicația peste., PsExec va elimina instrumentul din sistemul de la distanță odată ce comanda este terminată.
acesta este un moment important pentru a menționa opțiunea-accepteula a majorității instrumentelor SysInternals, care se va asigura că EULA a fost acceptată pe computerul unde a fost rulată comanda. Va trebui să adăugăm asta pe autorunsc.comanda exe sau altfel va eșua pe computerul de la distanță.
psexec \\computername-c autorunsc.,exe -accepteula
Există alte câteva opțiuni care să precizeze dacă cererea este întotdeauna copiate, sau dacă ar trebui să fie copiate, dacă cererea locală este o versiune mai mare decât de la distanță unul. Puteți rula doar psexec din prompt pentru a vedea aceste opțiuni.Notă: Dacă o comandă este disponibilă numai în promptul de comandă, trebuie să adăugați cmd / c înaintea acesteia. Aceasta include conducte și redirecționări precum / și >.,puteți utiliza comutatorul-i pentru a lansa aplicația și pentru a permite utilizatorului de la distanță să interacționeze efectiv cu aplicația. Probabil ați dori să combinați acest lucru cu comutatorul-d, care nu așteaptă ca procesul de la distanță să se încheie înainte ca PsExec să vă returneze controlul., De exemplu, această comandă va deschide o fereastră Notepad pe un computer la distanță:
psexec \\computername -d-i notepad
de asemenea, puteți alege pentru a rula ca utilizator de SISTEM cu opțiunea-s, care poate fi foarte periculos. De exemplu, dacă doriți să deschideți Editorul de registru pe propriul computer, dar cu permisiuni la nivel de utilizator de sistem, puteți rula această comandă.
psexec-I-d-s regedit.,exe
în cazul În care vă întrebați, da, acest lucru vă va oferi acces la o mulțime de lucruri pe care în mod normal nu ar avea acces pentru a edita în registru. Și da, este o idee foarte proastă.
rularea unui Prompt de comandă complet prin PsExec
Da, tocmai v-am arătat toate acele exemple despre cum să rulați o singură comandă prin PsExec… și se dovedește că puteți rula un shell complet pe computerul local care rulează de fapt pe computerul de la distanță. Este la fel ca și cum ai fi fost pe consola acelui server (în cea mai mare parte)., Și din fericire, sintaxa pentru aceasta este foarte ușoară (adăugați numele de utilizator dacă aveți nevoie).
psexec \\computername cmd.exe
după ce ați făcut acest lucru, veți avea un prompt de comandă care rulează acum pe PC-ul de la distanță.
linia De comandă va funcționa aproape normal, cu exceptia tab finalizarea nu va funcționa deloc, dar asta e în regulă cu noi.,
este demn de remarcat faptul că, dacă doriți să rulați comenzi PowerShell de la distanță pe un alt computer, puteți face acest lucru nativ cu unele modificări ale configurației. Din păcate, PowerShell nu funcționează foarte bine cu PsExec decât dacă utilizați o grămadă de soluții ciudate care nu merită.
alte opțiuni
comanda psexec are o mulțime de alte opțiuni cu adevărat utile pe care le puteți utiliza — fiecare dintre acestea ar fi utilizată în spațiu imediat după \\computername și înainte de oricare dintre celelalte comenzi., Deci, cred că psexec \\computername -opțiunea <comandă de la distanță>.
dacă executați doar comanda psexec din prompt fără alte comutatoare suplimentare, le veți vedea pe toate.
PsFile
această comandă Arată fișierele care sunt deschise în prezent în rețea pe un PC local sau pe un PC la distanță și funcționează similar cu comanda Windows „net file”. Sintaxa este la fel ca orice altă comandă din kit.
psfile \\numecomputer
Da, aceasta nu este la fel de distractiv ca ultima.,
Dacă doriți să închideți unul dintre fișierele și deconectați persoana de la resurse, puteți întrerupe conexiunea utilizând opțiunea-c, deși, care ar putea duce la o pierdere de date deoarece fișierul nu a fost închis corect.
psfile \\numecomputer <calea> c
PsGetSid
Acesta afișează identificatorul de securitate pentru un calculator sau utilizator, și ia standard argumente., Acest utilitar este probabil util doar în scenarii foarte particulare, dintre care nu am întâlnit personal niciunul. Așa că încercați o dată și uitați de ea până când trebuie să o utilizați într-o zi.
PsInfo
această comandă listează o mulțime de informații utile despre un sistem, inclusiv timpul de funcționare, care este foarte distractiv. Puteți rula acest lucru local pentru a-l testa prin simpla tastare psinfo la promptul de comandă, presupunând că instrumentele dvs.,dacă doriți să obțineți mai multe informații din PsInfo și știu că faceți, atunci puteți utiliza următoarele comutatoare pentru a adăuga informații despre disc (-d) și remedieri rapide (-h) și o listă de aplicații instalate și versiunile lor (-s).,
psinfo -d -h -s
Aceasta duce la o mulțime mai multe informații, chiar și pe un aproape gol mașină virtuală:
puteți rula, de asemenea, PsInfo de la distanță prin adăugarea numele computerului și, eventual, numele de utilizator switch-uri… dar exista o mare problema: nu va funcționa decât dacă Remote Registry service este activat. Mergeți la sfârșitul articolului în care vorbim despre cum să îl activați pe computerul de la distanță.,această comandă este foarte simplă — ucide procesele, fie prin nume, fie prin ID, și puteți utiliza comutatorul-t pentru a ucide opțional întregul arbore de proces.
pskill \\numecomputer <PID sau Numele>
problema cu PsKill este că cele mai recente versiuni de Windows au un foarte puternic sarcină uciderea utilitate construit chiar în a sunat Taskkill care are o mulțime mai multe caracteristici.,acest utilitar este extrem de simplu, dar destul de util pentru a privi rapid la un computer și a vedea dacă ceva utilizează prea mult CPU sau memorie. Puteți specifica numele sau o parte a numelui pe linia de comandă pentru a restrânge lista la doar o aplicație cu probleme și puteți vedea aproape toate informațiile, inclusiv firele.
Notă: Pentru ca acest utilitar să funcționeze pe un computer la distanță, va trebui să aveți activat serviciul de registru la distanță. Asigurați-vă că citiți până la sfârșitul lecției, deoarece vă explicăm cum să faceți acest lucru mai târziu.,
PsLoggedOn
Acest utilitar listează conturile care sunt conectate fie pe mașină, fie se conectează de la distanță. Este destul de simplu și în mare măsură util într-un mediu de tip administrator de sistem.
PsLogList
Acest utilitar afișează un local sau la distanță jurnal de evenimente pe linie de comandă, și există un număr de opțiuni care pot fi utilizate pentru filtrarea datelor.,
psloglist \\Sistemul de computer
Există, de asemenea,- h, -d,- m opțiuni, care vă permite să restrânge lista de evenimente la doar ultimele x ore, zile, sau minute. Opțiunea-n afișează înregistrările list X, în timp ce comutatorul-r inversează ordinea, astfel încât cele mai recente înregistrări vor fi în partea de jos a ieșirii. Ultima opțiune, pe care am setat — o la „sistem” în acest exemplu, nu este de fapt necesară-dacă o omiteți, Jurnalul de sistem va fi întotdeauna tras, dar îl puteți schimba în aplicație sau securitate pentru a trage acele jurnale.,
merită menționat faptul că, dacă aveți acces de administrator la celălalt computer, puteți pur și simplu să deschideți Event Viewer și să alegeți Connect din meniul de acțiune. Introduceți numele computerului în listă, schimbați acreditările dacă este necesar și accesați jurnalele de evenimente în acest fel.
singurul scenariu În care putem vedea într-adevăr PsLogList a fi foarte util, dacă ai vrut să-script ceva pentru a efectua o acțiune în caz de anumite mesaje în jurnalul de evenimente.,acest utilitar vă permite să schimbați parolele pentru utilizatori, atât locale, cât și la distanță. Sintaxa este la fel ca orice altceva:
pspasswd \\computer -u Utilizator -p Parola <AccountToChange> <NewPassword>
Beneficiul pentru acest utilitar peste doar folosind NET USER de pe un prompt de comandă este că puteți schimba parole pentru mai multe computere la o dată, și funcționează într-un mediu de domeniu la fel de bine.,
PsPing
Acest utilitar pings, verifică porturile, și nu latență și lățime de bandă de testare. Destul de simplu.,
psping <servername>
Sau puteți verifica conectivitatea la un port prin adăugarea numărul de port astfel:
psping <servername>:80
Există o tona de opțiuni avansate pentru această comandă care, probabil, veți dori pentru a verifica afară de cazul în care există nevoia de a face ceva pentru rezolvarea problemelor în rețea.,acest utilitar vă permite să vă ocupați de serviciile Windows din promptul de comandă. Este într-adevăr destul de ușor de utilizat — sintaxa funcționează ca aceasta:
psservice \\numecomputer <comanda> <argumente>
Lista de comenzi pot fi găsite prin căutarea la ajutor /? opțiuni, dar există câteva opțiuni pe care le veți găsi folosind mai mult decât restul.,ies de configurare
În special, start | stop | pauză | restart | cont opțiuni sunt foarte simple și ușor de înțeles., De exemplu, în următoarea comandă puteți înlocui „start” cu oricare dintre aceste alte comenzi.
psservice \\numecomputer începe <numeserviciu>
alte opțiuni pot fi folosite pentru a interoga mai multe informații despre un serviciu, sau pentru a schimba de configurare.
notă: built-in sc.exe utility are o mulțime de caracteristici utile care se suprapun cu acest utilitar. Principala diferență este că PsService este puțin mai ușor de utilizat.,acest utilitar vă permite să închideți, să vă deconectați sau chiar să puneți un computer în modul de repaus. Problema este că nu este mai bună decât oprirea încorporată.exe utilitate, și a fost de fapt proiectat pentru Windows XP, deci este recomandat să utilizați utilitarul încorporat în loc în cele mai multe cazuri.
singura opțiune pe care PsShutdown o oferă pe care nu o puteți obține altfel este comutatorul (-d) pentru a pune computerul în modul de repaus, care poate fi la îndemână.,
psshutdown \\computername -d
de asemenea, puteți utiliza -h opțiunea de a pune computerul în modul hibernare în loc.acest utilitar este foarte similar cu PsKill, dar face ceva ce utilitarul Taskkill încorporat nu poate-puteți suspenda procesele decât să le ucideți, ceea ce poate fi foarte util dacă doriți să opriți temporar un proces intensiv de procesor în timp ce finalizați o sarcină sysadmin.,
Suspendarea unui proces este extrem de simplu:
pssuspend \\calculator <PID sau Numele>
Și reluarea că procesul este la fel de ușor — tot ce trebuie să faceți este să adăugați -r comutator.,
pssuspend \\computer -r <PID sau Numele>
Atunci când Utilități nu se va Conecta din Cauza Remote Registry
Unele dintre aceste utilitati, inclusiv PsInfo, PsList, PsLogList, și PsLoggedOn nevoie de serviciul remote registry pentru a fi activat pe computerul la distanță, și nu este activată în mod implicit în versiunile moderne de Windows.vestea bună este că această problemă este ușor de rezolvat și nu trebuie să lăsați Registrul la distanță activat., Doar rula această comandă folosind PsService pentru a porni serviciul:
psservice \\numecomputer începe RemoteRegistry
Și apoi, când ați terminat cu ceea ce faci cu PsInfo sau PsList, puteți opri serviciul din nou, folosind această comandă:
psservice \\numecomputer opri RemoteRegistry
soluții Simple sunt cele mai bune, nu?
lecția următoare
asigurați-vă că vă alăturați mâine, când acoperim utilitățile de fișiere și discuri și câteva lucruri mai interesante.