Távoli asztal indítása a parancssorból. Távoli asztali hozzáférés

A Windows korábbi kiszolgálóverzióiban az adminisztrátornak Terminálszolgáltatásokat kellett használnia a kiszolgáló távoli kezelésére. Ennek a megoldásnak az volt a hátránya, hogy a terminálszolgáltatásokat akkor is telepíteni kellett, ha a rendszergazdának csak egy távoli kapcsolatra volt szüksége a rutin adminisztrációs feladatok elvégzéséhez. A Windows XP és a Windows Server 2003 szabványos mechanizmussal rendelkezik Távoli asztal az adminisztrációhoz, vagy egyszerűen a Remote Desktop, amely lehetővé teszi a távoli csatlakozást és a kiszolgáló kezeléséhez szükséges műveletek elvégzését. Ez a mechanizmus a terminálszolgáltatásokon alapul, és két egyidejű távoli kapcsolatot támogat (Windows XP esetén egy). A rendszergazda bármely munkaállomásról felügyelheti a Windows Server 2003 rendszert futtató összes kiszolgálót, ha távolról csatlakozik hozzájuk.

jegyzet
A Remote Desktop for Administration mechanizmus lényegében nem azonos a Windows 2000 terminálszolgáltatások által támogatott távoli adminisztrációs móddal. A Windows Server 2003 rendszerben a távoli adminisztrációs feladat elkülönül a terminálszolgáltatásoktól, és külön mechanizmusként valósul meg. A távoli adminisztrációs mechanizmus és a Terminal Services szétválasztása lehetővé tette a szerver terhelésének minimálisra csökkentését olyan helyzetben, amikor csak egy másik számítógépről kell kezelni a szervert.

A Windows XP és a Windows Server 2003 rendelkezik egy Távsegítség funkcióval is, amely lehetővé teszi a felhasználó számára, hogy hozzáférjen a számítógépéhez, és segítséget kapjon nehéz helyzetekben (lásd a következő részt).

jegyzet
Alapértelmezés szerint a Távoli asztal és a Távsegítség szolgáltatás le van tiltva.

Ezen túlmenően, ha az Internet Information Services (IIS) részeként egy Windows XP vagy Windows Server 2003 rendszert futtató számítógépre telepítve van egy webszerver, akkor ezen a számítógépen keresztül távolról hozzáférhet bármely olyan Windows XP vagy Windows Server 2003 rendszerhez, amely a ugyanazon a helyi hálózaton, bármely operációs rendszeren futó webböngészőből (Internet Explorer 4.0 és újabb). Ez a funkció lehetővé teszi például, hogy egy Windows 95 operációs rendszert futtató, alacsony fogyasztású számítógépen elindítson egy böngészőt, és egy távoli Windows Server 2003 rendszer nevének megadásával, amely valamilyen nagy teljesítményű processzoron alapul, dolgozzon rajta teljes képernyős mód.
Minden távoli elérési munkamenet titkosítva van, hogy megakadályozza az adatokhoz és a rendszerekhez való jogosulatlan hozzáférést: a használt RDP-protokoll az RC4 algoritmussal van titkosítva.

Távoli hozzáférési engedély

A távelérési mód vezérléséhez (ne keverje össze a telefonos kapcsolaton keresztüli távoli eléréssel!) Használja a Rendszer tulajdonságai ablak Távoli fülét (Távoli használat) (10.9. ábra). (Az ablak gyors eléréséhez használja a billentyűket +.)
Ha engedélyezni szeretné, hogy más számítógépekről származó felhasználók is hozzáférjenek a rendszerhez, jelölje be a Felhasználók távoli csatlakozásának engedélyezése ehhez a számítógéphez jelölőnégyzetet. A Távoli felhasználók kiválasztása gombra kattintva kifejezetten megadhatja, hogy mely felhasználók számára engedélyezett a távoli hozzáférés (10.10. ábra): ezek a felhasználók bekerülnek a helyi Távoli asztali felhasználók csoportba. Alapértelmezés szerint csak a rendszergazdáknak van távoli hozzáférése a számítógéphez.
Nem használhat fiókokat jelszó nélkül távoli hozzáféréshez. Ha vannak ilyen bejegyzések a számítógépen, akkor a Felhasználók távoli csatlakozásának engedélyezése ehhez a számítógéphez jelölőnégyzet bejelölése esetén figyelmeztetés jelenik meg, amint az az ábrán látható. 10.11.

Rizs. 10.9. Távoli asztal és Távsegítség vezérlőablak

Rizs. 10.10. Az ebben az ablakban megadott felhasználók távoli hozzáférést kapnak a számítógép asztalához


Rizs. 10.11. Emlékeztető, hogy a jelszó nélküli fiókok nem használhatók a számítógép távoli elérésére

A Remote Desktop Connection segédprogram távelérési munkamenet inicializálására szolgál (a Start | Minden program | Kellékek | Kommunikáció almenüből vagy a parancssorból az mstsc paranccsal indítható el). Írja be a távoli számítógép nevét vagy IP-címét, majd kattintson a Csatlakozás gombra (10.12. ábra) – és néhány pillanat múlva megjelenik egy ablak, amely a távoli rendszerbe való bejelentkezésre hív!

Figyelem

Rizs. 10.11. Emlékeztető, hogy a jelszó nélküli fiókok nem használhatók a számítógép távoli elérésére

Távoli hozzáférési munkamenet indítása és konfigurálása

A Remote Desktop Connection segédprogram távelérési munkamenet inicializálására szolgál (a Start | Minden program | Kellékek | Kommunikáció almenüből vagy a parancssorból az mstsc paranccsal indítható el). Írja be a távoli számítógép nevét vagy IP-címét, majd kattintson a Csatlakozás gombra (10.12. ábra) – és néhány pillanat múlva megjelenik egy ablak, amely a távoli rendszerbe való bejelentkezésre hív!



Rizs. 10.12. Ebből az ablakból munkamenetet kezdeményezhet egy távoli számítógéppel

Figyelem

Windows XP rendszereken a Remote Desktop használatával történő bejelentkezés „kirúgja” az aktuális felhasználót a rendszerből anélkül, hogy bezárná az aktuális munkamenetet. Ha egy távoli felhasználó egy már regisztrált felhasználó nevével jelentkezik be, akkor ennek a felhasználónak a munkakörnyezetét - nyitott ablakokat, futó programokat - kapja meg, aki viszont újra bejelentkezhet és kinyomhatja az "idegenet". Csak a Távsegítség használata esetén lehetséges, hogy két felhasználó dolgozzon egy időben ugyanabban a munkamenetben. Ez nem történik meg a Windows Server 2003 rendszerben, mert két munkamenetet tesz lehetővé a távoli adminisztrációhoz. Ha azonban az mstsc /console parancsot használjuk, akkor ugyanazt a működési módot kapjuk, mint a Windows XP-ben - vagyis a "push"-val.
A Távoli asztali kapcsolat ablakban kattintson a Beállítások gombra, és alaposan tekintse át a távoli kapcsolat beállításait meghatározó összes lapot. Beállíthatja például a képernyő méretét, a színmélységet (legfeljebb 24 bit), a csatlakozási sebességet stb. Ügyeljen a Helyi erőforrások fülre (10.13. ábra).

Rizs. 10.13. A helyi eszközök átrendelését vezérlő lap

Alapértelmezés szerint a távoli számítógépről érkező hang a helyi számítógépre kerül átirányításra, és a távoli számítógépen végzett munka közben nyomtathat a helyi nyomtatóra. Ha bejelöli a Lemezmeghajtók jelölőnégyzetet, akkor mindkét rendszer lemezét egyszerre használhatja. Ez nagyon kényelmes például fájlok másolásakor: „egy csuklómozdulattal” a Windows Intéző ablakában (ahol mindkét számítógép lemeze megjelenik), bármilyen információt átmásolhat egy távoli számítógépről a helyi lemezre. .
Az Experience (Tapasztalat) fül (10.14. ábra) lehetővé teszi a távelérési munkamenet hozzáigazítását a csatlakozási paraméterekhez: letilthat néhány grafikus funkciót a kis sebességű csatornáknál, és engedélyezheti az összes funkciót, ha helyi hálózaton keresztül csatlakozik.

Rizs. 10.14. Távoli elérési paraméterek konfigurálása a kommunikációs csatorna sebességétől függően

Ha a munkamenet ablakát teljes képernyőről rögzített méretű képernyőre szeretné váltani, és fordítva, használja a billentyűket ++

A Windows Server 2003 rendszerek a Távoli asztalok beépülő modult használják a terminálszolgáltatások eléréséhez. Használható számítógépek távoli elérésére is. ábrán A 10.15. ábra egy példát mutat két távoli számítógép (Távoli kiszolgáló és tartományvezérlő) egyidejű csatlakozására. Minden munkamenet előre létre van hozva és konfigurálva (lásd: Snap-In Root and Remote Access Session Tree), ami után könnyen elindítható a kurzorra mutatva a listában. Könnyedén válthat a különböző munkamenetek között.


Rizs. 10.15. Távoli asztalok beépülő ablaka két egyidejű távoli hozzáférési munkamenettel

Kilépés a munkamenetből

Számítógép távelérési munkamenete során a rendszergazdának három lehetősége van a munkamenet befejezésére (minden esetben meg kell nyitnia a Start menüt (Start), és rá kell kattintania a Leállítás gombra (Munka vége)):

  • kikapcsolhatja a számítógépet a Leállítás opció kiválasztásával a Windows leállítása ablakban;
  • a Kijelentkezés opció kiválasztásával kijelentkezhet a rendszerből;
  • az aktuális munkamenetet a Leválasztás opció kiválasztásával megszakíthatja - ebben az esetben a korábban használt névvel a számítógéphez való újracsatlakozáskor a rendszergazda ugyanazt a munkakörnyezetet kapja (nyitott ablakok és futó programok), amelyet a kapcsolat bontásakor „elhagyott”. az ülésszak.

Távoli hozzáférés az interneten keresztül

A számítógép interneten keresztüli eléréséhez írja be a http:// címet a böngésző címmezőjébe.<имя_cepвepa>/TSWeb , ahol a kiszolgáló_neve a webszerver DNS-neve (telepített IIS-sel rendelkező számítógép) vagy annak IP-címe.


Rizs. 10.16. Internetkapcsolat ablak egy távoli számítógéphez

A szerverhez való csatlakozás után megjelenik a Remote Desktop Web Connection weboldal (10.16. ábra), ahol a Szerver mezőben meg kell adni annak a számítógépnek a nevét vagy címét, amelyhez csatlakozni kíván, majd kattintson a Connect gombra. Kérjük, vegye figyelembe, hogy a webszerver és a célszámítógép neve eltérhet: azaz Ön egy számítógépen keresztül "bejelentkezik" a hálózatba, de bármelyik másikhoz csatlakozik.

Figyelem
A leírt mód működéséhez a Remote Desktop Web Connection összetevőt telepíteni kell a kiszolgálóra a WWW (World Wide Web Service) szolgáltatás részeként.

Amikor először követi ezt az eljárást, a kiszolgáló letölti az ActiveX összetevőt, amelyet telepítenie kell a helyi számítógépére. Az ablaka az ábrán látható. 10.17. Kattintson az Igen gombra.


Rizs. 10.17. Figyelmeztetés ActiveX-összetevő helyi számítógépre történő telepítésével kapcsolatban

