Geek Iskola: megtanulják használni Remoting a PowerShell

Tartalomjegyzék:

Geek Iskola: megtanulják használni Remoting a PowerShell
Geek Iskola: megtanulják használni Remoting a PowerShell

Videó: Geek Iskola: megtanulják használni Remoting a PowerShell

Videó: Geek Iskola: megtanulják használni Remoting a PowerShell
Videó: Why does Google index blogs faster than other sites? 2024, November
Anonim
Az egyik legjobb tulajdonság, amellyel a PowerShell kínálja a kiszolgálók távoli felügyeletét. Ez lehetővé teszi, hogy egyszerre egy csomó számot is kezelhess.
Az egyik legjobb tulajdonság, amellyel a PowerShell kínálja a kiszolgálók távoli felügyeletét. Ez lehetővé teszi, hogy egyszerre egy csomó számot is kezelhess.

Olvassa el a sorozatban szereplő cikkeket:

  • További információ a Windows PowerShell automatizálásáról
  • A PowerShell-ben található cmdletek használatának elsajátítása
  • A PowerShell objektumainak használata
  • Tanulási formázás, szűrés és összehasonlítás a PowerShell-ben

És egész héten maradjon a sorozatban.

Mi a Remoting?

A szerverek tömeges kezelése fárasztó lehet, és ha már 50 webszerverrel kellett volna IIS konfigurációs változást készíteni, akkor tudni fogod, hogy mit értek. Ezek olyan helyzetek, amikor a PowerShell Remoting és a nyelv szkriptkészségei mentésre kerülnek. A HTTP vagy a biztonságosabb HTTPS használatával a PowerShell Remoting lehetővé teszi, hogy parancsokat küldjön egy távoli gépre a hálózaton. Ezután a gép futtatja a parancsokat, és visszaküldi a kimenetet, amely viszont megjelenik a képernyőn.

Get Technical

A PowerShell Remoting központi eleme egyetlen Windows szolgáltatás, a Windows Remote Management vagy a WinRM szolgáltatás, amint ismertté vált. A WinRM használatával egy vagy több munkamenet-konfigurációt (végpontokként is) állíthat be, amelyek alapvetően olyan fájlok, amelyek információkat tartalmaznak a távoli PowerShell példányhoz csatlakozó személy által nyújtott tapasztalatokról. Pontosabban, a munkamenet-konfigurációs fájlok segítségével meghatározhatja, hogy ki és mikor nem tud kapcsolódni a példányhoz, milyen parancsmagokat és parancsfájlokat futtathat, valamint milyen biztonsági környezetben kell a munkamenetet futtatni. A WinRM szolgáltatás használatával beállíthatja a "hallgatókat" is, akik hallgatják a bejövő PowerShell kéréseket. Ezek a "hallgatók" HTTP vagy HTTPS protokollok lehetnek, és egyetlen gépre csatlakozhatnak. Ha egy PowerShell kapcsolatot megnyit egy másik gépnek (technikailag ez a HTTP-alapú WS-MAN protokollon keresztül történik), akkor a kapcsolat e "hallgatók" egyikéhez kötődik. A "hallgatók" feladata, hogy a forgalmat a megfelelő munkamenet-konfigurációs fájlhoz társított alkalmazásnak küldje; az alkalmazás (általában PowerShell, de lehet, hogy más hosting alkalmazások, ha akarod), akkor futtatja a parancsot, és visszaadja az eredményeket a "hallgató" a hálózaton keresztül, és vissza a gépre.

Mutassa meg, hogyan

Az első dolog, amit meg kell tennie, engedélyezze a Remoting-ot a gépen, ahová csatlakozni szeretne. Ez a következőképpen futtatható:

Enable-PSRemoting

Akkor minden esetben fel kell válaszolnia az igent. Az Enable-PSRemoting futtatásakor néhány módosítás történik a számítógépen:
Akkor minden esetben fel kell válaszolnia az igent. Az Enable-PSRemoting futtatásakor néhány módosítás történik a számítógépen:
  • A WinRM szolgáltatás elindul.
  • A WinRM szolgáltatás a kézi indítási módtól az Automatikusig változik.
  • Olyan HTTP-figyelőt hoz létre, amely minden hálózati kártyához kapcsolódik.
  • Ezenkívül létrehoz egy bejövő tűzfal kivételt a WS-MAN protokoll számára.
  • Egyes alapértelmezett munkamenetet hoztak létre

Ha Windows 7 operációs rendszert futtat, és a hálózati kártya helyszíne Public, akkor a PowerShell Remoting sikertelen lesz. A javításhoz egyszerűen csak a Home vagy a Work hálózatra kell váltania. Alternatív megoldásként a hálózati ellenőrzést kihagyhatja az alábbiak szerint:

Enable-PSRemoting –SkipNetworkProfileCheck

