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
- 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
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”
A prompt kap egy előtagot, amely jelzi a gépet, hogy a cmdleteket futtatja.
Get-ChildItem –Path C:
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}
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.