Geek iskola Ismerje meg a Remoting használatát a PowerShell-ben
A PowerShell kínálatának egyik legjobb tulajdonsága a kiszolgálók távoli kezelése. Azt is lehetővé teszi, hogy egy csomó darabot egyszerre is kezelhessen.
Ügyeljen arra, hogy olvassa el a sorozat korábbi cikkeit:
- Ismerje meg, hogyan kell automatizálni a Windowsot a PowerShell segítségével
- Tanulj meg a Cmdlet használatát a PowerShell-ben
- Tanulj meg, hogyan kell használni az objektumokat a PowerShell-ben
- Tanulási formázás, szűrés és összehasonlítás a PowerShell-ben
És hetekig tartsd a többi sorozatot.
Mi a Remoting?
A kiszolgálók tömeges kezelése unalmas lehet, és ha korábban már 50 webszerveren kellett volna IIS konfigurációt változtatnia, akkor tudni fogja, hogy mit értem. Ezek azok a helyzetek, amikor a PowerShell Remoting és a nyelvi szkriptek képesek megmenteni. A HTTP vagy a biztonságosabb HTTPS használatával a PowerShell Remoting lehetővé teszi parancsok küldését egy távoli gépre. A gép ezután futtatja a parancsokat, és elküldi a kimenetet, ami viszont megjelenik a képernyőn.
Get Technikai
A PowerShell Remoting középpontjában egyetlen Windows-szolgáltatás, a Windows Távoli menedzsment vagy a WinRM-szolgáltatás áll, amint az ismert. A WinRM használatával beállíthat egy vagy több munkamenet-konfigurációt (más néven végpontokat), amelyek alapvetően olyan fájlok, amelyek információkat tartalmaznak a távoli PowerShell példányhoz csatlakozó személynek. Pontosabban, a munkamenet konfigurációs fájljaival meghatározhatja, hogy ki és ki nem tud csatlakozni a példányhoz, milyen cmdleteket és parancsfájlokat futtathat, valamint hogy milyen biztonsági környezetben kell futnia a munkamenet alatt. A WinRM szolgáltatás használatával „hallgatókat” is beállíthat, amelyek meghallgatják a beérkező PowerShell kéréseket. Ezek a „hallgatók” lehetnek HTTP vagy HTTPS-ek, és egyetlen IP-címhez köthetők a készüléken. Amikor megnyit egy PowerShell kapcsolatot egy másik géphez (technikailag ez a WS-MAN protokoll használatával történik, amely a HTTP-n alapul), a kapcsolat ezekhez a „hallgatókhoz” kötődik. A „hallgatók” ezután felelősek a forgalomnak a megfelelő munkamenet-konfigurációs fájlhoz tartozó alkalmazáshoz való küldéséért; az alkalmazás (rendszerint PowerShell, de ha van ilyen, akkor más hosting alkalmazások is futhatnak), majd futtatja a parancsot, és az eredményeket a „hallgató” -on keresztül továbbítja a hálózaton keresztül és vissza a gépére.
Mutassa meg, hogyan
Az első dolog, amit meg kell tennie, engedélyezze a Remoting alkalmazást azon a gépen, amelyhez csatlakozni szeretne. Ezt a következő műveletek végrehajtásával teheti meg:
Engedélyezze-PSRemoting
Ezt követően minden válaszra igen. 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ás üzemmódból Automatikus értékre változik.
- Olyan HTTP-hallgatót hoz létre, amely minden hálózati kártyához kapcsolódik.
- Szintén létrehoz egy bejövő tűzfal kivételt a WS-MAN protokollhoz.
- Néhány alapértelmezett munkamenet-konfiguráció jön létre
Ha Windows 7 rendszert futtat, és a hálózati kártya helyzete Nyilvános, akkor a PowerShell Remoting engedélyezése sikertelen lesz. A javításhoz egyszerűen váltson otthoni vagy munkahelyi hálózatra. Alternatív megoldásként kihagyhatja a hálózati ellenőrzést a következőképpen:
Engedélyezés-PSRemoting -SkipNetworkProfileCheck
Javasoljuk azonban, hogy inkább a hálózati helyét változtassa meg.
Kétféleképpen csatlakozhat egy másik géphez a PowerShell segítségével. Az egyik az egyik módszer, ami nagyon hasonlít az SSH használatához, majd az egyik a sok módszerhez.
PowerShell munkamenet használata
A PowerShell használatával a távoli géphez való csatlakozás első módja a PowerShell Session néven ismert. Egyszerűen egy ülés lehetővé teszi, hogy a távoli gépen futó parancsokat interaktív módon futtasson, hasonlóan a saját gépére. A munkamenet megnyitásához egyszerűen írja be a következőt:
Enter-PSSession-Számítógépnév „Darlah”
A kérés egy előtagot fog kapni, amely azt jelzi, hogy a gép a cmdleteket ellenzi.
Innen valóban úgy kezelheti a kérést, mintha a távoli gépen ültél volna. Például, ha meg szeretné tekinteni az összes fájlt a C: \ t
Get-ChildItem-C út: \ t
Ha Linux hátteréből származik, úgy gondolja, hogy ezt az egy-egy módszert használja az SSH alternatívájaként történő eltávolításra..
Az Invoke-Command használata
A második módja, hogy a PowerShell-t egy távoli gépen használhatja, az Invoke-Command használata. Az Invoke-Command használatának előnye abban rejlik, hogy ugyanazon parancsot egyszerre több gépen is végrehajthatja. Elképzelhető, hogy ez különösen akkor hasznos, ha valami hasonló eseményt szeretne gyűjteni a szerverekről. Az Invoke-Command a következő szintaxist követi:
Invoke-Command-Számítógépnév Darlah, localhost -ScriptBlock Get-EventLog alkalmazás -Newest 2
Mivel a parancsot minden gépen párhuzamosan hajtják végre, valamilyen módon meg kell néznie, hogy melyik PC-t érte el. Ezt megteheti a PSComputerName tulajdonság megtekintésével.
Az Invoke-Command használatakor már nincsenek a csővezetékben várható objektumok. Úgy látja, hogy a PowerShell a távoli gépről az információt megkapja a gépére, valamilyen módon kell képviselnie azokat a tárgyakat, amelyeket a távoli gép kimenetein futó parancs ad meg. Napjainkban úgy tűnik, hogy a hierarchikus adatszerkezet kijelölésének módja az XML használata, ami azt jelenti, hogy ha Invoke-Command használatával parancsot ad ki, akkor az eredményeket először XML-be sorolják be, mielőtt visszaküldenék a készülékre. Miután visszatértek a géphez, visszavonják őket egy tárgyba; itt van az, hogy a deszerializáláskor minden olyan módszer, kivéve a ToString () metódust, hogy az objektumot levették tőle.
Megjegyzés: Van néhány kivétel ebből a szabályból, például a legtöbb primitív típus, mint például az egész számok, a módszerekkel deserializálhatók. Van egy olyan folyamat is, amelyet a Rehydration nevű eljárásnak nevezünk, ahol néhány módszer hozzáadható a deserializált objektumokhoz. Csak légy óvatos és ne feledje, hogy a Get-Member a barátod.
Házi feladat
- Olvassa el a PowerShell Remoting titkát a Don Jones által.