Ezt követően létrejön a kapcsolat a kiválasztott (cél)számítógéppel, és megjelenik a hagyományos regisztrációs ablak. ábrán 10.18 például megjelenik egy Internet Explorer böngészőablak, amely egy távoli számítógépen lévő munkamenetet jelenít meg. Felhívjuk figyelmét, hogy a cím ablakban megjelenik az egyik számítógép IP-címe (amelyen keresztül beléptünk a hálózatba), és a kapcsolat létrejön egy másik számítógéppel - annak címe a képernyő alján látható. Emlékezzünk vissza, hogy ilyen kép minden operációs rendszerben elérhető, ahol az Internet Explorer 4.0-s vagy újabb verziója telepítve van. Teljes képernyős módban a böngésző panelek egyáltalán nem jelennek meg, és csak a távoli számítógép asztalát fogjuk látni.

Rizs. 10.17. Figyelmeztetés ActiveX-összetevő helyi számítógépre történő telepítésével kapcsolatban

Ezt követően létrejön a kapcsolat a kiválasztott (cél)számítógéppel, és megjelenik a hagyományos regisztrációs ablak. ábrán 10.18 például megjelenik egy Internet Explorer böngészőablak, amely egy távoli számítógépen lévő munkamenetet jelenít meg. Felhívjuk figyelmét, hogy a cím ablakban megjelenik az egyik számítógép IP-címe (amelyen keresztül beléptünk a hálózatba), és a kapcsolat létrejön egy másik számítógéppel - annak címe a képernyő alján látható. Emlékezzünk vissza, hogy ilyen kép minden operációs rendszerben elérhető, ahol az Internet Explorer 4.0-s vagy újabb verziója telepítve van. Teljes képernyős módban a böngésző panelek egyáltalán nem jelennek meg, és csak a távoli számítógép asztalát fogjuk látni.



Felmerült a feladat, hogy végre hajtsunk végre valamilyen műveletet a parancssor használatával egy másik számítógépen, önmagában menjünk a felhasználóhoz, hogy elindítsuk a parancssort, és hajtsuk be a parancsokat - nem a mi módszerünk, el kell indítani a távoli számítógép parancssorát anélkül, hogy felkelnénk. a széket, és hajtsa végre a szükséges műveleteket a parancssorban. Természetesen egy ilyen művelet végrehajtható távoli kapcsolati programokkal, de ez nem mindig kényelmes, és Önnek és a felhasználónak (kliens-szervernek) hasonló programra van szüksége. Egy másik számítógép parancssorához való csatlakozás folyamata sokkal egyszerűbben végrehajtható a paranccsal PSEXEC.

psexec egy parancssori segédprogram, amely képes interaktívan meghívni egy parancssori felületet távoli Windows rendszereken, és különböző parancsokat távolról futtatni.

Ez a segédprogram csak a rendszergazda számítógépére van telepítve. A telepítéshez le kell tölteni, itt a link A Microsoft hivatalos oldala . Az archívum letöltése után ki kell csomagolnia, a kicsomagolt mappában keresse meg a PsExec.exe fájlt. Kattintson rá kétszer, megjelenik egy ablak a licencszerződéssel, kattintson a " Egyetért".

Elemezzük a parancs szintaxisát:

psexec [\\számítógép[,számítógép2[,...] | @file][-u felhasználó [-p jelszó]][-n s][-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 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.

-c 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.

-d 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.

-e A megadott fiókprofil nincs betöltve.

-f 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.

-én 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.

-l 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.

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

-o 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.

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

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

-v 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.

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

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

-prioritás(prioritás) 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).

Példák a csapatmunkára PSEXEC:

1) Egy másik számítógép parancssorának elindításához be kell írnia
psexec \\<имя компьюетра>cmd

Például:
psexec \\WIN782 cmd



ezt követően megadhatja a szükséges parancsokat.

2) Egy program (ebben a példában a test.exe) távoli számítógépen való futtatásához végre kell hajtania a parancsot (ez a parancs átmásolja a test.exe programot a távoli rendszerre, és interaktívan végrehajtja).

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

Például:
psexec \\WIN782-c test.exe

3) 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 \\WIN782 c:\temp\test.exe

Valószínűleg ki szeretné használni a Windows Vista (Távoli asztal) eszközbe épített többmonitoros támogatást. Ez a funkció lehetővé teszi a távoli számítógép asztalának kiterjesztését a helyi rendszerhez csatlakoztatott összes monitorra.

Megtalálni azonban nem egyszerű – nem az eszköz grafikus felhasználói felületéről, hanem a parancssorból érhető el.

Korlátozások

A több monitor támogatása távoli asztalhoz való csatlakozáskor nagyon kényelmes szolgáltatás, de két korlátja van:

1. A rendszerhez csatlakoztatott összes monitornak azonos felbontásúnak kell lennie.

2. Az összes monitor képernyőfelbontása, beleértve a távoli rendszeren lévőket is, nem haladhatja meg a 4096 x 2048 pixelt.

Parancs sor

A többmonitoros Távoli asztali kapcsolat elindításához meg kell nyitnia egy parancssort, és be kell írnia a következő parancsot:


Ezt követően megnyílik a szabványos Távoli asztali kapcsolat párbeszédpanel, ahol konfigurálnia kell a kapcsolat beállításait (lásd A ábra).

A ábra Távoli asztali kapcsolat indításakor a parancssorból, a kapcsolat beállításait kézzel kell megadni.

A kapcsolat létrejötte után a távoli rendszer asztala megjelenik a helyi rendszerhez csatlakoztatott összes monitoron. Ha mind a helyi, mind a távoli asztalra van szüksége, az utóbbi méretét egy monitorra korlátozhatja, ha a távoli asztal ablakában a "Visszaállítás lefelé" gombra kattint. Ehhez billentyűparancsokat is használhat.

