Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ

Telekomandë me anë të cmd. Çinstalimi i programeve në distancë duke përdorur WMI

Përshëndetje, të dashur lexues! Disa prej jush mund të kenë pyetur veten si të hiqni një program në një kompjuter të largët. Përdoruesi mesatar ka shumë të ngjarë të mos ketë nevojë për këtë, por një administrator të sistemit rrjet lokal kjo mund të jetë e nevojshme.

Ka shumë mënyra për të hequr dhe instaluar softuer në kompjuterë të largët. zgjidhje të ndryshme dhe softuer. Në këtë artikull do të shqyrtojmë zgjidhjen kjo çështje bazuar në veglat e integruara të Windows.

Do të na ndihmojë të heqim programet në makinat në distancë Instrumentet e menaxhimit të Windows ose më thjesht thënë WMI. Kjo është e përkthyer në Rusisht Instrumentet e menaxhimit të Windows.

Si të filloni wmi

Wmi niset nga linja e komandës. Ju mund të hapni linjën e komandës nga "Start -> All Programs -> Accessories -> Command Prompt", ose thjesht shtypni tastet "WIN + R", do të hapet dritarja "Run" në të cilën në fushën "open" shkruani " cmd" dhe klikoni "OK" ".

Në dritaren e linjës së komandës që hapet, shkruani komandën wmic dhe shtypni "Enter":

Kështu, ne lançuam një mjet konsolë për të bashkëvepruar me strukturën WMI në një kompjuter lokal ose të largët. Tani duke përdorur gjuhën e pyetjes Gjuha e pyetjeve WMI(WQL) mund të bëhet komanda të ndryshme WMI.

Për shembull, ne i marrim të gjitha lista e programeve të instaluara në kompjuterin në distancë. Për ta bërë këtë, ekzekutoni pyetjen e mëposhtme:

/nyja: (emri i kompjuterit) emri i produktit

Ku në vend të (emrit të kompjuterit) zëvendësojmë emrin e makinës së largët dhe lokale nga e cila duhet të marrim një listë të programeve të instaluara. Është më mirë të vendosni emrin e kompjuterit në thonjëza. Shtypni "Enter", prisni pak kohë për të mbledhur informacion dhe për të marrë diçka si fotografia e mëposhtme:

Si të çinstaloni një program duke përdorur WMI?

Ju mund ta hiqni programin duke përdorur kërkesën e mëposhtme:

/node:(emri i kompjuterit) produkti ku emri=(emri i programit) thërrisni uninstall

Ku në vend të (emrit të kompjuterit) fusim emrin e kompjuterit nga i cili do të hiqet programi, dhe në vend të (emrit të programit) emri i programit që do të hiqet si në listën e softuerit që rezulton.

Për shembull, ne duhet të heqim " Microsoft Office Plus profesionale 2010". Atëherë kërkesa do të duket diçka si kjo:

/node:(home2) produkti ku emri "Microsoft Office Professional Plus 2010" bën thirrje për çinstalim

Shtypni "Enter" dhe përgjigjuni kërkesës për një ofertë për të hequr programin Y:

wmic:root\cli>/node:"tep-ws000010" produkti ku emri="Microsoft Office Professional Plus 2010" bën thirrje për çinstalimin
Ekzekutoni (\\ TEP-WS000010 \ Root \ Cimv2: Win32_Product.IdentifikimiNumber = "(90140000-0011—0000-1000-0000000FF1CE)", name = "Microsoft Office Professional Plus 2010", version = "14.0.4763.1000")->->->->-> Të çinstalohet() (Po/Jo/?)? Y

Pas përpjekjes për të fshirë, do të shfaqet një mesazh që ju informon për rezultatet. Nëse fshirja është e suksesshme, mesazhi do të duket si ky:

Ekzekutimi i metodës me sukses.
Parametrat jashtë:
shembull i __PARAMETRAVE
{
Vlera e kthimit = 0;
};

Kjo eshte e gjitha! Shihemi në numrat e ardhshëm!

Në ditët e sotme edhe për qentë shpiku telekomandën .


Duke u kthyer te seria e Shënimeve të Administratorit, do të doja të flisja për opsionet për nisjen e programeve të ekzekutueshme në kompjuterë të largët. Ky artikull do të jetë me interes për ata që nuk kanë ende sisteme menaxhimin e centralizuar, por tashmë ka një kuptim të lodhshmërisë së zvarritjes manuale të stacioneve të punës dhe serverëve. Ose për ata që nuk janë të interesuar për zgjidhjet me çelës në dorë për shkak të mungesës së sportivitetit.


Si shembull se pse nevojitet një nisje e tillë programesh, mund të citojmë histerinë e fundit me Petya\Not-Petya, kur të gjithë nxituan të kontrollojnë\çaktivizojnë SMBv1 dhe të shkarkojnë përditësimet. Po, dhe ju gjithashtu mund të bëni inventar ose të instaloni një patch urgjent duke përdorur këtë metodë.


Njëherë e një kohë, mora një punë në një organizatë gjatë epidemisë Kido\Conficker. Shumica në një mënyrë të thjeshtë për të zbuluar nëse gjithçka ishte mirë në IP-në e kompanisë, ekzistonte një mjet i këndshëm nga Kaspersky i quajtur Kido Killer, i cili kontrolloi praninë e një virusi dhe e eliminoi atë. Aktivizoni programin njëqind e mirë Nuk ishte kënaqësi të përdorja makina manuale, kështu që më duhej të njihesha me automatizimin.

Nëse në sistemet operative *nix, SSH zakonisht përdoret për lëshim në distancë, atëherë në Windows metodat për nisjen e programeve dhe skripteve janë vërtet si rëra në shkretëtirë. Unë do të analizoj opsionet kryesore, të njohura dhe ekzotike. Unë nuk do të prek gjëra të tilla të dukshme si serveri telnet, veçanërisht pasi Microsoft e ka hequr tashmë atë nga sistemet operative moderne.

Metoda të vjetra, të testuara me kohë

Psexec

Kjo është ndoshta gjëja e parë që të vjen në mendje kur po flasim për në lidhje me nisjen në distancë të programeve. Shërbimi nga Mark Russinovich është përdorur që nga ditët e Windows NT dhe përdoret ende sot. Përveç funksionit kryesor, mund ta përdorni si Runas ashtu edhe për të nisur programet në një sesion përdoruesi server terminal. Psexec gjithashtu ju lejon të vendosni bërthamat e procesorit në të cilat do të funksionojë programi dhe përparësinë e tij në sistem.


Si shembull, le të shohim nëse përditësimi që mbyll cenueshmërinë famëkeqe SMB është instaluar në një listë kompjuterash:


psexec @computers.txt /u USER /p KALO cmd.exe /v /c ""systeminfo | gjeni "KB4012212" || echo !emri i kompjuterit! >> \\server\share\log.txt"""

Skedari computers.txt përmban një listë kompjuterash. Për të kandiduar në të gjithë domenin, mund të përdorni \\*. Emrat e stacioneve të punës ose serverëve do të shfaqen në skedarin \\server\share\log.txt pa u përditësuar. Nëse ka kompjuterë me *nix në bord në domen ose nuk ka akses në një burim të rrjetit administrativ Admin$- komanda nuk do të ekzekutohet në këtë makinë, por përpunimi do të vazhdojë. Për të parandaluar ngrirjen e skriptit sa herë që përpiqeni të lidheni, mund të caktoni një afat kohor duke përdorur tastin -n.


Nëse kompjuteri është i fikur, ne nuk do të dimë për këtë. Prandaj, është më mirë të kontrolloni disponueshmërinë e makinave paraprakisht ose të mblidhni informacione për suksesin ose dështimin në një skedar.


Tek të këqijat Psexec Mund t'i atribuohet faktit se, për shkak të komoditetit dhe popullaritetit të tij, shpesh përdoret nga shkrimtarët e viruseve. Kjo është arsyeja pse sistemet antivirus mund të zbulojë programin si një kërcënim i llojit të administratorit në distancë.


Si parazgjedhje, procesi në makinën në distancë funksionon ndërsa përdoruesi që ekzekuton Psexec. Nëse është e nevojshme, identifikimi dhe fjalëkalimi mund të vendosen në mënyrë eksplicite ose mund të përdorni llogarinë SYSTEM.

WMIC

Për të menaxhuar sistemet Windows duke përdorur mjete të ndryshme grafike, shpesh përdoret WMI (Windows Management Instrumentation), një zbatim i standardit të menaxhimit të orientuar nga objekti WBEM. Si një dobi me ndërfaqe grafike për të punuar me WMI mund të përdorni wbemtest.exe.


Krijuar për të punuar me WMI nga tastiera wmic.exe. Për shembull, për të kontrolluar përditësimet e instaluara, në vend të modelit rrëqethës nga shembulli i mëparshëm, mund të përdorni komandë e thjeshtë:


wmic /node:"emri i serverit" qfe merrni hotfixid | gjeni "KB4012212"

Ju gjithashtu mund të përdorni listën e kompjuterëve duke përdorur komandën /node:"@computers.txt".


Ju gjithashtu mund të ekzekutoni programe duke përdorur WMI - sintaksa është jashtëzakonisht e thjeshtë:


wmic /node:"emri i serverit" procesi i thirrjes krijoni "cmd /c somecommands"

Fatkeqësisht, ndryshe nga Psexec, nuk do të jeni në gjendje të merrni dalje në tastierë - do t'ju duhet të nxirrni rezultatet e komandës në një skedar.


Si parazgjedhje, procesi në makinën në distancë funksionon ndërsa përdoruesi drejton wmic. Nëse është e nevojshme, identifikimi dhe fjalëkalimi mund të specifikohen në mënyrë eksplicite.

Politikat dhe skriptet e grupit

Nëse opsionet e mëparshme nuk kërkonin një mjedis domeni, atëherë në këtë rast do të kërkohet një domen. Skriptet mbështeten kur përdoruesi hyn dhe del nga sistemi, si dhe kur sistemi është i ndezur dhe fikur. Që të gjithë Administratori i Windows Unë i kam hasur, nuk do të përshkruaj në detaje se si t'i përdor ato - thjesht do t'ju kujtoj se ku t'i kërkoni.



Skriptet e ekzekutuara në fillimin dhe mbylljen e sistemit.



Skriptet që funksionojnë kur përdoruesi hyn dhe del nga sistemi.


Skriptet e konfiguruara në seksionin e përdoruesit ekzekutohen në emër të përdoruesit, dhe në seksionin e kompjuterit - nën llogarinë SYSTEM.

Detyrat e caktuara

Mjaft mënyrë interesante, që meritojnë të drejtën e jetës. Detyrat e planifikuara mund të krijohen nga linja e komandës duke përdorur programin schtasks.exe, ekzekutoni ato, më pas fshijini ato. Më shumë detaje rreth sintaksës mund të gjenden në dokumentacion, por unë do të shikoj një shembull të përdorimit të detyrave të planifikuara në një mjedis domeni. Le të themi se duhet të ekzekutojmë një komandë sa më shpejt të jetë e mundur, pavarësisht nëse kompjuteri është i fikur apo jo. Për këtë qëllim përdoren të ashtuquajturat Preferencat e Politikave të Grupit.


Ju duhet të kërkoni për vendosjen e detyrave të planifikuara në kompjuterin ose konfigurimin e përdoruesit - "Cilësimet - Cilësimet e panelit të kontrollit - Detyrat e planifikuara".



Krijo një detyrë të re të planifikuar.


Për të ekzekutuar një komandë ose skript ASAP, do t'ju duhet të krijoni një "Detyrë të menjëhershme (Windows 7 dhe më lart)." Nëse papritmas në infrastrukturë mbeten makina që përdorin Windows XP, atëherë do të funksionojë "Detyra tjetër (Windows XP)".


Vlen të bëni disa politika me filtrat përkatës WMI ose të krijoni dy detyra të ndryshme të planifikuara në një politikë me shënjestrim - për shembull, duke përdorur të njëjtin filtër WMI. Kjo do të ndihmojë në shmangien e konflikteve në një mjedis heterogjen me Windows të vjetër dhe të ri.


Një shembull i një filtri WMI për aplikimin e një politike vetëm në kompjuterë me Windows XP:


SELECT * NGA Win32_OperatingSystem WHERE Versioni LIKE "5.1%" DHE Lloji i Produktit = "1"

Përndryshe, procedura për krijimin e një detyre të planifikuar është e parëndësishme. E vetmja gjë është, mos harroni të kontrolloni opsionin "Aplikoni një herë dhe mos riaplikoni" nëse detyra nuk kërkon ri-ekzekutim.



Ne kryejmë detyrën e menjëhershme vetëm një herë.


Kur përdorni detyra të tilla të planifikuara, programi do të fillojë sapo kompjuteri të marrë përditësimin politikën e grupit. Kjo është e përshtatshme: nuk ka nevojë të kontrolloni disponueshmërinë e kompjuterëve në rastin e Psexec dhe wmic dhe t'i detyroni përdoruesit të rinisin makinat, si në rastin e skripteve të politikave të grupit. Nëse është e nevojshme, mund të kopjoni skedarin e skriptit lokalisht në "Cilësimet - Konfigurimi i Windows- Skedarët.


Detyrat e planifikuara ju lejojnë të vendosni në mënyrë eksplicite emrin e përdoruesit për të ekzekutuar programin, duke përfshirë edhe për SYSTEM.

Përmes regjistrit

Modifikimi i regjistrit në makinat e përdoruesve është një opsion i çuditshëm, vetëm në rast urgjence. Ju mund të përdorni degët Run ose RunOnce. Lexoni më shumë rreth tyre në dokumentacion. Vetë modifikimi i regjistrit mund të kryhet përmes politikave të grupit ose nga linja e komandës - për shembull, me komandën e mëposhtme:


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

Në varësi të degës së regjistrit, procesi do të ekzekutohet ose nën përdoruesin e regjistruar ose nën llogarinë SYSTEM.


Ka mënyra të tjera, të tilla si redaktimi i shkurtoreve në dosjen Startup ose shtimi i një shkurtoreje në program popullor && skript.cmd, por këto metoda janë tashmë nga seria "e mundshme, por jo e nevojshme".


Tani le të kalojmë te mjetet e reja.

Metoda të reja ose ku pa PowerShell

Në përputhje me emrin e tij, PowerShell mund të lidhet me kompjuterë të largët duke përdorur WMI, RPC dhe WS-Management (WSMan). Përdorimi i metodës së fundit kërkon konfigurim paraprak.


Cmdlet që nuk kërkojnë parakonfigurim zakonisht kanë një parametër ComputerName, por nuk kanë një parametër Session. Ju mund të shikoni një listë të cmdlet-ve të tilla me komandën:


Marr-Command | ku ($_.parameters.keys -përmban "ComputerName" -dhe $_.parameters.keys -nuk përmban "Session")

Për të konfiguruar WSMan, në përgjithësi, thjesht ekzekutoni komandën Aktivizo-PSRemoting-Force. Ajo do të fillojë shërbimin telekomandë WinRM do të shkruajë përjashtime në murin e zjarrit - në parim, kjo mund të bëhet për të gjithë domenin duke përdorur politikat e grupit. Konfigurimi përshkruhet më në detaje në dokumentacion.


Pasi të gjithë kompjuterët të jenë gati për të pranuar kërkesat, ne mund të lidhemi duke përdorur cmdlet-et e duhura PowerShell. Për të kontrolluar lidhjen, përdorni cmdlet Test-WSMan.



Kontrollimi i lidhjes.


Për të ekzekutuar një komandë ose skript specifik, përdoret një cmdlet Thirr-Komand me sintaksën e mëposhtme:


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

Aty ku COMPUTER është emri i kompjuterit, COMMAND është emri i komandës dhe USERNAME është emri i përdoruesit, nëse nevojitet.



Ne shikojmë përmbajtjen e diskut nga një kompjuter i largët.


Nëse na duhet të marrim një tastierë të plotë - jo për hir të automatizimit, por për hir të kontrollit të një kompjuteri specifik - atëherë mund të përdorim cmdlet Enter-PSSession.



Ne punojmë në tastierën e një kompjuteri të largët.


Më lejoni t'ju kujtoj se me ndihmën e JEA ju mund të kufizoni cmdlet-et e disponueshme për një sesion të tillë ose t'u jepni akses atyre që ju nevojiten pa të drejta administratori.


Sigurisht, përveç mjeteve të integruara dhe shërbimet e vogla, ka shumë programe për menaxhimin e strukturës. Përveç zgjidhjeve për të rritur, mjetet e monitorimit si Zabbix dhe madje edhe tastiera e menaxhimit antivirus Kaspersky mund të përdoren për të menaxhuar konfigurime si Chef, Ansible dhe MS SCCM.


Në një kohë të strukturave heterogjene, do të ishte mirë të ishim në gjendje të menaxhonim Windows dhe Linux në mënyrë të unifikuar. Kjo mund të bëhet edhe me duke përdorur PowerShell, e cila në vetvete është e denjë për një artikull të veçantë - a ia vlen ta bësh këtë apo është tashmë e panevojshme?


Etiketa: Shtoni etiketa

Ky mësim do të tregojë Si të fshini një skedar përmes linjës së komandës në Windows(7, 8, XP, Vista). Komandat DEL ose ERASE do të ndihmojnë për këtë, të cilat përdoren kur nuk mundeni në mënyrën e zakonshme fshini një skedar. Për , DEL dhe ERASE nuk janë të përshtatshme.

Natyrisht, për fillestarët. Me këtë veprim do të arrini rezultatet më të mira.

Nëse përdorni këtë mësim, atëherë skedari do të fshihet menjëherë pa u dërguar në kosh.

Në cmd tip DEL /? dhe shtypni Enter për të parë paraprakisht opsionet e komandës. Nëse e keni bërë saktë, do të shihni një shpjegim (pamja e ekranit më poshtë).

Përdorimi i cmd gjatë nisjes së Windows

Ndonjëherë bëhet e nevojshme të futeni në cmd përpara se të filloni sistemin. Kjo për faktin se malware bllokon hyrjen e suksesshme ose sektori i çizmeve sistemi është i dëmtuar, atëherë hapat e mëposhtëm do t'ju ndihmojnë:

  1. Hapni Command Prompt kur Windows niset
  2. Në cmd fut DiskPart dhe shtypni Enter
  3. Më pas do t'ju duhet të shkruani vëllimin e listës dhe të shtypni përsëri enter (shih pamjen e ekranit më poshtë). Kjo do t'ju lejojë të shihni letrën e diskut ku dëshironi të fshini skedarin.
  4. Pasi të keni marrë informacionin, shkruani exit dhe klikoni Enter.

Tani ndjehuni të lirë të futni opsionet për komandat e heqjes, të cilat përshkruhen më poshtë.

Me këto hapa ju do të fshini çdo skedar në kompjuterin tuaj duke përdorur vijën e komandës.

Fshirja e një skedari specifik

Për të fshirë një element specifik, duhet të dini emrin dhe shtrirjen e tij. Përndryshe, gjasat për të fshirë gjënë e gabuar rriten!

Në cmd, futni komandën e mëposhtme dhe shtypni enter:

DEL /F /S /Q /A "Rruga e plotë e elementit me shtrirje"

Për shembull, nëse dua të fshij me emrin "delete" dhe me shtesën (.bat), që ndodhet në diskun C në dosjen "plehra", duhet të fus komandën:

DEL /F /S /Q /A "C:\trash\delete.bat"

Fshini të gjithë skedarët me dhe pa konfirmim nga rreshti i komandës

Në këtë rast, duhet të konfirmoni ose mohoni veprimet me shkronja (Y - po / N - jo) për të fshirë të gjithë skedarët në drejtorinë kryesore dhe nëndosjet.

Për të konfirmuar, përdorni këtë sintaksë:

DEL /F /S /Q /A "Rruga e plotë drejt dosjes\*"

Nëse më duhet të fshij të gjithë skedarët në diskun D nga dosja Trash, e cila përmban shumë drejtori dhe skedarë të tjerë, do të përdor komandën:

DEL /F /S /Q /A "D:\shto në shportë\*"

Në mënyrë që fshini skedarin nga linja e komandës me konfirmim, / P u shtohet parametrave dhe duket kështu:

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

Është e mundur të fshihen të gjithë skedarët me një shtrirje të caktuar, atëherë komanda do të duket si kjo:

DEL /F /S /Q /A "Rruga e plotë drejt dosjes\*.zgjerim"

Është veçanërisht i dobishëm kur ka shumë elementë të panevojshëm të të njëjtit lloj që nuk janë një opsion për t'u renditur me dorë, por thjesht mund të fshihen në grupe nga cmd.

Me qasjen e duhur, mundeni fshini skedarin përmes linjës së komandës, në pak sekonda. Shpresoj se rekomandimet ishin të dobishme. Nëse jeni të interesuar për cmd, ju këshilloj të lexoni materialin, i cili do të jetë jo më pak interesant.

Shërbimet si Telnet dhe programet e menaxhimit në distancë si PC Anywhere e Symantec ju lejojnë të ekzekutoni programe në sisteme në distancë, por ato nuk janë aq të lehta për t'u instaluar sepse duhet të instaloni gjithashtu softuerin e klientit në sistemet në distancë që dëshironi të përdorni. PsExec është një version i lehtë i Telnet. Kjo ju lejon të ekzekutoni procese në sisteme të largëta duke përdorur të gjitha veçoritë e ndërfaqes interaktive. aplikacionet e konsolës, dhe nuk ka nevojë të instaloni manualisht softuerin e klientit. Avantazhi kryesor i PsExec është aftësia për të thirrur në mënyrë interaktive ndërfaqen e linjës së komandës në sistemet e largëta dhe mjetet e drejtuara nga distanca si IpConfig. Kjo është mënyra e vetme për të shfaqur kompjuter lokal të dhëna për sistemin në distancë.

Shënim. Disa skaner antivirus raportoni se një ose më shumë prej këtyre programeve janë të infektuar me virusin “Remote Admin”. Asnjë nga programet e përfshira në grupin PsTools nuk përmban viruse, por ato janë përdorur nga viruset, prandaj shfaqen këto paralajmërime.

Instalimi

Thjesht kopjoni programin PsExec në dosjen tuaj të ekzekutueshme. Kur futni komandën psexec, shfaqet ndihma për sintaksën e komandës.

Programi PsExec funksionon në sistemet operative Windows Vista, NT 4.0, Win2000, Windows XP dhe Server 2003, duke përfshirë versionet 64-bit të OS

Përdorimi

Në artikullin e Mark Russinovich në këtë numër Regjistri i Windows IT Pro Magazine për korrik 2004 përshkruan metoda shtesë të punës me programin PsExec.

përdorimi: psexec [\\kompjuter[,kompjuter2[,...] | @file][-u përdorues [-p fjalëkalimi]][-n s][-l][-s|-e][-x][-i [sesion]][-c [-f|-v]] drejtoria [-w][-d][-<приоритет>][-a n,n,... ] program [argumente]

kompjuter

I thotë PsExec të ekzekutojë aplikacionin kompjuter të specifikuar ose kompjuterë. Nëse emri i kompjuterit nuk është specifikuar, PsExec do të nisë aplikacionin në sistemi lokal, nëse në vend të emrit të kompjuterit specifikohet karakteri yll (\\*), atëherë programi PsExec do të nisë aplikacionin në të gjithë kompjuterët e domenit aktual.

@file

I thotë PsExec të ekzekutojë aplikacionin në të gjithë kompjuterët e listuar në skedarin e tekstit të specifikuar.

Procesorët në të cilët mund të ekzekutohet aplikacioni ndahen me presje dhe përpunuesit numërohen duke filluar nga 1. Për shembull, për të ekzekutuar aplikacionin në procesorët dy dhe katër, shkruani "-a 2,4"

Programi i specifikuar kopjohet në sistemin në distancë për ekzekutim. Nëse ky parametër nuk specifikohet, aplikacioni duhet të gjendet në dosjen e sistemit të sistemit në distancë.

Tregon se nuk ka nevojë të prisni që aplikimi të përfundojë. Ky opsion duhet të përdoret vetëm kur ekzekutohen aplikacione jo-interaktive.

Profili i specifikuar i llogarisë nuk është i ngarkuar.

Programi i specifikuar kopjohet në sistemin në distancë, edhe nëse një skedar i tillë ekziston tashmë në sistemin në distancë.

Programi i nisur fiton akses në desktopin e seancës së specifikuar në sistemin në distancë. Nëse nuk specifikohet asnjë seancë, procesi funksionon në një seancë konsole.

Kur fillon një proces, përdoruesi pajiset me të drejtat e kufizuara(të drejtat e grupit të Administratorëve revokohen dhe përdoruesit i jepen vetëm të drejtat që i janë caktuar grupit të Përdoruesve). Në Windows Vista, procesi fillon me një nivel të ulët besueshmërie.

Ju lejon të vendosni vonesën e lidhjes në kompjuterë të largët (në sekonda).

Ju lejon të specifikoni një fjalëkalim opsional për emrin e përdoruesit. Nëse ky parametër hiqet, do t'ju kërkohet të vendosni një fjalëkalim dhe fjalëkalimi nuk do të shfaqet në ekran.

Procesi në distancë niset nga llogaria e sistemit.

Ju lejon të specifikoni një emër përdoruesi opsional për t'u identifikuar në sistemin në distancë.

Skedari i specifikuar kopjohet në sistemin në distancë në vend të atij ekzistues vetëm nëse numri i versionit të tij është më i lartë ose është më i ri.

Ju lejon të specifikoni direktorinë e punës (shtegun brenda sistemit në distancë) për procesin.

Shfaq ndërfaqen e përdoruesit në desktopin Winlogon (vetëm sistemi lokal).

- prioritet(prioritet)

Ju lejon të vendosni prioritete të ndryshme për një proces: -të ulët (të ulët), -nën normale (nën mesatare), -mbi normale (mbi mesatare), -të larta (të larta) ose -në kohë reale (në kohë reale).

program

Emri i programit që do të nisë.

argumentet

Argumentet që duhen kaluar (vini re se shtigjet e skedarëve duhet të specifikohen si shtigje lokale në sistemin e synuar).

Për të specifikuar një emër aplikacioni që përmban hapësira, përdorni thonjëza, për shembull psexec \\marklap "c:\longname\app.exe". Të dhënat e futura transferohen në sistemin në distancë kur shtypni tastin "Enter", për të përfunduar procesin në distancë duhet të shtypni kombinimin e tastit Ctrl-C.

Nëse emri i përdoruesit nuk është specifikuar, atëherë procesi në distancë shkon nga e njëjta llogari si programi PsExec. Megjithatë, meqenëse procesi në distancë është imituar, ai nuk do të ketë qasje në burimet e rrjetit sistem në distancë. Nëse specifikohet një emër përdoruesi, procesi në distancë funksionon nën llogarinë e specifikuar dhe fiton akses në të njëjtat burime rrjeti në sistemin në distancë si ky. Llogaria. Ju lutemi vini re se fjalëkalimi i dërgohet sistemit në distancë me tekst të qartë.

Kur hyni në një sistem lokal, ky version i PsExec mund të përdoret në vend të Runas sepse PsExec nuk kërkon të drejta administratori.

Shembuj

Kjo komandë sjell ndërfaqen interaktive të linjës së komandës në sistemin \\marklap:

psexec\\marklap cmd

Kjo komandë ekzekuton programin IpConfig në sistemin në distancë me parametrin /all dhe shfaq të dhënat që rezultojnë në ekranin e sistemit lokal:

psexec \\marklap ipconfig /all

Kjo komandë kopjon test.exe në sistemin në distancë dhe e ekzekuton atë në mënyrë interaktive.

psexec \\marklap -c test.exe

Nëse një program i tillë është instaluar tashmë në sistemin në distancë dhe nuk ndodhet në drejtorinë e sistemit, specifikoni rrugën e plotë për këtë program

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

Kjo komandë ekzekuton Regedit në mënyrë interaktive nga llogaria e sistemit për të parë të dhënat për çelësat e regjistrit SAM dhe SECURITY:

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

Kjo komandë përdoret për të thirrur programin Internet Explorer në emër të një përdoruesi me të drejta të kufizuara:

psexec -l -d "c:\program file\internet explorer\iexplore.exe"

Një nga detyrat më të njohura administratorët e sistemit- kjo është ekzekutimi i një komande në një kompjuter të largët. Kjo mund të jetë e nevojshme për të instaluar një program ose shërbim, për të ndryshuar ndonjë cilësim, etj. Rrallë po flasim për vetëm një kompjuter; më shpesh komanda duhet të ekzekutohet në shumë stacione pune ose serverë .

Meqenëse ky problem është popullor, ka shumë mënyra për ta zgjidhur atë. Duke u nisur nga politikat e grupit (në të cilat mund të përdorni skriptet e hyrjes ose të fillimit për këtë qëllim) në sisteme të fuqishme softuer menaxhimi, të tillë si System Center Essentials ose System Center Configuration Manager. Por në këtë artikull dua të shqyrtoj metodat që janë të disponueshme menjëherë nga linja e komandës ose skedarët e skriptit, dhe gjithashtu nuk kërkojnë para-instalimi agjentë dhe trazira të tjera. Megjithatë, sigurisht që ka disa kërkesa paraprake. Për shembull, ju duhet të keni kompetencat administrative në kompjuterin në të cilin dëshironi të ekzekutoni komandën (përveç skenarit "proxy", por më shumë për këtë më vonë).

Një nga mënyrat e mia të preferuara për të zgjidhur këtë problem është mjeti i linjës së komandës PsExec.exe i shkruar nga Mark Russinovich, të cilin mund ta shkarkoni falas nga faqja e internetit Windows SysInternals. Ju mund të gjeni një lidhje me të në fund të artikullit. Nuk kërkon instalim në sistem, thjesht mund ta kopjoni në një nga dosjet e përfshira në ndryshoren e mjedisit %path% dhe ta thërrisni atë nga çdo guaskë e linjës së komandës: Cmd ose PowerShell.

Përdorimi i PsExec është shumë i thjeshtë. Për shembull, për të ekzekutuar ipconfig /flushdns në kompjuterin kryesor, thjesht ekzekutoni komandën e mëposhtme:

psexec\\ ipconfig kryesor /flushdns

Komanda ipconfig do të ekzekutohet në kompjuterin kryesor duke përdorur kredencialet tuaja. Pasi të përfundojë ipconfig, i gjithë prodhimi i tekstit do të dërgohet në kompjuterin tuaj dhe gjithashtu do të kthehet një kod gabimi. Nëse komanda është ekzekutuar me sukses, ajo do të jetë e barabartë me 0.

Sigurisht, aftësitë e PsExec nuk mbarojnë këtu. Duke telefonuar programin pa parametra, mund të shikoni të tjera opsionet e disponueshme. Unë do t'i kushtoj vëmendje vetëm disa prej tyre.

Ndërprerësi -d i thotë PsExec se nuk ka nevojë të presësh që komanda të ekzekutohet, por thjesht ekzekuto dhe harro. Në këtë rast nuk do të marrim dalje nga mjeti i konsolës, por ne do të jemi në gjendje të lëshojmë të tjerët pa pritur që komanda e mëparshme të përfundojë. Kjo është shumë e dobishme nëse duhet të ekzekutoni, për shembull, një instalues ​​programi në disa kompjuterë.

Si parazgjedhje, PsExec ekzekuton komandat në modaliteti i fshehur, pra në sistemin ku ekzekutohet komanda nuk do të shfaqen asnjë dritare apo dialog. Megjithatë, është e mundur të ndryshohet kjo sjellje duke përdorur çelësin -i. Pas tij, mund të specifikoni numrin e seancës në të cilën do të shfaqen dritaret, ose nuk mund ta specifikoni atë, atëherë ndërfaqja do të shfaqet në seancën e tastierës.

Kështu, për të shfaqur një dritare me informacionin e versionit sistemi operativ në kompjuterin kryesor, duhet të ekzekutoni PsExec si kjo:

psexec -i \\main winver.exe

Nëse dëshironi të ekzekutoni një komandë në disa kompjuterë në të njëjtën kohë, do t'ju duket e dobishme të jeni në gjendje të lexoni emrat e tyre nga skedar teksti listë.

psexec @c:\comps.txt systeminfo.exe

Epo, një nga aftësitë më të dobishme të PsExec është aftësia për të ridrejtuar në mënyrë interaktive hyrjen / daljen midis kompjuterëve, gjë që na lejon të ekzekutojmë, për shembull, cmd.exe në server në distancë, dhe jepni komanda dhe merrni rezultatet në kompjuterin lokal.

Si funksionon PsExec?

Çdo gjë e zgjuar është e thjeshtë. Në burimet e skedarit të ekzekutueshëm PsExec.exe ekziston një skedar tjetër i ekzekutueshëm - PSEXESVC, i cili është një shërbim Windows. Përpara ekzekutimit të komandës, PsExec e shpaketon këtë burim në një administratë të fshehur dosje e përbashkët kompjuteri i largët, te skedari: \\ComputerName\Admin$\system32\psexesvc.exe. Nëse keni specifikuar duke përdorur çelësin -c që ju nevojiten për të kopjuar skedarët e ekzekutueshëm në këtë sistem, ato gjithashtu do të kopjohen në këtë dosje.

Pasi të kenë përfunduar hapat përgatitorë, PsExec instalon dhe nis shërbimin duke përdorur API-në e Menaxhimit të Shërbimit të Windows. Pas fillimit të PSEXESVC, krijohen disa kanale midis tij dhe PsExec për të transferuar të dhëna (komandat e hyrjes, rezultatet, etj.). Pasi të përfundojë, PsExec ndalon shërbimin dhe e heq atë nga kompjuteri i synuar.

Instrumentet e menaxhimit të Windows (WMI)

Mënyra tjetër për të zbatuar këtë detyrë popullore për të cilën dua të flas është përdorimi i Instrumentimit të Menaxhimit të Windows. WMI është i pranishëm në të gjitha sistemet operative të Microsoft që nga Windows 2000, madje edhe në Windows 9x mund të instalohet nga paketë e veçantë. WMI është aktivizuar si parazgjedhje dhe nuk kërkon cilësimet shtesë. Për ta përdorur është e mjaftueshme të drejtat administrative, dhe protokolli DCOM i lejuar në murin e zjarrit. WMI ofron aftësi të mëdha për menaxhimin e sistemeve, por ne jemi të interesuar vetëm për një prej tyre tani.

Për të nisur proceset, na duhet metoda Create e klasës Win32_Process. Është mjaft e lehtë për t'u përdorur. Në PowerShell kjo bëhet si kjo:

$Computer = "kryesore"
$Command = "cmd.exe /c systeminfo.exe >
("\\$Computer\root\cimv2:Win32_Process").krijo ($Command)

Këtu specifikova cmd.exe si proces që do të nisë, dhe kalova komandën e kërkuar si argumente. Kjo është e nevojshme nëse ju duhet të përdorni variablat e mjedisit të kompjuterit në distancë ose deklaratat e integruara cmd.exe si ">" për të ridrejtuar daljen në një skedar. Metoda Create nuk pret që procesi të përfundojë dhe nuk kthen rezultate, por na tregon identifikuesin e saj - ProcessID.

Nëse jeni duke përdorur një kompjuter që nuk e ka ende të instaluar PowerShell, mund ta telefononi këtë metodë WMI nga një skript VBScript. Për shembull si kjo:

Listimi #1 – Fillimi i një procesi duke përdorur WMI (VBScript)

Kompjuter = "PC3"
Komanda = "cmd.exe /c systeminfo.exe > \\server\share\%computername%.txt"
Cakto objWMIService = GetObject ("winmgmts:\" & Kompjuter & "\root\cimv2:Win32_Process")
Rezultati = objWMIService.Create ("calc.exe", Null, Null, intProcessID)

Por është shumë më e lehtë të përdoret mjeti i linjës së komandës wmic.exe i cili ofron mjaftueshëm ndërfaqe miqësore për përdoruesit për të punuar me WMI dhe përfshihet në sistemet operative duke filluar me Windows XP. Në të, për të nisur, për shembull, një kalkulator në kompjuterin kryesor, thjesht ekzekutoni komandën e mëposhtme:

wmic /node: thirrja e procesit kryesor krijoni calc.exe

Sigurisht, aftësitë e WMI nuk kufizohen vetëm në nisjen e proceseve. Nëse jeni të interesuar të studioni më tej këtë teknologji, ju rekomandoj të lexoni artikujt e Konstantin Leontiev mbi WMI, lidhjet me të cilat mund të gjeni në fund të artikullit.

WSH Remote Scripting

Po, çuditërisht për Windows Pritësi i skriptitËshtë gjithashtu e mundur të ekzekutohen skriptet në kompjuterë të tjerë. Vërtetë, ky funksion nuk ka fituar shumë popullaritet, ka shumë të ngjarë për faktin se kërkon shumë masa përgatitore, dhe në këmbim ofron shumë pak mundësi. Por unë do t'ju tregoj akoma për këtë metodë, pasi mund të jetë e dobishme.

Pra, për të ekzekutuar skriptin në një kompjuter tjetër duke përdorur WSH, do të duhet të bëjmë sa më poshtë:

Të drejtat e administratorit në kompjuterin në distancë. Kjo është e vetëkuptueshme dhe kërkohet për pothuajse të gjitha metodat e tjera të lëshimit të listuara në këtë artikull. Lejo skriptimin në distancë WSH duke krijuar një parametër vargu Remote në regjistrin e sistemit të barabartë me "1" në çelësin e regjistrit HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Script Host\Settings Për shkak të gabimit të përshkruar në artikullin e bazës së të dhënave njohuri Microsoft numri 311269, në sistemet Windows XP mund t'ju duhet të ekzekutoni komandën wscript –regserver Nëse kompjuterët tuaj përdorin një mur zjarri, atëherë ai duhet të lejojë thirrjet DCOM. Për më tepër, kjo duhet të bëhet jo vetëm në kompjuterin e menaxhuar, por edhe në atë nga i cili dëshironi të ekzekutoni skriptin. Në sistemet Windows XP me Service Pack 2 dhe më të lartë, duhet të ndryshoni cilësimet e sigurisë DCOM. Kjo mund të bëhet duke përdorur Politikën e Grupit. Në nyjen Konfigurimi i Kompjuterit\Cilësimet e Windows\Cilësimet e sigurisë\Politikat lokale\Opsionet e sigurisë, lejet duhet të vendosen si më poshtë: DCOM: Kufizimet e hyrjes në makinë në sintaksën e gjuhës së përkufizimit të përshkrimit të sigurisë (SDDL)
Jepni lejet e hyrjes anonime dhe të gjithëve Lejo Local dhe Lejo qasjen në distancë DCOM: Kufizimet e nisjes së makinës në sintaksën e gjuhës së përkufizimit të përshkrimit të sigurisë (SDDL)
Jepni lejet e grupit të Administratorëve Lejo nisjen lokale, Lejo nisjen në distancë, lejo aktivizimin lokal, lejo aktivizimin në distancë
Të gjithë grupet – Lejo nisjen lokale, lejo aktivizimin lokal

Epo, pas gjithë këtyre procedurave, mund të provoni të ekzekutoni skriptin tuaj në një kompjuter tjetër.

Një shembull skripti që përdor këtë teknologji:

Listimi #2 – Skriptimi në distancë WSH (VBScript)

Vendos objController = CreateObject ("WshController")
Cakto objRemoteScript = objController.CreateScript("C:\test.vbs", "PC5")WScript.ConnectObject objRemoteScript, "remote_"
objRemoteScript.Ekzekutoni
Bëni Ndërsa objRemoteScript.Status 1
WScript.Sleep 1000
Lak
MsgBox "Skripti përfundoi"
Nën largësi_Gabim
Dim objGabim
Cakto objError = objRemoteScript.Error
WScript.Echo "Gabim - Line: " & objError.Line & _
", Char: " & objError. Karakteri & vbCrLf & _
"Përshkrimi: " & objError.Përshkrim
WScript.Quit –1
Fundi Nën

Në rreshtin e dytë të tij, shtegu i skedarit të skriptit që do të ekzekutohet në kompjuterin e largët dhe emri aktual i këtij kompjuteri janë specifikuar si parametra për funksionin CreateScript.

Programuesi i detyrave

Programuesi i detyrave mund të kontrollohet nga linja e komandës duke përdorur dy shërbime - at.exe dhe schtasks.exe. Të dyja këto shërbime ju lejojnë të specifikoni emrin e një kompjuteri të largët për të krijuar një detyrë, dhe, për rrjedhojë, ju lejojnë të zgjidhni problemin tonë. Por ne do të shikojmë vetëm schtasks.exe në detaje, pasi ofron shumë më tepër funksionalitet.

Megjithëse ekzekutimi i komandave në kompjuterë të tjerë nuk është qëllimi kryesor i planifikuesit, ai megjithatë ju lejon të zbatoni shumë skenarë interesantë. Për shembull, mund ta përdorni për të aktivizuar instalimin e softuerit gjatë pushimit të drekës. Ose nëse përdoruesit tuaj hanë drekë në kohë të ndryshme, startimi mund të kryhet pas një periudhe të caktuar mosaktiviteti kompjuterik.

schtasks /create /s server6.td.local /tn install /tr \\main\data\install.cmd /sc një herë /st 13:00 /ru sistem

Është e rëndësishme të kuptohet se në çfarë llogarie do të kryhet detyra. Në këtë shembull, unë vendosa parametrin /ru në sistem, prandaj, për të përfunduar konfigurimin e llogarisë së kompjuterit, do të kërkohet qasja e leximit në llogarinë e kompjuterit. dosje rrjeti me shpërndarjen e programit.

Një zgjidhje tjetër e dobishme, më duket, është të planifikoni disa veprime ekzekutimi ditor, dhe fshijeni detyrën vetëm kur të konfirmohet suksesi i saj. Kjo do të thotë, mund të krijoni një skedar të thjeshtë grupi që fillimisht nis instaluesin e programit, pret që ai të përfundojë dhe kontrollon nëse programi është instaluar me sukses. Nëse po, ai heq punën nga planifikuesi në atë kompjuter. Një shembull i një skedari të tillë:

Listimi nr. 3 – Instalimi i programit dhe më pas fshirja e detyrës (Windows Batch)

msiexec /qn /paketa \\server\share\subinacl.msi
nëse ekzistojnë "c:\skedarët e programit\Windows Resource Kits\Tools\subinacl.exe" (
subinacl /tn Install_Subinacl /f
)

WinRM (WS-Management)

WinRM është një implementim i standardit të hapur DMTF (Distributed Management Task Force) nga Microsoft që lejon menaxhimin e sistemeve duke përdorur shërbimet e uebit. Unë nuk do të hyj më thellë në strukturën e teknologjisë, por vetëm do të përshkruaj shkurtimisht se çfarë është e nevojshme për ta përdorur atë.

Versioni 1 dhe më i lartë i WinRM përfshihet në sistemet operative duke filluar me Windows Vista dhe Windows Server 2008. Për Windows XP dhe Windows Server 2003, mund të instaloni WinRM si një paketë të veçantë (shih lidhjet).

Për të konfiguruar shpejt kompjuterin tuaj për lidhje me të duke përdorur porta standarde dhe duke lejuar lidhjet me llogaritë administrative, thjesht ekzekutoni komandën:

konfigurimi i shpejtë i winrm

Për të parandaluar që winrm të kërkojë konfirmim, mund të shtoni çelësin -quiet në thirrje. Ju mund të gjeni informacione rreth rregullimit të mirë të ndihmës së integruar të Winrm:

konfigurimi i ndihmës winrm

Nëse një server në internet funksionon në një kompjuter të menaxhuar, WinRM nuk do të ndërhyjë me të në asnjë mënyrë, megjithëse përdor si parazgjedhje portat standarde HTTP. Ai do të përgjojë vetëm lidhjet e destinuara posaçërisht për të.

Sigurisht, nuk është e nevojshme ta ekzekutoni këtë komandë manualisht në çdo kompjuter që dëshironi të menaxhoni. Të gjitha cilësimet e nevojshme mund të bëhen lehtësisht duke përdorur politikat e grupit. Për ta bërë këtë ju duhet:

Konfiguro shërbimin WinRM (Windows Remote Management) për të filluar automatikisht Konfiguro artikullin e politikës së grupit Konfigurimi i kompjuterit \ Modelet administrative \ Komponentët e Windows \ Menaxhimi i largët i Windows (WinRM) \ Shërbimi WinRM \ Lejo konfigurimin automatik të dëgjuesve. Këtu ju duhet të specifikoni vargjet e adresave IP nga të cilat lejohen lidhjet. Sigurisht, do t'ju duhet gjithashtu të lejoni lidhjet me portet e duhura (80 si parazgjedhje) në Firewall-in e Windows.

Pavarësisht nëse përdoret porta HTTP (80) ose HTTPS (443), trafiku i transmetuar nga WinRM është i koduar (nëse sigurisht nuk e çaktivizoni këtë opsion). Protokolli i parazgjedhur i vërtetimit është Kerberos.

Por mjaft për cilësimet, le të kalojmë drejtpërdrejt në përdorim. Megjithëse mjeti winrm ju lejon të konfiguroni shërbimin WinRM, si dhe të kryeni, për shembull, pyetje WMI, ne jemi më të interesuar për një tjetër - fituesit. Shkronjat RS këtu qëndrojnë për Remote Shell. WinRS funksionon shumë ngjashëm me PsExec edhe pse përdor teknologjinë WinRM. Emri i kompjuterit specifikohet me çelësin -r, i ndjekur nga komanda që do të ekzekutohet. Ketu jane disa shembuj:

winrs -r: Core ver.exe

Meqenëse winrs tashmë përdor cmd.exe si një guaskë në distancë, mund të përdorni lehtësisht ndryshoret e mjedisit në distancë në komanda ose të përdorni komanda të tjera të integruara cmd.exe:

winrs -r:Core "dir c:\temp > c:\temp\list.txt"

Ashtu si PsExec, mjeti winrs ju lejon të hapni një seancë interaktive në një kompjuter të largët:

winrs -r:main cmd.exe

Ky funksion është i ngjashëm me një seancë telnet, por përdorimi i winrs është padyshim më i mirë se telnet dhe madje edhe PsExec nga pikëpamja e sigurisë. Pavarësisht nëse porti është HTTP (80) ose HTTPS (443), trafiku i dërguar nga WinRM është i koduar (nëse nuk e çaktivizoni këtë opsion, sigurisht). Protokolli i parazgjedhur i vërtetimit është Kerberos.

Windows PowerShell 2.0 Largimi

Edhe pse versioni i dytë i Windows PowerShell është ende në testim beta në kohën e shkrimit, aftësitë e tij në fushën e ekzekutimit të komandave në distancë janë padyshim që ia vlen të flitet tani. Mund ta provoni vetë ose duke shkarkuar versionin paraprak (shih lidhjet) ose si pjesë e versionit beta të Windows 7 ose Windows Server 2008 R2.

Infrastruktura PowerShell Remoting bazohet në versionin 2.0 WinRM, dhe për këtë arsye trashëgon të gjitha avantazhet e kësaj teknologjie, të tilla si kriptimi i të dhënave të transmetuara dhe aftësia për të punuar mbi portet standarde HTTP/HTTPS. Por falë mundësive të pasura Gjuha e Windows PowerShell, dhe aftësia e tij për të punuar me objekte, marrim më shumë mundësi të mëdha. Për momentin, paketa WinRM2.0 është gjithashtu në testim beta dhe është e disponueshme për shkarkim vetëm për sistemet Windows Vista dhe Windows 2008. Sistemet Windows 7 dhe Windows Server 2008R2 do të ndërtohet në mënyrë origjinale, ashtu si PowerShell 2.0.

Përditësimi: Në kohën kur artikulli u publikua në ItBand.ru, versionet përfundimtare të PowerShell 2.0 dhe WinRM 2.0 janë tashmë të disponueshme për të gjitha platformat e mbështetura. Në Windows Server 2008R2 dhe Windows 7 ato tashmë janë përfshirë si komponentë integrale të sistemit, dhe për Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008, të gjithë komponentët e nevojshëm mund të merren në formën e një pakete të quajtur Windows. Korniza e Menaxhimit.

Përpara se të përfitoni nga të gjitha këto përfitime, PowerShell Remoting duhet të aktivizohet si në menaxher ashtu edhe në kompjuterët e menaxhuar. Kjo është e lehtë për t'u bërë duke ekzekutuar cmdlet (komandën Windows PowerShell) Enable-PSRemoting. Për më tepër, nëse shtoni tastin -Force, nuk do të kërkohet asnjë konfirmim. Ky cmdlet do të thërrasë winrs Quickconfig nëse është e nevojshme dhe do të krijojë përjashtime në Firewall-in e Windows, kështu që nuk ka nevojë të ndërmerren hapa shtesë.

Pas kësaj, ju mund të ekzekutoni me lehtësi komanda në kompjuterë të tjerë duke përdorur cmdlet Invoke-Command (ose pseudonimi i tij icm):

Invoke-Command -ComputerName Main -ScriptBlock (dump ndërfaqes netsh > c:\ipconfig.txt)

Natyrisht, komanda mund të vendoset në një variabël paraprakisht, dhe për parametrin -ComputerName mund të specifikoni emrat e jo një, por disa kompjuterëve në të njëjtën kohë. Sekuenca e mëposhtme ju lejon të shfaqni versionin e skedarit Explorer.exe nga tre kompjuterë menjëherë.

$Command = ((merr artikullin c:\Windows\explorer.exe).VersionInfo.FileVersion)
Invoke-Command -ComputerName Main, Server7, Replica -ScriptBlock $Command

Siç mund ta shihni, mund të kaloni disa komanda në të njëjtën kohë në një bllok, të vendosni rezultatet e ekzekutimit të tyre në disa kompjuterë në një variabël dhe më pas t'i përpunoni ato në stacioni i punës duke përdorur Karakteristikat e Windows PowerShell për të punuar me objekte.

Megjithatë Karakteristikat e PowerShell Largimi është vetëm fillimi. Ju mund të përdorni cmdlet Enter-PSSession për t'u identifikuar në një sesion interaktiv të Windows PowerShell në një kompjuter të largët. Mund të dilni nga një sesion i tillë duke përdorur cmdlet Exit-PSSession, ose thjesht të dilni.

New-PSSession cmdlet krijon sesione në kompjuterë në distancë, treguesit tek të cilët mund të vendosen në një variabël dhe më pas t'i kalojnë si argument Invoke-Command për të ekzekutuar komanda në disa kompjuterë në të njëjtën kohë, në një mjedis të qëndrueshëm. Ju mund të shihni një shembull në pamjen e ekranit, ku unë ekzekutoj një sekuencë komandash në disa kompjuterë menjëherë nga lista c:\computers.txt.

Proxying

Kjo metodë ndryshon nga të gjitha sa më sipër, dhe shërben për detyra krejtësisht të ndryshme, por nuk është më pak e rëndësishme. Kur delegimi i autoritetit nuk është i mundur, ose ofron shumë fuqi, ai lejon një përdorues standard të ekzekutojë një komandë që kërkon privilegje administrative pa dhënë në asnjë mënyrë autoritet shtesë ose pa kompromentuar fjalëkalimin e administratorit.

Më shpesh, njerëzit zgjidhin probleme të tilla duke përdorur shërbime si cpau.exe (shih lidhjet) të cilat krijojnë një skedar me një fjalëkalim të koduar të llogarisë administrative që ju lejon të ekzekutoni një program specifik. Problemi, megjithatë, është se edhe pse fjalëkalimi është i koduar, programi do të duhet ta deshifrojë atë përpara se të ekzekutojë programin. Prandaj, përdoruesi mund të përdorë një mjet që përsërit algoritmin e deshifrimit të fjalëkalimit dhe ta zbulojë atë, i cili më pas mund të përdoret për të nisur programe të tjera ose për të marrë privilegje shtesë. Në praktikë, natyrisht, kjo është mjaft e vështirë për të përdoruesit e zakonshëm, të cilët nuk kanë njohuri të veçanta, por, megjithatë, është mjaft e mundur. Më lejoni të sqaroj edhe një herë, ky nuk është një problem me një shërbim specifik, por një problem me këtë qasje në përgjithësi.

Mund të duket gjithashtu se parametri /savecred i programit runas është i përshtatshëm për zgjidhjen e problemit. Por këtu ka edhe dy probleme. Së pari, si në rastin e përshkruar më sipër, fjalëkalimi ruhet në kompjuterin e përdoruesit dhe, për rrjedhojë, mund të deshifrohet, megjithëse në rastin e runave kjo do të kërkojë të drejta administratori lokal. Së dyti, runas ruan kredencialet pa i lidhur ato me një komandë specifike dhe, për rrjedhojë, përdoruesi do të jetë në gjendje të ekzekutojë me të drejta të larta jo vetëm komandën në të cilën keni dashur t'i jepni akses, por edhe ndonjë tjetër.

Për të shmangur këto probleme, por gjithsesi të lejoni një komandë specifike të ekzekutohet, mund të përdorni një teknikë të quajtur "proxying".

Ajo funksionon si më poshtë. Një skript me privilegje të larta po funksionon vazhdimisht në kompjuter. Për shembull, në rastin tonë do të hapet nga një llogari që ka të drejta administratori në serverin e skedarëve. Në sinjalin e përdoruesit, ai do të kryejë një të tillë, paraprakisht një komandë specifike. Në këtë shembull, mbyllni të gjithë skedarët e hapur në rrjet.

Për të organizuar këtë sistem, ne do ta vendosim atë në server, për shembull në dosjen c:\scripts\ skedarët e grupit Serveri.cmd dhe Veprimi.cmd.

Listimi nr. 4 – Server.cmd (Windows Batch)

vendos trigger=c:\commandShare\trigger.txt
vendos veprim=c:\scripts\action.cmd
vendos log=c:\scripts\log.txt
:fillo
nëse ekziston %trigger% start %action% & echo %time% %date%>>%log% & del %trigger%
gjumë.exe 5
duhet te filloj

Listimi nr. 5 – Action.cmd (Windows Batch)

për /f "skip=4 argumente=1" %%a në ("skedarët neto") bëni skedarët neto %%a /mbyllni
dalje

Server.cmd do të presë për një shenjë nga përdoruesi (duke krijuar një skedar në një vend të caktuar), dhe pasi ta marrë atë, do të nisë një skedar me komanda - Action.cmd. Sigurisht, përdoruesit nuk duhet të kenë qasje në këtë dosje. Fillimi automatik Server.cmd mund të organizohet kur kompjuteri fillon duke krijuar thjesht detyrën e duhur në planifikues:

schtasks /create /ru domain\administrator /rp /sc onstart /tn ProxyScript /tr c:\scripts\server.cmd

Pas parametrit /ru, tregohet llogaria nën të cilën do të ekzekutohet skripti (në rastin tonë, ai ka të drejta administratori në server), pasi pas parametrit /rp fjalëkalimi nuk është specifikuar - do të kërkohet gjatë krijimit të detyrë. Parametri /sc ju lejon të specifikoni momentin kur lansohet skripti, në rastin tonë - kur kompjuteri është i ndezur. Epo, /tn dhe /tr ju lejojnë të specifikoni emrin e detyrës dhe skedarin e ekzekutueshëm.

Tani, në mënyrë që përdoruesi të sinjalizojë skriptin, ne do të krijojmë një dosje c:\commandShare dhe do ta bëjmë atë të aksesueshme përmes rrjetit. Vetëm ata përdorues që do të ekzekutojnë komandën duhet të kenë akses shkrimi në këtë dosje.

Pas kësaj, do të mjaftojë që përdoruesi të vendosë skedarin Run.cmd në desktop.

Listimi nr. 6 – Run.cmd (Windows Batch)

echo test > \\server\commandShare\trigger.txt

Kur ekzekutohet në emër të përdoruesit, do të krijohet skedari \\server\commandShare\trigger.txt. Skripti Server.cmd, pasi e ka vënë re atë, do të nisë skedarin Action.cmd me privilegjet e tij, do të shtojë një hyrje në skedarin c:\scripts\log.txt për kohën aktuale dhe më pas do të fshijë trigger.txt në mënyrë që të mos ekzekutoni sërish komandën derisa sinjali i radhës përdorues.

Skripti Server.cmd përdor mjetin Sleep.exe, i cili ju lejon të ndaloni ekzekutimin e skriptit për një periudhë kohe të specifikuar në sekonda. Nuk përfshihet në sistemin operativ, por mund të merret nga mjetet e paketës së burimeve (shih lidhjet) dhe thjesht të kopjohet në çdo kompjuter.

Do të vijë në ndihmë

Ne vendosëm të mësojmë gjuhe e huaj? Një mësues i anglishtes në shtëpi do t'ju ndihmojë me këtë. Aty mund të praktikoni me përdorues të tjerë.

Artikujt më të mirë mbi këtë temë