Távoli cmd. Konzolparancsok végrehajtása távoli számítógépeken hálózaton keresztül

A PsExec egy segédprogram a távoli végrehajtás parancsokat

A parancsok futtatása távoli számítógépen meglehetősen gyakori feladat. Erre szükség lehet a rendszerbeállítások módosításához, a programok telepítéséhez vagy eltávolításához és még sok máshoz. Az ilyen problémák megoldására számos különféle eszköz áll rendelkezésre, a komoly szoftverrendszerektől, például a System Center Configuration Managertől a szerény parancssori segédprogramokig. Ezen segédprogramok egyikéről lesz szó ebben a cikkben.

A PsExec segédprogram a Sysinternals PsTools csomagjának része. Lehetővé teszi parancsok végrehajtását távoli számítógépeken, és nem igényel telepítést a rendszerre. A segédprogram használatához egyszerűen másolja be a végrehajtható fájlokat tartalmazó mappába (pl. C:\Windows\system32), és futtassa bármelyik parancssorból: Cmd vagy PowerShell.
A program elve a következő: a PsExec.exe futtatható fájl erőforrásaiban van egy másik futtatható fájl - a PSEXESVC, amely egy Windows szolgáltatás. A parancs végrehajtása előtt a PsExec kicsomagolja ezt az erőforrást a távoli számítógép Admin$ (C:\Windows) rejtett adminisztrációs mappájába, a C:\Windows\system32\psexesvc.exe fájlba.

Jegyzet. Ha a kulcsot használja -c azt mondta a programnak, hogy a végrehajtható fájlokat ebbe a rendszerbe másolja, ezek is ebbe a mappába lesznek másolva.

A másolás befejezése után a PsExec telepíti és elindítja a szolgáltatást a Windows Functions API használatával a szolgáltatások kezeléséhez. Ezután a PSEXESVC elindítása után kapcsolat jön létre a PsExec és az adatátvitel céljából (parancsok bevitele és eredmények fogadása). A befejezést követően a PsExec leállítja a szolgáltatást, és eltávolítja a célszámítógépről.

A PsExec szintaxisa a következő:

psexec \\számítógép [-u felhasználó [-p jelszó]] program [argumentumok]

A felhasználónév és a jelszó elhagyható, ebben az esetben a távoli folyamat ugyanazon a fiókon fog futni, mint a PsExec program. Mivel azonban a távoli folyamat megszemélyesítés, nem fog hozzáférni a távoli rendszer hálózati erőforrásaihoz. Ha megad egy felhasználónevet, akkor a távoli folyamat a megadott fiók alatt indul el, és hozzáférést kap a távoli rendszer ugyanazokhoz a hálózati erőforrásokhoz, mint az adott fiók. Ne feledje azonban, hogy a jelszó szöveges formában kerül elküldésre a távoli rendszernek.

Példaként ürítsük ki a DNS-gyorsítótárat az SRV1 távoli számítógépen:

psexec \\SRV1 ipconfig /flushdns

A parancs az SRV1 számítógépen fog futni az Ön hitelesítő adataival. Amikor az ipconfig befejeződik, az összes szöveges kimenet elküldésre kerül a számítógépére, valamint egy hibakód is visszaküldésre kerül. Ha a parancs sikeres volt, akkor 0 lesz.

Ha több parancsot kell végrehajtania, jobb, ha interaktív munkamenetet hoz létre a távoli számítógéppel. Ehhez írja be a parancsot psexec \\SRV1 cmd. Most a helyi számítógépen beírt parancsok végrehajtásra kerülnek az SRV1 távoli számítógépen.


A PsExec lehetővé teszi egy parancs futtatását több számítógépen egyidejűleg. Ehhez vesszővel elválasztva megadhatja a számítógépneveket: psexec \\SRV1,SRV2 vagy mentse el őket egy szöveges fájlba, majd adja meg a címét: psexec@c:\comp.txt. Ha a számítógép neve helyett csillagot ad meg, például: psexec \\*, akkor a parancs végrehajtásra kerül a tartomány összes számítógépén.


