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