Javasoljuk azonban, hogy inkább módosítsa hálózati helyét.
Javasoljuk azonban, hogy inkább módosítsa hálózati helyét.

A PowerShell segítségével kétféle módon lehet csatlakozni egy másik géphez. Van egy egy-egy módszer, amely nagyon hasonlít az SSH használatára, és ott van az egyik a sok módszer.

PowerShell munkamenet használata

A PowerShell segítségével a távoli géphez történő csatlakozás első módja valamilyen PowerShell Session nevű eszköz használata. A munkamenet egyszerűen lehetővé teszi a parancsok távoli gépen történő futtatását interaktív módon ugyanúgy, mint a saját gépén. Egy munkamenet megnyitásához egyszerűen írja be a következőket:

Enter-PSSession –ComputerName “Darlah”

Image
Image

A prompt kap egy előtagot, amely jelzi a gépet, hogy a cmdleteket futtatja.

Innen igazán kezelheti a kérdést, mintha a távoli gépen ülne. Ha például a C: meghajtó összes fájlját szeretné látni, egyszerűen elvégezheti a következőket:
Innen igazán kezelheti a kérdést, mintha a távoli gépen ülne. Ha például a C: meghajtó összes fájlját szeretné látni, egyszerűen elvégezheti a következőket:

Get-ChildItem –Path C:

Ha Linux-háttérből származik, akkor gondolhat arra, hogy ezt az egy-egy távoli módszert használja az SSH PowerShell alternatívájaként.
Ha Linux-háttérből származik, akkor gondolhat arra, hogy ezt az egy-egy távoli módszert használja az SSH PowerShell alternatívájaként.

Az Invoke-Command használata

A másik módja a PowerShell egy távoli gépen történő használata az Invoke-Command segítségével. Az Invoke-Command használatának az az előnye, hogy ugyanazt a parancsot egyszerre több gépen is végrehajthatja. Amint el lehet képzelni, ez különösen akkor hasznos, ha valami olyasmit szeretne tenni, mint a szerverekről eseménynapló. Az Invoke-Command a következő szintaxist követi:

Invoke-Command -ComputerName Darlah,localhost -ScriptBlock {Get-EventLog Application -Newest 2}

Mivel a parancsot párhuzamosan hajtja végre az összes gépen, szükség lesz valamilyen módon arra, hogy megnézzük, melyik PC-t adta meg. Ezt a PSComputerName tulajdonság megtekintésével teheti meg.
Mivel a parancsot párhuzamosan hajtja végre az összes gépen, szükség lesz valamilyen módon arra, hogy megnézzük, melyik PC-t adta meg. Ezt a PSComputerName tulajdonság megtekintésével teheti meg.
Ha az Invoke-Command-ot használja, akkor már nincs olyan objektum, amelyet a Pipeline-ban elvárhat. Látja, hogy ahhoz, hogy a PowerShell visszaszerezhesse a távoli gépről az adatokat a gépére, szükségük van valamilyen módon arra, hogy képviselje azokat a tárgyakat, amelyeket a távoli gépen futott. Manapság úgy tűnik, hogy a hierarchikus adatstruktúra képviseletének választott módja az XML használata, ami azt jelenti, hogy amikor parancsot ad ki az Invoke-Command használatával, az eredményeket először XML-be sorba rendezzük, mielőtt visszaállítanánk a készülékre.Miután visszajutnak a gépedre, egy objektumba visszavezetik őket; az a dolog, hogy amikor deserializációra kerülnek, minden módszer, kivéve a ToString () metódust, eltávolítja az objektumtól.
Ha az Invoke-Command-ot használja, akkor már nincs olyan objektum, amelyet a Pipeline-ban elvárhat. Látja, hogy ahhoz, hogy a PowerShell visszaszerezhesse a távoli gépről az adatokat a gépére, szükségük van valamilyen módon arra, hogy képviselje azokat a tárgyakat, amelyeket a távoli gépen futott. Manapság úgy tűnik, hogy a hierarchikus adatstruktúra képviseletének választott módja az XML használata, ami azt jelenti, hogy amikor parancsot ad ki az Invoke-Command használatával, az eredményeket először XML-be sorba rendezzük, mielőtt visszaállítanánk a készülékre.Miután visszajutnak a gépedre, egy objektumba visszavezetik őket; az a dolog, hogy amikor deserializációra kerülnek, minden módszer, kivéve a ToString () metódust, eltávolítja az objektumtól.
Image
Image

Megjegyzés: Van néhány kivétel ennek a szabálynak, például a legtöbb primitív típus, mint az egész szám, el lehet távolítani a metódusoktól. Van egy olyan folyamat is, amelyet Rehydration-nek hívnak, ahol bizonyos módszereket vissza lehet adni a deserializált objektumokhoz. Szóval légy óvatos és emlékezz rá, hogy a Get-Member a barátod.

Házi feladat

Olvassa el a PowerShell Remoting ebook titkait Don Jones-től.

Ajánlott: