Létrehozása távoli munkamenetek PowerShell 2

Rájöttem, hogy a PowerShell alkotók némileg lusta, és ez jó. Nem akarták, hogy kódolni -ComputerName paraméter minden csapat, így létrehozott egy közös rendszer úgynevezett „Távoli elérés”. Lényegében, a rendszer aktiválja az parancs futtatása a távoli számítógépen. Akkor is futhat különböző parancsokat, hogy létezik a távoli számítógépen, de nem a tiéd. Ez azt jelenti, hogy nem kell telepíteni minden csapat folyamatosan a munkaállomáson. Ez a távoli rendszer nagyon hatékony és ad számos érdekes adminisztratív képességek

ARUBA INSTANT WI-FI: egyszerű, hatékony, olcsó

Amikor elkezdtem használni PowerShell, kaptam elragadta csapat Get-Service, és észrevette, hogy van egy paramétere -ComputerName. Ez azt jelenti, hogy tud-e csatlakozni a szolgáltatáshoz, és a többi számítógép? Miután egy sor kísérletet rájöttem, hogy ez az, amit mond. Lettem érdekelt kezdett nézni más lehetőségek -ComputerName csapatok. És csalódott, amikor kiderült, hogy csak néhányat említsünk.

PowerShell biztosít kétféle Remoting: Remoting 1-1 (1: 1), és a Remoting egytől néhány (1: n). Mielőtt beszélünk róluk, szeretnék megmagyarázni néhány az alapokat.

Alapjai Távoli elérés a PowerShell

Minden PowerShell parancsok, hogy a tárgyak a kibocsátás. Amikor futtatja a parancsot távolról, szükség van a kimenő adatok helyezték olyan formában, hogy könnyen át a hálózaton keresztül HTTP vagy HTTPS. Tehát PowerShell automatikusan átalakítja a kimeneti objektumokat XML fájlokat a hálózaton keresztül küldött. Érjék el a számítógépet, ők alakítják vissza objektumokat, amely képes futtatni PowerShell. Azonban ezek alakítja vissza a tárgyak valójában pillanatfelvételek. Nem tudják megújítani magukat percenként. Így, ha kell, hogy elérje a tárgyakat, amelyek olyan folyamatok, amelyek futnak a távoli számítógépen, akkor az eredmény nem lesz megfelelő csak egy bizonyos ideig, amely alatt ezeket a tárgyakat hoztunk létre. Értékek, mint a memóriahasználat és a processzor nem fog változni. Sőt, akkor nem kapja vissza az átalakított tárgyak semmit. Például, nem lehet rendelni a projekt leállítani magát. Ez egy alapvető korlátozása távoli kölcsönhatás, de ez nem akadályozza meg a munka, és teljesíteni érdekes feladatokat.

Van néhány alapvető követelmények használnak távirányítási rendszer.

  • Mivel a számítógép (vagy más néven Helyi számítógép), és az egyik ilyen, hogy szeretne küldeni egy parancs (más néven távoli számítógép), akkor működik a Windows PowerShell 2.0? A Windows XP egy régebbi Windows operációs rendszerhez, amely telepíthető PowerShell 2.0. Így a régi verzió is részt venni egy távoli munkamenet.
  • Ideális esetben a helyi és a távoli számítógépek tagjának kell lennie ugyanabban a tartományban vagy megbízható / bízva területeken. A Távoli elérés rendszer működhet kívül a tartomány, de nehéz, és itt nem fogok beszélni róla. Ha szeretne többet megtudni a forgatókönyv, olvassa el a PowerShell Súgó részben arra utal, hogy a Remote_Troubleshooting.

Áttekintés WinRM

Most jön a WinRM, mert be kell állítani a konfiguráció a szolgáltatás fut távirányítási. Még egyszer, akkor csak be kell adni a beállításokat Távoli elérés és WinRM PowerShell egy távoli számítógépen. A legtöbb környezetben, ahol dolgoztam, adminisztrátorok aktivált távirányítási rendszer minden számítógépen fut változata XP vagy újabb. Ez lehetővé teszi, hogy behatoljon a asztali és hordozható számítógépekre észrevétlen, ami nagyon hasznos lehet (ez azt jelenti, hogy a felhasználók az ilyen számítógépek nem fogják tudni, mit csinál).