Miután a távoli asztal ablaka megjelenik a monitoron, az egérrel nyújtható, hogy kitöltse a teljes képernyőt. Ne feledje, hogy ha csökkenti a kinyújtott távoli asztali ablak méretét, akkor a vízszintes és függőleges görgetősávokat kell használnia a teljes képernyő megtekintéséhez, amint az az ábrán látható. B. De bármikor visszaállítható a Maximalizálás gombra kattintva.



B ábra Ha csökkenti a távoli asztal kifeszített ablakának méretét, a teljes képernyő megtekintéséhez a vízszintes és függőleges görgetősávokat kell használnia.

Hozzon létre egy parancsikont

Természetesen a Remote Desktop Connection parancssorból történő minden alkalommal történő elindítása nem túl kényelmes. Ha már rendelkezik mentett RDP távoli asztali kapcsolat beállítási fájljával, létrehozhat egy szabványos Windows parancsikont a csatlakozáshoz ezzel a fájllal és a parancssori opciókkal.

Kattintson Jobb klikk vigye az egeret bárhová az asztalon, és válassza az Új | Parancsikon" (Új | Parancsikon). A varázsló Parancsikon létrehozása párbeszédpanelében írja be az mstsc /span parancsot és az RDP-fájl elérési útját az 1. ábrán látható módon. C. Ha a fájl címében szóköz van, feltétlenül tegye dupla idézőjelek közé. Most kattintson a "Next" (Következő) gombra, rendelje hozzá a parancsikont alkalmas név, például: „Saturn – Connect. többel monitorok” és kattintson a „Befejezés” gombra.



C ábra Létrehozhat egy szabványos Windows parancsikont az RDP-fájl és a parancssori opciók használatával történő csatlakozáshoz.

Most ezzel a parancsikonnal csatlakozhat egy távoli számítógéphez az összes elérhető monitor használatával. Természetesen több ablak megnyitásakor a feszített asztal másképp fog viselkedni, mint amikor több monitorral dolgozik a helyi rendszeren - meg kell mutatnia a fantáziáját, és át kell méreteznie az ablakokat, hogy mindegyik kényelmesen elférjen a távoli asztalon.

Mit gondolsz?

Hány monitor csatlakozik a számítógépéhez? Milyen gyakran használja a Távoli asztali kapcsolatot? Használni fogja a Vista Remote Desktop Connection többmonitoros támogatását? Oszd meg velünk véleményedet kommentben!

A rendszergazdák egyik legnépszerűbb feladata egy parancs futtatása egy távoli számítógépen anélkül, hogy elhagyná a székét. Erre egy program vagy segédprogram telepítéséhez, bizonyos beállítások módosításához vagy bármi máshoz lehet szükség. És persze ritkán csak egy számítógépről van szó, gyakrabban kell végrehajtani a parancsot több munkaállomáson vagy szerveren.

Mivel ez a probléma népszerű, sokféleképpen lehet megoldani. Kezdve a csoportházirendekkel (amelyekben bejelentkezési vagy indítási szkripteket használhat erre a célra), és a következővel végződik erős rendszerek kezelés, például a System Center Essentials vagy a System Center Configuration Manager. Ebben a cikkben azonban olyan módszereket akarok megvizsgálni, amelyek azonnal elérhetők a parancssorból vagy a szkriptfájlokból, és nem igényelnek ügynökök előzetes telepítését és egyéb felhajtást. Vannak azonban bizonyos előfeltételek. Például rendszergazdai jogosultságokkal kell rendelkeznie azon a számítógépen, amelyen a parancsot futtatni kívánja (kivéve a "proxy" forgatókönyvet, de erről később).

Psexec.exe

Az egyik kedvenc módja ennek a feladatnak a Mark Russinovich által írt PsExec.exe parancssori segédprogram, amelyet szabadon letölthet a Windows SysInternals webhelyéről. A cikk végén találsz rá egy linket. Nem igényel telepítést a rendszerre, egyszerűen átmásolhatja a %path% környezeti változóban található mappák egyikébe, és bármelyik parancssori shellből meghívhatja: Cmd vagy PowerShell.

A PsExec használata nagyon egyszerű. Például az ipconfig /flushdns futtatásához a fő gépen csak futtassa a következő parancsot:

psexec \\main ipconfig /flushdns

Az ipconfig parancs a fő 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 a parancs kilépési kódja (hibakód) visszaküldésre kerül. Ha a parancs sikeres volt, akkor 0 lesz.


Természetesen a PsExec lehetőségei ezzel nem értek véget. A segédprogram paraméterek nélküli meghívásával további elérhető lehetőségeket láthat. Ezek közül csak néhányra fogok összpontosítani.

Kulcs -d azt mondja a PsExec-nek, hogy nem kell várni a parancs végrehajtására, hanem csak futtasd és felejtsd el. Ebben az esetben nem kapunk kimeneti adatokat a konzol segédprogramtól, de másokat futtathatunk anélkül, hogy megvárnánk az előző parancs befejezését. Ez nagyon hasznos, ha például egy programtelepítőt több számítógépen kell futtatnia.

A PsExec alapértelmezés szerint lopakodó módban hajtja végre a parancsokat, vagyis nem jelennek meg ablakok vagy párbeszédablak azon a rendszeren, ahol a parancsot végrehajtják. Ez a viselkedés azonban megváltoztatható a gombbal -én. Utána megadható, hogy hány munkamenetben jelenjenek meg az ablakok, vagy nem adható meg, ekkor a felület megjelenik a konzol munkamenetben.

Így egy ablak megjelenítéséhez az operációs rendszer verziójával a fő számítógépen, futtassa a PsExec-et a következőképpen:

psexec -i \\main winver.exe

Ha egy parancsot egyszerre több számítógépen szeretne végrehajtani, akkor szüksége lesz a nevük kiolvasására egy listás szövegfájlból.

psexec @c:\comps.txt systeminfo.exe

Nos, a PsExec egyik leghasznosabb funkciója a bemenet/kimenet interaktív átirányítása a számítógépek között, ami lehetővé teszi például, hogy távoli szerveren futtassuk a cmd.exe fájlt, és parancsokat adjunk neki, és eredményeket kapjunk a helyi szerveren. számítógép.


Hogyan működik a Psexec?

Minden ötletes egyszerű. A PsExec.exe végrehajtható fájl erőforrásai közé tartozik egy másik végrehajtható 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 egy rejtett adminisztratív megosztott mappájába, a következő fájlba: \\ComputerName\Admin$\system32\psexesvc.exe. Ha a -c kapcsolóval jelezte, hogy a végrehajtható fájlokat erre a rendszerre szeretné átmásolni, akkor azok is ebbe a mappába kerülnek.

Az előkészítő lépések befejezése után a PsExec telepíti és elindítja a szolgáltatást a Windows Service Management API-k segítségével. A PSEXESVC elindulása után több csatorna jön létre közte és a PsExec között az adatok (beviteli parancsok, eredmények stb.) átviteléhez. Ha elkészült, a PsExec leállítja a szolgáltatást, és eltávolítja a célszámítógépről.

Windows Management Instrumentation (WMI)

Ennek a népszerű feladatnak a megvalósításának következő módja, amelyről beszélni szeretnék, a Windows Management Instrumentation használata. A WMI a Windows 2000 óta minden Microsoft operációs rendszerben jelen van, sőt Windows 9x-en is külön csomagból telepíthető. A WMI alapértelmezés szerint engedélyezve van, és nem igényel további konfigurációt. Használatához elegendő adminisztrátori jogosultság, és a tűzfalon engedélyezett DCOM protokoll. A WMI rengeteg lehetőséget kínál a rendszerek kezelésére, de ezek közül jelenleg csak az egyikre vagyunk kíváncsiak.

A folyamatok elindításához szükségünk van a Win32_Process osztály Create metódusára. Elég könnyű használni. A PowerShellben ez a következőképpen történik:

$Computer = "fő"
$Command = "cmd.exe /c systeminfo.exe >
("\\$Computer\root\cimv2:Win32_Process").create($Command)

Itt megadtam a cmd.exe fájlt indítandó folyamatként, és már át is adtam argumentumként kívánt parancsot. Erre akkor van szükség, ha a távoli számítógép környezeti változóit vagy a beépített cmd.exe utasításokat, például " > ' a kimenet fájlba való átirányításához. A Create metódus nem várja meg a folyamat befejeződését, és nem ad vissza eredményt, hanem elmondja nekünk az azonosítóját - ProcessID.

Ha olyan számítógépet használ, amelyen még nincs telepítve a PowerShell, akkor ezt a WMI-módszert VBScript-szkriptből is meghívhatja. Például így:

1. lista – Folyamat indítása WMI-vel (VBScript)

Számítógép = "PC3"
Parancs = "cmd.exe /c systeminfo.exe > \\server\share\%computername%.txt"
Set objWMIService = GetObject("winmgmts:\\" & Computer & "\root\cimv2:Win32_Process")
Eredmény = objWMIService.Create("calc.exe", Null, Null, intProcessID)

De sokkal egyszerűbb a wmic.exe parancssori segédprogram használata, amely meglehetősen kényelmes felületet biztosít a WMI-vel való munkavégzéshez, és a Windows XP-től kezdődő operációs rendszerekben megtalálható. Ebben például egy számológép futtatásához a fő számítógépen csak futtassa a következő parancsot:

wmic /node:fő folyamathívás Create calc.exe

Természetesen a WMI képességei nem korlátozódnak csupán a folyamatok elindítására. Ha többet szeretne megtudni erről a technológiáról, javasoljuk, hogy olvassa el Konstantin Leontiev WMI-ről szóló cikkeit, amelyekre mutató hivatkozásokat a cikk végén talál.

WSH Remote Scripting

Igen, furcsa módon a Windows Script Host képes szkriptek futtatására más számítógépeken is. Igaz, ez a funkció nem kapott túl nagy népszerűséget, és valószínűleg annak köszönhető, hogy túl sok előkészítő tevékenységet igényel, és cserébe nagyon kevés lehetőséget biztosít. De erről a módszerről mindenképpen beszélek, mert jól jöhet.

Tehát a szkript futtatásához egy másik számítógépen WSH használatával, a következőket kell tennünk:

    Rendszergazdai jogok a távoli számítógépen. Ez magától értetődő, és szinte minden más, ebben a cikkben felsorolt ​​indítási módhoz szükséges.

    Engedélyezze a WSH Remote Scriptinget úgy, hogy a rendszerleíró adatbázisban a HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Script Host\Settings beállításkulcsban hozza létre az "1"-es Remote karakterlánc-paramétert.

    A Microsoft Tudásbázis 311269. számú cikkében leírt hiba miatt Windows XP rendszereken előfordulhat, hogy a wscript –regserver parancsot kell futtatnia.

    Ha tűzfalat használnak a számítógépeken, akkor annak lehetővé kell tennie a DCOM-hoz való hozzáférést. Sőt, ezt nem csak a felügyelt számítógépen kell megtenni, hanem azon is, amelyről a szkriptet futtatni kívánja.

    A Service Pack 2 vagy újabb szervizcsomaggal rendelkező Windows XP rendszereken módosítania kell a DCOM biztonsági beállításait. Ezt a csoportházirend segítségével lehet megtenni. A Számítógép konfigurációja \ Windows beállítások \ Biztonsági beállítások \ Helyi házirendek \ Biztonsági beállítások csomópontban állítsa be az engedélyeket az alábbiak szerint:

    1. DCOM: Machine Access Restrictions in Security Descriptor Definition Language (SDDL) szintaxis
      Adja meg a Névtelen bejelentkezés és a Mindenki csoport Helyi engedélyezése és Távoli elérés engedélyezése engedélyeket

      DCOM: Machine Launch Restrictions in Security Descriptor Definition Language (SDDL) szintaxis
      Engedélyek megadása a rendszergazdáknak: Helyi indítás engedélyezése, Távoli indítás engedélyezése, Helyi aktiválás engedélyezése, Távoli aktiválás engedélyezése
      Mindenki csoport – Helyi indítás engedélyezése, Helyi aktiválás engedélyezése

Nos, mindezen eljárások után megpróbálhatja futtatni a szkriptet egy másik számítógépen.

Egy példaszkript, amely ezt a technológiát használja:

2. lista – WSH távoli szkriptelés (VBScript)

Set objController = CreateObject("WshController")
Állítsa be az objRemoteScript = objController.CreateScript("C:\test.vbs", "PC5")WScript.ConnectObject objRemoteScript, "remote_"
objRemoteScript.Execute
Do While objRemoteScript.Status<> 1
WScript.Sleep 1000
hurok
MsgBox "Szkript kész"
Sub remote_Error
Dim objError
Állítsa be: objError = objRemoteScript.Error
WScript.Echo "Error - Line: " & objError.Line & _
", Char: " & objError.Character & vbCrLf & _
"Leírás: " & objError.Description
WScript kilépés -1
vége al

A második sorában a CreateScript függvény paramétereiként a távoli számítógépen végrehajtandó parancsfájl elérési útja és a számítógép tényleges neve látható.

Erről a technológiáról részletesebb cikk a cikkben található Speciális VBScript Microsoft Windows rendszergazdáknak – 6. fejezet: Távoli parancsfájlkezelés(lásd a linkeket).

Feladat ütemező

A Task Scheduler a parancssorból vezérelhető két segédprogrammal - at.exe és schtasks.exe. Mindkét segédprogram lehetővé teszi egy távoli számítógép nevének megadását a feladat létrehozásához, és ezáltal lehetővé teszi a probléma megoldását. De részletesen csak a schtasks.exe-t fogjuk figyelembe venni, mivel sokkal több funkciót kínál.

Bár a parancsok végrehajtása más számítógépeken nem az ütemező fő célja, ennek ellenére sok érdekes forgatókönyv megvalósítását teszi lehetővé. Használható például a telepítés engedélyezésére szoftver az ebédszünetben. Vagy ha a felhasználók különböző időpontokban ebédelnek, akkor a számítógép bizonyos idejű inaktivitása után elindíthatja.

schtasks /create /s server6.td.local /tn install /tr \\main\data\install.cmd /sc egyszer /st 13:00 /ru rendszer

Fontos megérteni, hogy a feladat melyik fiók nevében kerül végrehajtásra. Ebben a példában a /ru paramétert a rendszerváltozóhoz adtam meg, ezért a számítógépfiók telepítésének befejezéséhez olvasási hozzáférésre lesz szüksége a hálózati mappához a programterjesztési készlettel.

Egy másik hasznos megoldás szerintem az, hogy beütemezünk néhány műveletet a napi végrehajtásra, és csak akkor töröljük a feladatot, ha megerősítik a sikert. Ez azt jelenti, hogy létrehozhat egy egyszerű kötegfájlt, amely először lefuttatja a program telepítőjét, megvárja, amíg befejeződik, és ellenőrzi, hogy a program telepítése sikeres-e. Ha igen, akkor eltávolítja a feladatot az ütemezőből az adott számítógépen. Példa egy ilyen fájlra:

3. lista – A program telepítése, majd a feladat törlése (Windows Batch)