És egy másik érdekes módja a PsExec segédprogram használatának. Ha nem ad meg számítógépnevet, a parancs alapértelmezés szerint a helyi rendszeren fut. A kulcs segítségével -s programokat futtathat a rendszerfiók alatt. Például indítsunk egy parancssori munkamenetet: psexec -s cmd majd a parancsot Ki vagyok én Nézzük meg, melyik felhasználó alatt dolgozunk jelenleg. Ez a funkció hasznos lehet a programok hibakereséséhez vagy a rejtett SAM és SECURITY rendszerleíró kulcsok eléréséhez.


Nos, néhány szó a program kulcsairól. Nem írok le mindent, elmondom a legérdekesebbet:

A megadott program a távoli rendszerre másolásra kerül végrehajtásra. Például:

psexec \\SRV1 -c test.exe

Ha ez a paraméter nincs beállítva, akkor az alkalmazásnak a távoli számítógép rendszermappájában kell lennie. Ha egy ilyen program már létezik a távoli számítógépen, és nincs a rendszerkönyvtárban, akkor meg kell adni a teljes elérési utat (ha a program neve szóközt tartalmaz, akkor idézőjelbe kell tenni):

psexec \\SRV1 "c:\program files\test.exe"

Ha a kulccsal együtt -c használja a kulcsot -f akkor is felülírja a program, ha már a távoli rendszeren van. És kulccsal -v csak akkor kerül felülírásra, ha a program másolt verziója újabb, mint a rendszerbe telepített verzió.

Programműködés interaktív módban. A PsExec alapértelmezés szerint lopakodó módban hajtja végre a parancsokat, vagyis nem jelennek meg ablakok vagy párbeszédpanelek azon a rendszeren, ahol a parancs végrehajtásra kerül. Lehetőség van azonban ennek a kulccsal történő módosítására -én. Utána megadható, hogy hány munkamenetben jelenjenek meg az ablakok, vagy nem adható meg, ekkor a felület megjelenik a konzol munkamenetben.

Megadja, hogy ne várja meg az alkalmazás befejezését. Ebben az esetben nem kapunk kimeneti adatokat a konzol segédprogramtól, de a következőt futtathatjuk anélkül, hogy megvárnánk az előző parancs befejezését. Ezt a beállítást csak nem interaktív alkalmazások futtatásakor szabad használni.

A program futtatására szolgál ben. Szükséges lehet operációs rendszer Windows Vista és újabb rendszerbeállításokat módosító programok futtatásához (például regedit).

És ennek a kulcsnak a segítségével éppen ellenkezőleg, csökkentheti a tekintélyt. Amikor a folyamat elindul, a felhasználó, függetlenül attól, hogy a Rendszergazdák csoporthoz tartozik, korlátozott jogokat kap (az „Adminisztrátorok” csoport jogai megszűnnek, és a felhasználó csak a „Felhasználók” csoporthoz rendelt jogokat kapja meg) .

teljes háttér-információ a program körülbelül összes billentyűje elérhető a parancs egyszerű beírásával psexec ban ben parancs sor paraméterek nélkül.

Az olyan segédprogramok, mint a Telnet és a távfelügyeleti programok, mint például a Symantec's PC Anywhere, lehetővé teszik a programok távoli rendszereken való futtatását, de telepítésük nem olyan egyszerű, mert telepítenie kell egy klienst is. szoftver azokon a távoli rendszereken, amelyeket el kell érni. A PsExec a Telnet könnyű változata. Lehetővé teszi folyamatok futtatását távoli rendszereken az interaktív konzolalkalmazási felület teljes erejével anélkül, hogy manuálisan kellene telepítenie az ügyfélszoftvert. A PsExec fő előnye, hogy képes interaktívan meghívni egy parancssori felületet távoli rendszereken, és távolról futtatni olyan eszközöket, mint például az IpConfig. Ez az egyetlen módja annak, hogy a távoli rendszerről információkat jelenítsen meg a helyi számítógép képernyőjén.