A legegyszerűbb módja annak, hogy mindkét célt is PowerShell a Futtatás rendszergazdaként és végre engedélyezése-PSRemoting csapat. Láthatjuk a kalauz a másik csapat, amely az úgynevezett Set-WSManQuickConfig. Nincs szükség a parancs futtatásához. Ez lehetővé teszi az Ön számára engedélyezése-PSRemoting, és azt is ellátja néhány lépést, amelyek szükségesek, hogy létrehoz egy távoli kölcsönhatás és a munka. Lényegében engedélyezése-PSRemoting parancs elindítja a WinRM szolgáltatás, meghatározza annak a telepítést elindítani automatikusan regisztrálja PowerShell mint végpontot, és még meg kivételt a Windows tűzfal lehetővé teszi a bejövő forgalmat WinRM.

WinRM 2.0 (ami vonatkozik PowerShell) alapértelmezés szerint a TCP port 5985 a HTTP és a HTTPS-port 5986. Ez biztosítja, hogy WinRM nem ütközik a helyileg telepített Web-kiszolgálók a portokat figyelik 80. és 443. megadhatja a WinRM konfiguráció használható alternatív port, de én nem ajánlom. Ate hagyja ezeket a portokat, minden távoli PowerShell hozzáférést parancs működik rendesen. Ha megváltoztatja a portok, akkor mindig megadni egy másik porthoz, amikor fut Remote Access parancsot. Ez azt jelenti, hogy akkor már nem kell nyomtatni. Ha feltétlenül szükséges változtatni a port, akkor ezt a parancsot:

Számjegy jelzi a 1234 port, amit akar. Itt ez a parancs van írva néhány sort, de meg kell adni, hogy az egy sorban. Ugyanez vonatkozik minden más parancsok leírt a cikkben. Ha szeretné használni a HTTPS http helyett, akkor módosíthatja ezt a parancsot a új HTTPS port. Be kell vallanom, hogy van egy módja annak, hogy kérjen WinRM konfiguráció a helyi számítógépen használható alternatívát portok alapértelmezés szerint. Így, ha nem kell állandóan meghatározza az alternatív port futtatásakor távoli hozzáférést parancsot. De nézzük működik az alapértelmezett beállításokkal megadott Microsoft.

Ha ásni a GPO beállításokat a Remote Shell, akkor észrevehetjük, hogy megadhatja például, milyen hosszú a távoli munkamenet inaktív marad, mielőtt a szerver megszakítja azt; mint a sok egyidejű felhasználó hozzáférhet egy távoli szerverre egy időben; mennyi memóriát és minden folyamat használhatja a távoli shell; a maximális számú távoli shell, amelyet a felhasználók egy időben nyitva. Ezek a beállítások segítenek abban, hogy a szerverek nem túlterhelt feledékeny rendszergazdák. Azonban alapértelmezés szerint akkor kell, hogy legyen, hogy a rendszergazda használja Távoli elérés, így nem kell aggódnia, a hétköznapi felhasználók számára, eltömítheti a szervereket.

Távoli elérés 1: 1

Használata Távoli elérés 1: 1, akkor lényegében a hozzáférést egy parancssorba a távoli számítógépen. Olyan parancsokat, amelyek adsz, fuss közvetlenül a távoli számítógépen, és látod az eredményt a Parancssor ablakot. Ez részben hasonlít a Távoli asztali kapcsolat, kivéve, hogy akkor csak PowerShell parancssori környezetben. PowerShell Távoli elérés rendszer része a szükséges erőforrások Remote Desktop, így sokkal kisebb hatással van a szerverrel.

A telepítéshez a 1: 1 kapcsolat egy távoli számítógéppel, az úgynevezett szerver-R2, meg kell futtatni

Feltételezve, hogy aktiválta a rendszert távoli kommunikációt egy távoli eszköz, a számítógép ugyanabban a tartományban, és a hálózat megfelelően működik, akkor kap a kívánt terméket. PowerShell segítségével tudja, hogy elérte a célját megváltoztatja a parancssort

Része a [szerver-r2] tájékoztatja arról, hogy minden, amit csinál történik Server R2. Ezután futtatható bármilyen parancsot, hogy mit akar. Akkor is importálja az összes modult és Bővítményeket PowerShell (PSSnapins), amelyet található egy távoli számítógépen.