msiexec /qn /package \\server\share\subinacl.msi
ha létezik "c:\program files\Windows Resource Kits\Tools\subinacl.exe" (
subinacl /tn Telepítés_Subinacl /f

WinRM (WS Management)

A WinRM a nyílt szabványú DMTF (Distributed Management Task Force) Microsoft általi megvalósítása, amely lehetővé teszi a rendszerek webszolgáltatások segítségével történő kezelését. Nem fogok belemenni a technológia eszközébe, csak röviden leírom, mi szükséges a használatához.

A WinRM 1-es és újabb verziója a Windows Vista és a Windows Server 2008 operációs rendszerrel kezdődő operációs rendszerek részét képezi. Windows XP és Windows Server 2003 esetén a WinRM külön csomagként telepíthető (lásd a hivatkozásokat).

Ha gyorsan be szeretné állítani a számítógépet a szabványos portokon keresztüli csatlakozáshoz, és lehetővé teszi a csatlakozást az adminisztratív fiókokhoz, csak futtassa a parancsot:

winrm gyorskonfig

Annak megakadályozására, hogy a winrm megerősítést kérjen, hozzáadhatja a -quiet kapcsolót a híváshoz. A finomhangolással kapcsolatos további információkért lásd a beépített winrm súgót:

winrm help config

Ha a felügyelt számítógépen webszerver fut, a WinRM semmilyen módon nem zavarja azt, annak ellenére, hogy alapértelmezés szerint szabványos HTTP-portokat használ. Csak a kifejezetten neki szánt kapcsolatokat fogja el.

Természetesen nem kell manuálisan futtatnia ezt a parancsot minden kezelni kívánt számítógépen. Az összes szükséges beállítás könnyen elvégezhető a csoportházirendekkel. Ehhez szüksége van:

  1. Állítsa be a WinRM (Windows Remote Management) szolgáltatást az automatikus indulásra
  2. Konfigurálja a Csoportházirend-elemet Számítógép konfigurációja \ Felügyeleti sablonok \ Windows-összetevők \ Windows távfelügyelet (WinRM) \ WinRM szolgáltatás \ Figyelők automatikus konfigurálásának engedélyezése. Itt meg kell adnia az IP-címek azon tartományait, amelyekről a kapcsolatok engedélyezettek.
  3. Természetesen a Windows tűzfal megfelelő portjain (alapértelmezés szerint 80) is engedélyeznie kell a kapcsolatokat.

Függetlenül attól, hogy HTTP (80) vagy HTTPS (443) portot használnak, a WinRM által továbbított forgalom titkosított (hacsak természetesen nem tiltja le ezt az opciót). Az alapértelmezett hitelesítési protokoll a Kerberos.

De elég a beállításokról, jobb, ha közvetlenül a használathoz megy. Bár a winrm segédprogram lehetővé teszi a WinRM szolgáltatás konfigurálását, valamint például WMI-lekérdezések végrehajtását, minket jobban érdekel egy másik - a winrs. Az RS betűk itt Remote Shell-t jelentenek. A WinRS nagyon hasonló a PsExechez, bár a WinRM technológiát használja. A számítógép nevét az -r kapcsolóval adjuk meg, majd a végrehajtandó parancsot. Íme néhány példa:

winrs -r:Core ver.exe

Mivel a winrs már használja a cmd.exe-t távoli parancsértelmezőként, könnyen elérheti a távoli környezeti változókat parancsokban, vagy használhat más beépített cmd.exe parancsokat:

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

A PsExechez hasonlóan a winrs segédprogram is lehetővé teszi interaktív munkamenet megnyitását egy távoli számítógépen:

winrs -r:main cmd.exe

Ez a funkció hasonló a telnet munkamenethez, de biztonsági szempontból a winrs használata határozottan jobb, mint a telnet és még a PsExec is. Függetlenül attól, hogy HTTP (80) vagy HTTPS (443) portot használnak, a WinRM által továbbított forgalom titkosított (hacsak természetesen nem tiltja le ezt az opciót). Az alapértelmezett hitelesítési protokoll a Kerberos.

Windows PowerShell 2.0 távvezérlés

Bár a Windows PowerShell második verziója a cikk írásakor még béta tesztelés alatt áll, a távoli parancsvégrehajtás terén nyújtott képességeiről most mindenképpen érdemes beszélni. Kipróbálhatja saját maga az előnézeti verzió letöltésével (lásd a hivatkozásokat), vagy a Windows 7 vagy a Windows Server 2008 R2 béta verziójának részeként.

A PowerShell Remoting infrastruktúra a WinRM 2.0-s verzióján alapul, ezért örökli ennek a technológiának az összes előnyét, például a továbbított adatok titkosítását és a szabványos HTTP/HTTPS-portokon való működés képességét. De a Windows PowerShell nyelv gazdagságának és az objektumokkal való munkaképességének köszönhetően még több lehetőséghez jutunk. A Ebben a pillanatban A WinRM2.0 szintén béta verzióban érhető el, és csak Windows Vista és Windows 2008 rendszereken tölthető le. A PowerShell 2.0-val együtt a Windows 7 és a Windows Server 2008R2 rendszerekbe is beépítik.

Frissítés: Mire a cikk megjelent az oldalon, a PowerShell 2.0 és a WinRM 2.0 végleges verziója már minden támogatott platformon elérhető. A Windows Server 2008R2-ben és a Windows 7-ben már a rendszer szerves részeként szerepelnek, Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008 esetén pedig minden szükséges összetevő beszerezhető a Windows Management Framework nevű csomagként.

Mielőtt teljes mértékben kihasználná ezeket az előnyöket, a PowerShell Remoting szolgáltatást engedélyezni kell mind a kezelőn, mind a felügyelt számítógépeken. Ez egyszerűen megtehető az Enable-PSRemoting parancsmag (Windows PowerShell parancs) futtatásával. Ezen túlmenően, ha hozzáadja a -Force kulcsot, akkor a rendszer nem kér megerősítést. Ez a parancsmag szükség esetén meghívja a winrs quickconfig-ot, és kivételeket hoz létre a Windows tűzfalban, így nincs szükség további teendőkre.

Ezután egyszerűen végrehajthat parancsokat más számítógépeken az Invoke-Command parancsmag (vagy annak icm álneve) használatával:

Invoke-Command -ComputerName Main -ScriptBlock (netsh interfész dump > c:\ipconfig.txt)

A parancs természetesen előre elhelyezhető egy változóban, és a -ComputerName paraméternél ne egy, hanem egyszerre több számítógép nevét adjuk meg. A következő sorrend lehetővé teszi, hogy egyszerre három számítógépről jelenítse meg az Explorer.exe fájl verzióját.

$Command = ((get-item c:\Windows\explorer.exe).VersionInfo.FileVersion)
Invoke-Command -ComputerName Main, Server7, Replika -ScriptBlock $Command


Amint látható, egyszerre több parancsot is átadhat egy blokkban, ezek végrehajtásának eredményeit több számítógépen egy változóba helyezheti, majd a Windows PowerShell objektumkezelési képességeinek segítségével feldolgozhatja a munkaállomáson.

A PowerShell Remoting lehetőségei azonban csak most kezdődnek. Az Enter-PSSession parancsmag segítségével interaktív Windows PowerShell-munkamenetbe léphet be egy távoli számítógépen. Kiléphet egy ilyen munkamenetből az Exit-PSSession parancsmag segítségével, vagy egyszerűen kiléphet.

A New-PSSession parancsmag munkameneteket hoz létre a következőn távoli számítógépek, amelyre mutatók elhelyezhetők egy változóban, majd argumentumként átadva az Invoke-Command számára, hogy egyszerre több számítógépen, állandó környezetben tudjon parancsokat végrehajtani. A képernyőképen láthat egy példát, ahol a c:\computers.txt listából egyszerre több számítógépen is végrehajtok egy parancssort.


Proxykezelés

Ez a módszer különbözik a fentiektől, és teljesen más feladatokat szolgál, de nem kevésbé releváns. Ha a felhatalmazás átruházása nem lehetséges, vagy túl nagy teljesítményt biztosít, lehetővé teszi a normál felhasználó számára, hogy végrehajtson bizonyos parancsokat, amelyek rendszergazdai jogosultságokat igényelnek anélkül, hogy bármilyen módon további jogosultságokat adnának, vagy veszélyeztetnék a rendszergazdai jelszót.

Az ilyen problémákat leggyakrabban olyan segédprogramok segítségével oldják meg, mint a cpau.exe (lásd a hivatkozásokat), amelyek titkosított rendszergazdai jelszóval hoznak létre egy fájlt, amely lehetővé teszi egy bizonyos program futtatását. A probléma azonban az, hogy bár a jelszó titkosítva van, a segédprogramnak vissza kell fejtenie azt a program futtatása előtt. Ennek megfelelően a felhasználó használhat egy segédprogramot, amely megismétli a jelszó visszafejtési algoritmusát, és megtudhatja azt, hogy aztán más programok indítására vagy további jogosultságok megszerzésére használja. A gyakorlatban ez természetesen meglehetősen nehéz a hétköznapi felhasználók számára, akik nem rendelkeznek speciális ismeretekkel, de ennek ellenére ez teljesen lehetséges. Még egyszer tisztázom, hogy ez nem egy adott segédprogram problémája, hanem általában ennek a megközelítésnek a problémája.

Úgy is tűnhet, hogy a runas segédprogram /savecred opciója alkalmas a probléma megoldására. De itt még két probléma is van. Először is, mint a fent leírt esetben, a jelszó a felhasználó számítógépén tárolódik, és ezért visszafejthető, bár a runas esetében ehhez helyi rendszergazdai jogokra lesz szükség. Másodszor, a runas elmenti a hitelesítő adatokat anélkül, hogy egy adott parancshoz kapcsolná őket, és ezért a felhasználó nem csak azt a parancsot, amelyhez hozzáférést kívánt adni, emelt jogokkal futtathatja, hanem bármely más parancsot is.

Ezeknek a problémáknak a elkerülésére, de egy adott parancs futtatásának lehetővé tétele érdekében a „proxy-nak” nevezett technika használható.

Ez a következőképpen működik. Egy magas jogosultságokkal rendelkező szkript folyamatosan fut a számítógépen. Például a mi esetünkben egy olyan fiókból indul el, amely rendszergazdai jogokkal rendelkezik a fájlszerveren. A felhasználó jelére egy előre meghatározott parancsot hajt végre. Ebben a példában zárja be a hálózaton keresztül megnyitott összes fájlt.

A rendszer rendszerezéséhez elhelyezzük a szerveren például a c:\scripts\ mappában a Server.cmd és az Action.cmd kötegfájlokat.

4. lista – Server.cmd (Windows Batch)

set trigger=c:\commandShare\trigger.txt
set action=c:\scripts\action.cmd
állítsa be a log=c:\scripts\log.txt fájlt
:Rajt
ha létezik %trigger% start %action% & echo %time% %date%>>%log% & del %trigger%
sleep.exe 5
kezdeni kell

5. lista – Action.cmd (Windows köteg)

/f "skip=4 tokens=1" %%a in ('net files') do net files %%a /close
kijárat

A Server.cmd jelre vár a felhasználótól (fájl létrehozása a bizonyos hely), és miután megkapta, futtassa a fájlt parancsokkal - Action.cmd. Természetesen a felhasználóknak nem szabad hozzáférniük ehhez a mappához. A Server.cmd automatikus indítása a számítógép indításakor egyszerűen létrehozható az ütemezőben:

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

A /ru paraméter után megjelenik az a fiók, amelyen a szkript lefut (esetünkben rendszergazdai jogosultságokkal rendelkezik a szerveren), mivel a jelszó nincs megadva az /rp paraméter után - ezt kérni fogja a program létrehozásakor. feladat. A /sc opció lehetővé teszi annak megadását, hogy a szkript mikor fusson, esetünkben amikor a számítógép be van kapcsolva. Nos, a / tn és / tr lehetővé teszi a feladat és a végrehajtható fájl nevének megadását.

Most, hogy a felhasználó jelezze a szkriptet, létrehozunk egy c:\commandShare mappát, és elérhetővé tesszük a hálózaton. Csak a parancsot futtató felhasználóknak kell írási hozzáféréssel rendelkezniük ehhez a mappához.

Ezt követően elég lesz a Run.cmd fájlt a felhasználó asztalára tenni.

6. lista – Run.cmd (Windows Batch)

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

Amikor végrehajtja, a felhasználó nevében létrejön a \\server\commandShare\trigger.txt fájl. A Server.cmd szkript, miután észrevette, lefuttatja az Action.cmd fájlt a jogosultságaival, hozzáad egy bejegyzést a c:\scripts\log.txt fájlhoz az aktuális időpontról, majd törli a trigger.txt fájlt, hogy ne a parancs végrehajtásához a következő felhasználói jelig.

A Server.cmd parancsfájl a Sleep.exe segédprogramot használja a parancsfájl végrehajtásának szüneteltetésére egy másodpercben megadott időtartamra. Az operációs rendszer nem tartalmazza, de átvehető a Resource Kit Toolsból (lásd a hivatkozásokat), és egyszerűen átmásolható bármely számítógépre.