Jegyzet. Egyes víruskeresők arról számolnak be, hogy egy vagy több ilyen program megfertőződött a "távoli rendszergazda" vírussal. A PsTools csomagban található programok egyike sem tartalmaz vírusokat, de vírusok használták őket, és ez okozza ezeket a figyelmeztetéseket.

Telepítés

Csak másolja a PsExec programot a végrehajtható mappába. Amikor beírja a psexec parancsot, megjelenik a parancs szintaxisával kapcsolatos súgó.

A PsExec Windows Vista, NT 4.0, Win2000, Windows XP és Server 2003 operációs rendszereken fut, beleértve a 64 bites operációs rendszer verziókat

Használat

Mark Russinovich cikke a Windows IT Pro Magazine 2004. júliusi számában további módszereket ír le a programmal való munkavégzéshez. psexec.

használat: psexec [\\számítógép[,számítógép2[,...] | @file][-u felhasználó [-p jelszó]][-ns][-l][-s|-e][-x][-i [munkamenet]][-c [-f|-v]] [-w könyvtár][-d][-<приоритет>][-a n,n,... ] program [érvek]

egy számítógép

Utasítja a PsExec-et, hogy futtassa az alkalmazást a megadott számítógépen vagy számítógépeken. Ha a számítógép neve nincs megadva, akkor a PsExec a helyi rendszeren futtatja az alkalmazást; ha a számítógép neve helyett egy csillag (\\*) van megadva, a PsExec az aktuális tartomány összes számítógépén futtatja az alkalmazást.

@file

Utasítja a PsExec-et, hogy futtassa az alkalmazást a megadott szövegfájlban felsorolt ​​összes számítógépen.

A processzorok, amelyeken az alkalmazás futtatható, vesszővel vannak elválasztva, a processzorok pedig 1-től kezdődően vannak számozva. Például az alkalmazás második és negyedik processzoron való futtatásához írja be a "-a 2,4" karakterláncot.

A megadott program a távoli rendszerre másolásra kerül végrehajtásra. Ha ez a paraméter nincs beállítva, akkor az alkalmazásnak a távoli rendszer rendszermappájában kell lennie.

Megadja, hogy ne várja meg az alkalmazás befejezését. Ezt a beállítást csak nem interaktív alkalmazások futtatásakor szabad használni.

A megadott fiókprofil nincs betöltve.

A megadott program a távoli rendszerre másolódik, még akkor is, ha a fájl már létezik a távoli rendszeren.

A futtatott program hozzáférést kap a távoli rendszer megadott szekciójának asztalához. Ha a munkamenet nincs beállítva, akkor a folyamat konzolmunkamenetben fut.

Amikor a folyamat elindul, a felhasználó korlátozott jogokat kap (az Adminisztrátorok csoport jogai visszavonásra kerülnek, és a felhasználó csak a Felhasználók csoporthoz rendelt jogokat kapja meg). Windows Vista rendszerben a folyamat ezzel kezdődik alacsony szint megbízhatóság.

Lehetővé teszi a távoli számítógépek csatlakozási késleltetésének beállítását (másodpercben).

Lehetővé teszi egy opcionális jelszó megadását a felhasználónévhez. Ha ezt a paramétert kihagyja, akkor a rendszer felszólítja a jelszó megadására, és a jelszó nem jelenik meg a képernyőn.

A távoli folyamat a rendszerfiókból fut.

Lehetővé teszi egy opcionális felhasználónév megadását a távoli rendszerbe való bejelentkezéshez.

A megadott fájl csak akkor másolódik a távoli rendszerre a meglévő helyett, ha a verziószáma magasabb vagy újabb.

Lehetővé teszi egy munkakönyvtár (a távoli rendszeren belüli elérési út) meghatározását a folyamathoz.

Megjeleníti a felhasználói felületet a Winlogon asztalon (csak helyi rendszeren).

-kiemelten fontos(kiemelten fontos)

Lehetővé teszi a folyamat különböző prioritásainak beállítását: -alacsony (alacsony), -normál alatti (átlag alatti), -normál feletti (átlag feletti), -magas (magas) vagy -valós idejű (valós idejű).

program

A futtatandó program neve.

érvek

Átadandó argumentumok (vegye figyelembe, hogy a fájl elérési útjait helyi útvonalként kell megadni a célrendszeren).

Szóközöket tartalmazó alkalmazásnév megadásához használjon idézőjeleket, például psexec \\marklap "c:\longname\app.exe". A bevitt adatok az "Enter" billentyű megnyomásával átkerülnek a távoli rendszerbe, a távoli folyamat befejezéséhez meg kell nyomni a Ctrl-C billentyűkombinációt.

Ha nincs megadva felhasználónév, a távoli folyamat ugyanazon a fiókon fut, mint a PsExec program. Mivel azonban a távoli folyamat megszemélyesítés, nem fog hozzáférni a távoli rendszer hálózati erőforrásaihoz. Felhasználónév megadása esetén a távoli folyamat a megadott fiók alatt fut, és ugyanazokhoz a hálózati erőforrásokhoz fér hozzá a távoli rendszeren, mint a fiók. Vegye figyelembe, hogy a jelszó szöveges formában kerül elküldésre a távoli rendszernek.

A helyi rendszer elérésekor a PsExec ezen verziója használható Runas helyett, mivel a PsExec nem igényel rendszergazdai jogokat.

Példák

Ez a parancs egy interaktív parancssori felületet hív meg a \\marklap rendszeren:

psexec \\marklap cmd

Ez a parancs futtatja az IpConfig programot a távoli rendszeren az /all paraméterrel, és megjeleníti az eredményül kapott adatokat a helyi rendszer képernyőjén:

psexec \\marklap ipconfig /all

Ez a parancs a test.exe programot a távoli rendszerre másolja, és interaktívan futtatja.

psexec \\marklap -c test.exe

Ha egy ilyen program már telepítve van a távoli rendszeren, és nincs a rendszerkönyvtárban, adja meg a program teljes elérési útját

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

Ez a parancs interaktívan futtatja a Regedit programot a rendszerfiókból a SAM és a SECURITY rendszerleíró kulcs adatainak megtekintéséhez:

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

Ez a parancs a hívásra szolgál Internetes programok Explorer korlátozott felhasználóként:

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

Ez a cikk a konzolparancsok végrehajtását tárgyalja a hálózat távoli számítógépein. A rendszergazdák számára nagyon hasznos parancsokat mutatunk be példaként.

2 távoli konzolos parancsvégrehajtó eszközt használok: a PsExec-et és a WinRM-et, mindegyiknek megvannak a maga előnyei.

psexec

A címben felvetett probléma egyik nagyszerű megoldása a nagyszerű Mark Russinovich PsExec programjának használata.

A program a kliens-szerver elven működik: a helyi gépen egy kliens fut, amely parancsokat küld a távoli számítógépen lévő szervernek. Ennek a programnak az a jellemzője, hogy a kiszolgáló része közvetlenül a parancs végrehajtása előtt automatikusan telepítésre kerül, majd eltávolításra kerül. Így a parancsok távoli gépeken történő végrehajtásához elegendő adminisztrátori jogokkal rendelkezni rajtuk.

Ha a PsExec rendszergazdaként fut, aki ugyanahhoz a tartományhoz tartozik, mint a távoli számítógép, akkor még hitelesítő adatokra sincs szükség. Ellenkező esetben megadhatók a parancssorban, vagy a PsExec rákérdez. A PsExec Windows 2000 és 64 bites Windows Server 2008 R2 operációs rendszereken fut.

A következő szolgáltatások nagyon hasznosak a PsExecben:

  • Futtasson egy parancsot számítógépek csoportján. Példa: A következő paranccsal kikényszerítheti a legújabb csoportházirendeket:
    psexec @group.txt gpupdate /force
  • Futtassa a parancsokat rendszerfiókként. Példa: A következő parancs arra kényszeríti a távoli rendszert, hogy ellenőrizze a frissítéseket:
    psexec \\computer -s wuauclt /detectnow
  • Futó program másolása távoli számítógépre végrehajtás előtt. Példa: A következő parancs újraindítás nélkül frissíti a számítógép tagságát egy Active Directory biztonsági csoportban (hozzáférési token):
    psexec \\computer -c -s klist.exe tisztítás

Nehéz túlbecsülni ennek a programnak a hasznosságát, ha a Windowsba épített konzolparancsok szkriptjeit és képességeit használja.

Windows távfelügyelet

Eredetileg egy távoli hardverkezelés kiszolgálótechnológiája volt, amelyet a Windows Server 2003 R2 rendszerben a Hardverkezelés összetevő részeként vezettek be, de a Microsoft nemrégiben kiadta a Windows Management Framework csomagot, amely tartalmazza a PowerShell 2.0-t és a WinRM 2.0-t is, és az ügyfél operációs rendszerekre telepítve van. egy frissítés. A részletek a KB968929 cikkben találhatók.

A WinRM szépsége a WSUS-on keresztüli, opcionális operációs rendszer-frissítésként a tartományi környezetben történő egyszerű üzembe helyezésben és a PowerShell használatával járó teljesítményben rejlik.

A WinRM használata 2 paranccsal történik.

winrm.cmd A WinRM kliens és a kiszolgáló beállításainak és diagnosztikájának konfigurálására szolgál.

Ahhoz, hogy a WinRM kiszolgáló elkezdhesse a parancsok fogadását, futnia kell a Windows távfelügyeleti szolgáltatásnak, és el kell végezni a kezdeti konfigurációját. Használja a parancsot

winrm quickconfig a helyi gépen, vagy csel a fülekkel
psexec -s \\kiszolgálónév winrm quickconfig a hálózaton keresztül a PsExec rendszerfiók használatával.

Kérni fogja a WinRM szolgáltatás automatikus indítását és a távoli kapcsolatok engedélyezését, egyetértek ;)

Ahhoz, hogy sikeresen csatlakozhasson egy WinRM szerverhez (azaz a parancsokat elfogadó szerverrészhez), amely nem ugyanabban a tartományban található, mint az ügyfélszámítógép, fel kell vennie ezt a célkiszolgálót a kliens „megbízható listájára” a következőkkel. parancs:

winrm set winrm/config/client @(TrustedHosts="szervernév") , ahol a szervernév helyett megadhat egy IP-címet, vagy * (csillag).

Azon Windows Vista és Windows 7 felhasználók számára, akik nem beépített rendszergazdaként futnak (ez általában így van), a következő parancsot kell futtatnia

reg add hozzá HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f

Alapértelmezés szerint legfeljebb 5 egyidejű WinRM-kapcsolat lehetséges egy klienstől, a szám növeléséhez futtassa a parancsot.

winrm s winrm/config/winrs @(MaxShellsPerUser="X")

winrs.exe- kliens kérések küldésére a szerver oldalra. Példa: A következő parancs kényszeríti a távoli rendszer újraindítását...

winrs -r:kiszolgálónév leállítás /r /t 0

Tartományi környezetben a parancsot elindító felhasználó hitelesítő adatait használják a parancsok küldésekor. Parancsok küldéséhez egy másik felhasználó nevében az -u:user -p:pass kapcsolók használatosak. Példa: A következő parancs törli a DNS-nevek helyi gyorsítótárát a távoli rendszeren

winrs -r:szervernév -u:felhasználó -p:pass ipconfig /flushdns