Még a felbontás ugyanaz marad. Ön példányát PowerShell fog futni ugyanolyan biztonsági tokent, amellyel fut. PowerShell ezt úgy éri el a Kerberos, ezért nem adja át a felhasználói nevét és jelszavát a hálózaton keresztül. Minden parancs, hogy futtat egy távoli számítógépen futtatható a hitelesítő adatok, így mindössze ahhoz, amire engedélyt kapott, akkor lesz képes megtenni. Ez hasonló a regisztrációs közvetlenül a számítógép konzolját, és egy másolatot a PowerShell a számítógépen. Ez majdnem igaz. Íme néhány különbség.

  • Ha van egy PowerShell script a profil a távoli gépen, akkor nem fog futni, ha csatlakozunk használ dial-up rendszer. Egyszerűen fogalmazva, a profilok egy csomag parancsok futnak minden alkalommal automatikusan megnyit egy parancssor ablakot. Ezeket használják automatikus betöltése bővítmények, modulok és hasonlók.
  • Ön legfeljebb politika végrehajtási politika a távoli számítógépen. Például a házirend be van állítva a számítógépen RemoteSigned így futni előjel nélküli helyi szkripteket. Ha a politika a távoli számítógép beállítása Korlátozott (alapértelmezett beállítás), akkor nem teszi lehetővé olyan szkriptek futtatására kölcsönhatásba távolról.

Sok PowerShell parancsok párokba: az egyik csinál valamit, a másik - a fordítottja. A mi esetünkben az Enter-PSSession összeköti, hogy a távoli számítógép és Kilépés-PSSession lezárja a kapcsolatot. Exit-PSSession nem kell semmilyen paramétert. Elindítása után a távoli kapcsolat lezárul, és egy meghívót a Parancssor ablak visszatér a normál nézetbe. Mi van, ha elfelejti futtatni Kilépés PSSession? Ne aggódj. PowerShell WinRM képes kitalálni, hogy mit tett, és ha szükséges, közel a távoli kapcsolatot.

Azt akarom, hogy egy tanácsot. Amikor csatlakozik egy távoli számítógéphez, nem fut rajta az Enter-PSSession hogy mindaddig, amíg nincs teljesen tisztában, hogy mit csinálsz. Például, ha dolgozik ComputerA. Csatlakozik egy szerver R2. A PowerShell prompt, akkor fennáll

Most Server-R2 tartalmaz egy nyitott kapcsolat Server-DC4. Ez létrehoz egy „Távoli elérés lánc”, amely nehéz nyomon követni. Ezen túlmenően, a kiszolgálók túl vannak terhelve feleslegesen. Lehetnek olyan esetek, amikor szükség lesz rá (pl Server-DC4 tűzfal mögött, és akkor nem kap közvetlen hozzáférést biztosít, így a közvetítő kell használni Server-R2). Ugyanakkor az általános szabály a következő: megpróbálják elkerülni távirányítási lánc.

Remoting 1: n

Az egyik legérdekesebb dolog a PowerShell - van Remoting 1: n. Ez lehetővé teszi, hogy parancsokat küldjünk több távoli számítógép egyszerre - egy teljes körű elosztott számítási. Minden számítógép egyenként futtatni a parancsot, és elküldjük az eredményeket. Mindent elkövetnek segítségével Invoke-Command parancsot a következő formában:

A csapat külső nadrágtartó küldött mindhárom távoli számítógépen. Alapértelmezésben PowerShell lehet beszélni 32 számítógépet egyszerre. Ha több mint 32 számítógépet, akkor a várakozási sorba. Aztán, amikor a számítógép leállításakor, a csapat végrehajtja a következő. Ha van egy nagyon nagy sebességű hálózat és nagyteljesítményű számítógépek, növelheti a számot paraméter ThrottleLimit csapat. Olvassa el, hogyan kell használni ezt a paramétert a Invoke-parancsot, akkor a Segítség oldalra.

Az egyetlen paraméter akkor nem fogja látni a Súgó oldalt a parancs, - beállítási parancs. Úgy, ahogy azt már kimutatták, tökéletesen működik. Command paraméter egy alias, vagy egy rövid nevet a paraméter ScriptBlock, amely szerepel a Súgó oldalt. Számomra könnyebb a Command, úgyhogy inkább csak használni helyette ScriptBlock, de ugyanúgy működnek.

Ha elolvasta a Súgó oldalt a Invoke-irányító óvatosan, akkor is észre a lehetőséget, amely lehetővé teszi, hogy meghatározza egy script fájlt, nem parancs. Filepath paraméter lehetővé teszi, hogy küldje el a forgatókönyvet, hogy a távoli számítógépek; Ez azt jelenti, hogy lehet automatizálni egyes kihívások, és minden számítógép teljesítse részét a munka.

Most összpontosítani számítógép neve paramétert. A példában a Invoke-irányító kód Volt egy listát a számítógép nevek, vesszővel elválasztva. Ha van egy csomó számítógépek, akkor nem akarja kinyomtatni a nevüket minden alkalommal csatlakozik hozzájuk. Ehelyett, akkor hozzon létre egy szöveges fájlt, ami egy név ugyanabban a sorban a számítógép anélkül, hogy vesszőt, idézőjelet, vagy valami más. Például, ha a szöveges fájl neve webservers.txt, akkor használja a következő kódot:

Zárójelben erő PowerShell, hogy végre első parancsot Get-Content - ez hasonló ahhoz, ahogy a zárójelben a matematika. Ezután az eredmények Get-Content fektetett -ComputerName opciót.

Arra is lehetőség van kérelem a számítógép nevét az Active Directory, de ez nehezebb. Ahhoz, hogy megtalálja a számítógépet, akkor használhatja a Get-ADComputer, de nem írja be ezt a parancsot zárójelben, mint mi a Get-Content. Miért nem? Get-Content kiad egy egyszerű szöveget, míg a Get-ADComputer termel „számítógép” típusú tárgyakat. -ComputerName paraméter számít, egy string. Ha ő volt, hogy megkapja tárgyak „számítógép”, akkor nem tudom, mit kell csinálni velük. Ezért, ha szeretné használni a Get-ADComputer, meg kell, hogy az érték a neve tulajdonát számítógép tárgyakat. Íme:

Zárójelben számítógép tárgyak kerülnek átadásra Select-Object parancsot, és kiterjeszthetik paraméter meghatározásához használt neve tulajdonság a számítógép objektumot. Az eredmény a zárójelben - egy sor nevét a számítógép, nem a számítógép tárgyakat. Számítógépes nevek - ez az, amire szüksége van paraméter -Számítógép neve.

feltölteni parancsokat a könyvtár szolgáltatás a shell, így lehet őket használni.

Van valami mást!

Mindezek a példák kerültek bemutatásra a szakértői ülések távirányítási. Ha megy, hogy helyreállítsa a kapcsolatot ugyanazon a számítógépen (vagy számítógép) többször rövid ideig, akkor létrehozhat egy újrafelhasználható, állandó ülésén. Ez nagyon hasznos, ha a kapcsolat megköveteli alternatív adatait, port szám nem a hiba, vagy bármi más, ami megköveteli a további beállításokat.

Ahhoz, hogy hozzon létre egy állandó munkamenet, akkor kell használni a New-PSSession parancsot, majd mentse őket egy változó könnyű hozzáférést. Például, a következő kód létrehoz egy Távoli elérés munkamenet három számítógép és tárolja azokat a $ munkamenet:

Távoli elérés ülés automatikusan záródik, amikor bezárja a parancssorból, de ez alkalommal, akkor egy kis memóriát és CPU időt a helyi és távoli rendszereken. Annak érdekében, hogy pontosan zárni őket, akkor a Remove-PSSession:

Mikor kell újra megnyitja a munkamenet, akkor használja a következő parancsot hívja meg-parancs:

Vagy használhatja az Enter-PSSession:

Megjegyezzük, hogy a kód megadása-PSSession Távoli elérés csak egy munkamenet újra kinyitják. Változó index szerint 1 PowerShell, ezért újra meg kell nyitni a munkamenet egy számítógépes nevű Two (index fut nulla).

Amint látjuk, az előnyök PowerShell Remoting nagyon. Ha használja, látni fogja, hogy mennyibe fog bővíteni a látókörét a te dolgod.

Ossza meg képeit barátaival és kollégáival

Kapcsolódó cikkek