„Powershell“ leidžiama naudoti nutolusiame kompiuteryje su tuščiu slaptažodžiu. „Powershell“ nuotoliniu būdu paleiskite programą. Valdymas „vienas prieš vieną“

Nuotolinis „PowerShell“ pagalbos palaikymas

Іsnuє chimalo darbo su nuotoliniais kompiuteriais metodai. Є Windows valdymo instrumentai (WMI), plačiai naudojami VBScript. Naudokite įvairias paslaugas, leidžiančias valdyti nuotoliniu būdu, įveskite Sysinternals. Naršykite daug „PowerShell“ cmdlet, kad nustatytumėte „Wiconn on“ parametrą ComputerName nuotoliniai kompiuteriai.

Zagalom metodai povno, bet odoje є jos minusai. Pirma, kitokia sintaksė, kurioje lengva pasiklysti. Kitu būdu deyaki liepia elgtis kitaip, priklausomai nuo to, ar vietoje jie toli smirda. Na, nareshti, bendravimui gali prireikti pridėti papildomų prievadų ant ugniasienės, o tai nėra gerai iš saugumo pusės.

„PowerShell“ nuotolinis valdymas virishuє daugiau problemų aprašymų. Vіn pagrindus Microsoft įdiegė Web Services for Management (WS-Management) protokolą ir ryšį su vicorist paslauga (WinRM). Ryšys tarp kompiuterių reikalingas naudojant HTTP (užrakinti) arba HTTPS. Visas srautas tarp dviejų kompiuterių yra užšifruotas taip pat, kaip ir protokolas (už mirktelėjimą, jei SSL laimi). Palaikomi keli autentifikavimo metodai, įskaitant NTLM ir Kerberos.

Vіdmіnu vіd utilіt, scho vikoristovuyut skirtingos programinės įrangos sąsajos, PS nuotolinio valdymo pratsyuє žingsnis po žingsnio: komandos, scho turi būti įvesta vietinis kompiuteris, perkeliami į nuotolinį kompiuterį ir patikrinami, tada rezultatas perkeliamas atgal. Visų komandų šukės skaičiuojamos vietoje, dėl apibendrinimo diskutuoti nereikia. Be to, PS Remoting reikalingas tik vienas atviras uostas prie ugniasienės.

Štai keletas būdų, kaip padėti „PowerShell Remoting“.

Valdymas „vienas prieš vieną“

Lengviausias būdas nuotolinė priežiūra— Interaktyviai atidarykite seansą ir visko reikia. Pavyzdžiui, pažiūrėkime seansą SRV4 kompiuteryje ir paleiskite jį iš naujo naujame tarnybos drauge:

Enter-PSSession -ComputerName SRV4
Paleisti iš naujo – paslauga – pavadinimo rinkinys

Stebimės paslauga ir uždarome seansą:

Get-Service -Name spooler
exit-PSSession

Interaktyvus darbas tinka sprendžiant nepatogias nuotolinio administravimo užduotis. Jei norite automatizuoti procesą, geriausia tai padaryti naudojant cmdlet Invoke-Command. Ašis, todėl su šia pagalba galite padaryti tą patį:

Invoke-Command -ScriptBlock (Restart-Service spooler) -ComputerName SRV4

Ši komanda atidaro nuotolinę seansą SRV4, nuskaito komandų bloką, -ScriptBlock parametro instrukcijas ir uždaro seansą. Ir verkšlenti fono režimas, pasirinktinai galite nurodyti parametrą AsJob .

Atminkite, kad tie, kurie praleido valandą dirbdami fone, „PowerShell“ rezultato nekeičia. Norėdami tai padaryti, galite tai padaryti naudodami cmdlet Receive-Job.

Norint pasirinkti ne kelias komandas, o scenarijų, Invoke-Command gali turėti parametrą -FilePath, kurį galima pakeisti į -ScriptBlock, kad būtų priskirtas scenarijus failui. Pavyzdžiui, sukūriau scenarijų, kuriame būtų rodomas „zupine“ paslaugų sąrašas ir paleistas nuotoliniame SRV4 įrenginyje:

Invoke-Command -FilePath .\script.ps1 -ComputerName SRV4

Valdymas „nuo vieno iki turtingo“

Dalį patvirtinimo būtina atlikti tuo pačiu metu kaip ir vienos užduoties patvirtinimą keliuose kompiuteriuose. Tai galite lengvai padaryti naudodami tą pačią Invoke-Command. Pavyzdžiui, kompiuterių pavadinimus galima tiesiog perduoti ištikus komai:

Invoke-Command -ScriptBlock (Restart-service spooler) -ComputerName SRV4,SRV5

Atkreipkite dėmesį:

$servers = @(″SRV1″,″SRV2″,″SRV3″)
Invoke-Command -ScriptBlock (Restart-Service spooler) -ComputerName $servers

Arba paimkite iš failo:

Invoke-Command -ScriptBlock (Restart-Service spooler) -ComputerName"
(Gauti turinį .\servers.txt)

Pastaba: Invoke-Command gali turėti ThrottleLimit parametrą, kuris yra tarp didžiausio kompiuterių skaičiaus, kurį galima paleisti per vieną valandą. Norėdami užrakinti šį parametrą, pridėkite 32. Jei reikia, galite jį pakeisti arba pakeisti, kad padidintumėte kompiuterio procesoriaus ir atminties apkrovą, todėl šią operaciją reikia atlikti labai atsargiai.

Seansai

Kas antrą „Invoke-Command“ seanso valandą sukuriama nauja sesija, kuriai reikia valandos ir išteklių. Norėdami pasiklysti, galime atidaryti vieną sesiją ir laimėti visas komandas. Pavyzdžiui, pridėkime prie SRV4 kompiuterio seansą pavadinimu SRV4 ir įveskime jį į $session, tada išsaugosime savo gamyklą (pavyzdžiui, gausiai kenčiančią spoolerį):

$sesija = Nauja-PSSesija -Kompiuterio pavadinimas SRV4 -Pavadinimas SRV4
Invoke-Command -ScriptBlock (Get-Service spooler | Stop-Service)"
-Sesija $sesija

Sesija bus aktyvi doti, doki nebus matoma iš PowerShell konsolės. Taip pat galite uždaryti sesiją – Atjungti-PSSession arba pašalinti – Pašalinti-PSSession.

Dabar „PowerShell 3.0“ pasirodė daugybė galimybių. Kaip ir anksčiau, kai išeisite iš seanso arba sesija buvo uždaryta, PS 3.0 pateks į stotį, kai sesija bus uždaryta. atjungtas. Galime atidaryti naują seansą bet kuriame kompiuteryje ar kitame kompiuteryje ir paleisti komandą tiesiogiai šioje įjungtoje sesijoje. Kaip užpakalis paleidžiamas kompiuterio SRV4 paslauga kitam draugui, praėjusio laiko garsas:

Invoke-Command -ScriptBlock (Start-Service spooler)".
-Kompiuterio pavadinimas SRV4 -Atjungtas

Kitas seansų įtraukimo variantas yra bandymų paleidimas pagal paros valandą. Pavyzdžiui, pažiūrėkime į „LongJob“ seansą SRV4 ir paleiskime ją darbo fone, nes joje rodomas paslaugų sąrašas 1 intervalo intervalu:

$sesija = Nauja-PSSesija - Kompiuterio pavadinimas SRV4 - Pavadinimas LongJob
Invoke-Command -Sesija $sesija -ScriptBlock`
(Get-Service | foreach ($_;miegas 60) ) -AsDarbas

Stebimės, kaip švenčiama sesijos uždarymo užduotis:

Gauti-darbas-pavadinti darbą2
Atjungti-PSSession $sesija

Demonstracija kitam kompiuteriui ir parodykite konsolę, prisijunkite prie LongJob seanso ir Receive-PSSession cmdlet pagalba bus paimtas užduoties rezultatas:

Connect-PSSession -Vardas LongJob -Kompiuterio pavadinimas SRV4
Gauti-PSSession-Vardas LongJob

Arba kita parinktis be aiškaus ryšio su pagalbos Connect-PSSession seansu:

$sesija = Gauti-PSSession - Vardas LongJob - Kompiuterio pavadinimas SRV4
$darbas = priėmimas-PSSession $seansas -OutTarget Job
Gauti-darbas $darbas

Pastaba: Kad rezultatas išliktų sistemoje, Receive-Job reikia susukti su parametru -Keep.

Netiesiogiai tolumoje keruvannya

Dar vienas dalykas, užbaigti nestandartinį nuotolinio keruvannya būdą - numanomą nuotolinį valdymą. Nekuriant nuotolinės sesijos galima vietoje paleisti cmdlet nuotoliniame kompiuteryje.

Pavyzdžiui, paimame tą pačią darbo vietą, be nuotolinio administravimo pagalbos. Sukuriame nuotolinę sesiją su SRV4 domeno valdikliu ir į seansą importuojame Active Directory modulį:

$sesija = New-PSSession -ComputerName SRV4
Invoke-Command (importavimo modulis ActiveDirectory) – seansas $sesija

Tada mes eksportuojame Active Directory cmdlet iš nuotolinės sesijos ir siunčiame jas į vietinį RemoteAD modulį:

Eksportuoti-PSSession -Seansas $sesija -Komandos pavadinimas *-AD* -Išvesties modulis RemoteAD`
- Leisti Clobber

Komanda yra sukurti naują PowerShell modulį aplanke WindowsPowerShell\Modules\RemoteAD. Parinktys bus tik cmdlet, kurių pavadinimai atitinka šabloną *-AD*. Kam pačios cmdlet nėra kopijuojamos į vietinį kompiuterį. Vietinis modulis pasitarnaus kaip tam tikra nuoroda, o pačios komandos bus paskelbtos nuotoliniame domeno valdiklyje.

Sukūrus modulį, sesiją galima uždaryti, jums jo nebereikės.

Importuokite naują modulį į srautinio perdavimo seansą (PS 3.0 galite praleisti šį skyrių):

Import-Module RemoteAD

O dabar pagarba – nuotolinio seanso su domeno valdikliu neatšaukiame, ištriname cmdlet. Nebūtina aiškiai pradėti šios sesijos – galite netiesiogiai, išbandę viconty nuotoliniame cmdlet:

Naujasis ADU naudotojas – BillGateso vardas – „Microsoft“ įmonė
Get-ADUser BillGates

Tokiu atveju bus patvirtintas nuotolinis ryšys su domeno valdikliu, po kurio komanda bus perduota į domeno valdiklį ir ten ji bus nutraukta. Įvedimo rezultatas bus serijinis XML formatu ir, jei reikia, perkeltas į vietinį kompiuterį, kuris bus deserializuotas į objektą, kuriam galėsite naudoti „PowerShell“.

Sesija bus aktyvi, neuždarykite konsolės ir neištrinkite RemoteAD modulio.

Netiesiogiai nuotolinis keruvannya leidžia dirbti su cmdlet nuotoliniame kompiuteryje, tai praktiškai tas pats, tarsi jis būtų įdiegtas vietiniame kompiuteryje. Kai jums reikia visų komandų, įsitikinkite, kad tai darote patogiai.

Pabaigoje pasakysiu ką Narazi„PowerShell Remoting“ yra pagrindinis „Windows“ operacinės sistemos nuotolinio nuskaitymo įrankis. „Windows“ administratoriui tiesiog būtina žinoti apie šią galimybę ir jas žinoti.

Straipsnyje paaiškinama tolimo ryšio su PowerShell 2.0 variantu tema. Prieš mus būtina paleisti paslaugą, kurios pagalba turime būti abipusio bendradarbiavimo atstumu.

Paleiskite „WinRm“ paslaugą
Norint nuotoliniu būdu suderinti „PowerShell 2.0“, „WinRM“ paslauga perjungiama, nes ji įdiegta už užrakto „Windows 7“ ir „Windows 2008 R2“. Ankstyvosiose operacinės sistemos versijose būtina įdiegti papildomai. Paslauga priskiriama įdiegti įrenginyje tą valandą, kai įdiegiama PowerShell 2.0. Norėdami perjungti į WinRM, paleiskite „PowerShell 2.0“ konsolę ir įveskite šią komandą:
Get-Service WinRm
Rezultatas atrodo taip:

Būsenos pavadinimas DisplayName ------ ---- ----------- Sustabdytas winrm Windows nuotolinis valdymas (WS-Manag...

Yak bachimo - paslauga yra, prote neveikia. Norėdami paleisti WinRm, turite paleisti šią komandą kaip administratorius iš PowerShell 2.0 konsolės:
Įjungti-PSRemoting
Paspauskite mygtuką „Y“, kad patvirtintumėte paslaugos pradžią. „WinRM“ paslauga dabar nustatyta kaip paleisties tipas „Automatinis“, taigi. nebus paleistas iš karto paleidus kompiuterį. Komanda Enable-PSRemoting ne tik paleidžia paslaugą, bet ir pakeičia paleidimo tipą, bet taip pat nustato tinkamą ugniasienę, kad būtų galima tinkamai veikti. „WinRm“ paslauga priima bet kokio IP adreso užklausas.

Reikalaujama visų prijungtų paslaugų teikėjų pavadinimų:
Gaukite-PSProvider
Yak bachimo, turime kitą tiekėją WSMan pavadinimu.
Patikimų mazgų paskyrimas

„PowerShell 2.0“ konsolėje paleiskite komandą administratoriaus teisėmis:

Nustatyti vieta - Kelias WSMan: Nustatyti vietą - Kelias localhost\client Get-ChildItem

Pastaba
Atkreipkite dėmesį, kad pirmosios komandos parametro reikšmė -Path baigiasi dviem žymekliu, nurodant teikėją.

Kompiuteryje, su kuriuo žinote, leidžiama dirbti, šalia nurodykite, kokiems serveriams leidžiama prisijungti prie mašinos. Šie serveriai atrodo kaip „patikimi universitetai“. Tokiu būdu, jei esate MyServer serveryje, tada pirmą kartą dirbdami su MyComputer kompiuteriu vadovaukitės patikimais mazgais (TrustedHosts). Toliau pateikiami nurodymai, kaip atpažinti patikimus mazgus laimėjus, kad kompiuteris neprisijungtų prie „Active Directory“ domeno. Jei kompiuteris turi patekti į „Active Directory“ domeno sandėlį, „TrustedHosts“ parametrus galima koreguoti naudojant grupės politiką.

Svarbu!
Žemiau parodyta komanda nėra praktiška, nes dabartinis katalogas neįdiegė WSMan:\localhost\client (div. Command wick, turime daugiau).

Nustatyti elementą „TrustedHosts“*

Galite paleisti komandą iš kito katalogo arba gali tekti nurodyti naują kelią į TrustedHosts:

Nustatyti elementą WSMan:\localhost\Client\TrustedHosts*

Patvirtinimo užklausoje paspauskite mygtuką „Y“.

Kad „PowerShell“ pakeistų nustatymus, kuriuos atlikome „TrustedHosts“ nustatymuose, turite iš naujo paleisti WSMan paslaugą. Kovoti už puolimo komandą:
Paleisti iš naujo – paslauga winrm

Panašus veiksmas gali būti vikonati z-pіd DOS. Vykdykite komandą winrm-?. Galite pateikti bendrą komentarą apie komandą. Norėdami tiksliau pažvelgti į TrustedHosts reikšmę, vykdykite komandą:

winrm gauti winrm/config/client

o norint nustatyti vertę - ši vikonaty:

winrm rinkinys winrm/config/client/ @(TrustedHosts="*")

Jei norite gauti daugiau komandų, TrustedHosts, kaip simbolio „*“ reikšmę, galite nurodyti konkrečių serverių pavadinimus. „TrustedHosts“ valdymas yra klasikinis būdas „Get“ ir „Nustatyti“ „PowerShell“ išjungimus ant nuorodos: galite įvesti „Get-Item“ ir „Set-Item“.
Nuotolinio „PowerShell 2.0“ seanso kūrimas ir užbaigimas
Toliau pateiktose komandose nustatykite „IPAddress“ pakeitimą į reikiamą IP adresą, o „FQDN“ – į visiškai kvalifikuotą domeno pavadinimą:

Enter-PSSession IP Address

Enter-PSSession FQDN

Norėdami baigti nuotolinį roboto seansą, vykdykite komandą:

Komandai Enter-PSSession reikia more.name.domain.name. Pavyzdžiui, MyServer.domain.local atveju paprastas MyServer įrašas neveiks, tačiau IP adreso pasirinkimas tokiose situacijose visada pasiteisins. Alternatyvus PSS sesijos metodas:

New-PSSession-computername testMachine2 Get-PSSession

Šios sesijos darbą galite užbaigti taip:

Get-PSSession | pašalinti-PSSession

Jei norite protestuoti tolumoje prieš robotą, jei neturite kitos mašinos, susikurkite savo kompiuterio „nuotolinį ryšį“ su savimi. Pavyzdžiui, jei jūsų mašina vadinasi MyMachine, pabandykite:

New-PSSession -kompiuterio pavadinimas MyMachine

Jums gali pasirodyti keista ir nelogiška, tačiau tokiu būdu vis tiek galite išbandyti nuotolinį darbą PowerShell 2.0.

Dirbkite nuotoliniu būdu „PowerShell 2.0“ seansuose
Užmezgę nuotolinį ryšį, galite tvarkyti komandų konvejerius, kurie juos paleidžia PowerShell 2.0 konsolėje, o jei tai padarysite, nuotoliniame kompiuteryje galite gauti smarvės, tačiau turėtumėte būti prie klaviatūros ir vesti komandas ten, o ne čia. Pavyzdžiui, paleiskite šią komandą ir pamatysite darbo rezultatą:

Nustatyti vietą c:\ | Get-childitem

Pagrindinė šios pradinės pagalbos užduotis yra padėti sukurti PowerShell 2.0 nuotolinio ryšio seansą ir parodyti, kaip jį uždaryti, tada turėsite tai padaryti patys, pvz., operacijas, negalite laukti nuotolinio ryšio pabaigos .

Pastaba
Jei jums įdomu, ar neturite nuotolinio ryšio seanso, pvz., komandos, protestuokite vietiniame kompiuteryje.

Kol jums nereikia nuotolinio ryšio, jis tiesiog suteikia galimybę laimėti „PowerShell 2.0“, skirtą „keruvane“, su kompiuteriais, prijungtais prie tinklo. Dabar galite pamatyti kitų mašinų scenarijus. „PowerShell 2.0“ turi daug cmdlet, skirtų „-computerName“ parametrui apkarpyti, tačiau ateityje jis leis jums laimėti komandas iš PSSession šeimos, taip pat iškviesti Invoke-Command (kad galėtumėte viską paleisti visą laiką). .

Sužinokite apie problemas, dėl kurių kaltas nuotolinio PowerShell 2.0 darbo procesas

Vienas tipiška problema– REMONTAS „Prieiga uždrausta“ (prieiga uždrausta).

Sprendimas:
Paleiskite PowerShell 2.0 kaip administratorių. Išbandykite abiejuose įrenginiuose (tame, prie kurio jungiatės, ir tame, prie kurio jungiatės), nustatykite „TrustedHosts“ reikšmę į * (z). Tik nepamirškite, kad ši parinktis leidžia prijungti garsą.
Nepamirškite iš naujo paleisti „WinRm“ paslaugos, kitaip negalėsite pakeisti „TrustedHosts“ į „TrustedHosts“. Norėdami iš naujo paleisti paslaugą, PowerShell 2.0 konsolėje paleiskite šią komandą: Restart-Service WinRm
Be to, būkite pagarbūs ir nepainiokite WSMan teikėjo pavadinimo su WinRm paslaugos pavadinimu.
Dar vienas nuostabus, bet kartais papildomas džiaugsmas: pabandykite pakartoti nuotolinio ryšio testą. Tai nuostabu, bet jūs negalite prašyti pirmojo pavyzdžio, bet galite prašyti kito ar trečio. Tobto. jums reikia pakartoti komandą: Enter-PSSession -computerName myOtherMachineName

Ugniasienė, PowerShell 2.0 ir „RPC serveris nepasiekiamas“ ( RPC serveris nepasiekiamas)
Fakhіvtsі z z bezpeka in zhahu pakelkite rankas tokio pasiūlymo metu, tačiau tuo metu, kai bus paskirta daugiau atleidimo, liepsiu įjungti abiejų kompiuterių ugniasienę. Jei viskas įjungta, vadinasi, gerai, vadinasi, reikia keisti 135 ir 445 prievadų nustatymus. Nustatyti, kad šie prievadai būtų įjungti ugniasienėse - įjungti PowerShell 2.0

P.S. Skaičiau, kad galima įjungti komandą Enable-PSRemoting automatiškai įvestas pakeisti ugniasienę, bet, mano galva, nepalikite jos taip.
Apie tuos, kaip dėl pagalbos grupės nuostatosįgalinkite užkardą sistemoje „Windows 8“, skaitykite.

Du trišakiai, suderinami su nuotoliniu „PowerShell 2.0“.
Atėjo laikas parodyti jums, kaip ištirti dvi nuotolinio darbo „PowerShell 2.0“ parinktis.
Pirmasis būdas yra vitonchenish variantas, kuriame sukuriamos cmdlet, sukuriančios stabilų kanalą į kitą mašiną. Tokių komandų pavadinimai pakeičiami žodžiu "PSSession" kaip pavadinimas (manau, kad cmdlet pavadinimai atitiks "Dieslovo-Name" taisyklę). Galite pašalinti šių cmdlet vertimą naudodami šią komandą:

Get-Command -daiktavardis PSSession

Kitas būdas taip pat yra kanoninė nuotolinio darbo „PowerShell 2.0“ forma. Tsey būdas tiesiog išplečiant vietines komandas, pridedant prie jų parametrą „-computerName“, kurio pagalba nurodoma, kad reikia išplėsti kompiuterį, kuriame būtina atlikti operaciją. Dėl to šios komandos bus vykdomos kitame masyve esančiame kompiuteryje:

Get-Process -computerName mašina2

Alternatyva cmdlet, kad galėtumėte naudoti tokį paprastą metodą (jis yra tylus, kad galite naudoti parametrą "-computerName" savo sandėlyje), galite naudoti šią komandą pagalbai:

get-command | kur ( $_.parameters.keys -contains "ComputerName")

Naujausias cmdlet pakeitimas, po kurio gali būti naudojamas kitas metodas, gali būti pakeistas taip:

get-command | kur ( $_.parameters.keys -contains "ComputerName" -ir ($_.parameters.keys -notContains "Session"))

Pidbivaemo pіdpomok apie vіddalena robotą PowerShell 2.0
Paslaptis skirta tiems, kuriems ateityje reikia naudoti „PowerShell 2.0“, kad padėtų tiems, kuriems reikia suprasti pagrindines kalbas:
Toliau įdiekite „WinRm“.
Kad galėtumėte naudoti komandą Enable-PSRemoting, turite įjungti nuotolinę sąveiką.
Būtina nustatyti „TrustedHosts“ (pavyzdžiui, nustatyti kaip reikšmę *).
Kai pasirenkate komandą Enter-PSSession, nepamirškite nurodyti mazgo pavadinimo arba jo IP adreso.

Anglomovna dzherelo vikladenoї ir mano apdorotos informacijos trochai.

# Sukurkite naują ryšio seansą su nuotoliniu kompiuteriu $s = New-PSSession -kompiuterio pavadinimas TestComputer

# Vikonuemo nuotoliniame kompiuteryje tai padaryk, pavyzdžiui, stebėdamasis C katalogu:
Invoke-Command - Session $s - ScriptBlock (ls c:\)

# Sukurta nuotolinio kompiuterio kataloge „%ProgramFiles%\MyCompany\MySoft“
Invoke-Command - Session $s - ScriptBlock (New-Item -Path "$env:ProgramFiles\MyCompany\MySoft" -ItemType katalogas)

# Prote, geriau neįvesti komandų rankiniu būdu, o paleisti nuotoliniame kompiuteryje scenarijus jau paruoštas:
Invoke-Command - Session $s -FilePath "\\ServerDir\Common Scripts\MyScript.ps1"

# Baigti sesiją
$s | pašalinti-PSSession

2011 03 04 Billas Stewartas

Versija „Windows PowerShell“. 2.0 alternatyvaus prisijungimo prie nuotolinių kompiuterių mechanizmo, vadinamo nuotoliniu, įgyvendinimas. Visas pergalės tarnybos mechanizmas nuotolinė priežiūra„Windows“ („Windows Remote Management“, „WinRM“). Win apsaugo ryšį su nuotoliniu kompiuteriu, taip pat komandų, kurios yra prijungtos prie to nuotolinio kompiuterio, paleidimą

„PowerShell 1.0“ apvalkalo kūrimas tapo proveržiu kuriant „Windows XP“ branduolį ir automatizavimą bei naujausias „Windows“ OS platformos versijas. „Yaka“ yra pagrįsta platforma. NET Framework PowerShell 1.0 technologija apima vieno žmogaus komandų struktūrą (cmdlet), jai skirtas sunkus darbas formatuojant išvesties duomenis ir užtikrinant reikšmingą kitų technologijų prieinamumo pažangą, o mes persiunčiame - іnstrumentarіyu Windows valdymas(WMI). Tačiau jei norite išsaugoti PowerShell 1.0 komandas, tas objektas. NET galima prijungti prie nuotolinių kompiuterių, o funkcija įgyvendinama skirtingai, priklausomai nuo konkretaus tipo. Komandos, kurios pіdtremuyut vіddalenі z'єdnannya, mayut -ComputerName; Be to, įdiegus sistemą, smirda vikoristovuyut vikliki vіddalennyh procedūras (RPC), arba DCOM modelis.

Įvairiose RPC ir DCOM situacijose pravartu susidoroti su valdymu, apsisaugoti nuo pergalingų diagnostikos procedūrų ir, jei nustatomos gedimų priežastys, kartais kaltina problemas. Pavyzdžiui, komanda Get-Service gali nuskaityti paslaugų duomenis iš nuotolinio kompiuterio, naudodama parametrą -ComputerName, proceso komanda neturi parametro -Credential, tomas turi būti užregistruotas veido rekordas, kuri gali suteikti prieigą prie nuotolinės sistemos.

Ale jau įėjo Windows versijos PowerShell 2.0 įgyvendina alternatyvų prisijungimo prie nuotolinių kompiuterių mechanizmą, vadinamą nuotoliniu valdymu. Tai yra „Windows Remote Surveillance Service“ („Windows Remote Management“, „WinRM“) sėkmingo veikimo mechanizmas. Win užtikrina ryšį su nuotoliniu kompiuteriu, taip pat komandų, kurios yra prijungtos prie to nuotolinio kompiuterio, paleidimą. Leiskite paaiškinti pavyzdžiu. Suteikite galimybę prisijungti prie nuotolinio darbo stalo, kad pasiektumėte grafinę coristuvacha sąsają taip, kaip nuotoliniu būdu prijungta prie „PowerShell“ komandų eilutės. Jei paleidžiate sandėlio komandą papildomam nuotolinės sąveikos mechanizmui, komanda iš tikrųjų vykdoma nuotoliniame kompiuteryje, bet vis tiek galite nuskaityti rezultatus vietiniame kompiuteryje.

Kur galite naudoti Windows PowerShell 2.0

PowerShell 2.0 apvalkalas ir WinRM paslauga yra įtraukti į Windows 7 ir Windows Server 2008 R2 sistemų atsargas, todėl nereikia diegti šių komponentų. Kaip dirbate su sistemomis Windows Vista SP2, Windows XP SP3, Windows Server 2008 SP2 arba Windows Server 2003 SP2, turėsite įdiegti Windows Management Framework Core paketą (support.microsoft.com/kb/968930).

Padidintos funkcijos atstumu vienas nuo kito

Tam, kad kompiuteris galėtų prisijungti prie kitų sistemų, kuriose įdiegtas PowerShell apvalkalas, būtina užtikrinti tokį protą.

  1. Turite suaktyvinti WinRM paslaugą.
  2. Reikia įdiegti WinRM klausytoją, kuris priims skambučius iš vieno ar kito IP adreso.
  3. Mereževijus windows ekranas kaltas buti nalashtovaniya tokio rango, schob z'pasirodė mozhlivist vstanovlenya z'ednan per WinRM.
  4. Paskutinis, bet ne mažiau svarbus dalykas – eilinis „PowerShell“ seanso užbaigimo ritualas.

Kaip kompiuteriui neįmanoma atpažinti PowerShell apvalkalų, įdiegtų kituose kompiuteriuose, reikia keisti minčių kalbą.

Kad įsilaužėliai galėtų lengviau pasakyti apie robotą, „Microsoft PowerShell“ mažmenininkai sukūrė komandą „Enable-PSRemoting“, kuri užtikrina, kad atspėti komponentai būtų automatiškai sukonfigūruoti. Taisyti reikia ne automobiliu, dėl kurio dirbsite nuotoliniu būdu, o kompiuteriu, iki kurio keliausite nuotoliniu būdu. Tokiu būdu galite paleisti tik komandą Enable-PSRemoting, nes PowerShell apvalkalą naudojate administratoriaus teisėmis. Kaip praktikuojatės Windows mašinos Vista, Server 2008 ir naujesnės versijos, dešinysis mygtukas Spustelėkite PowerShell piktogramą ir meniu pasirinkite Vykdyti kaip administratorių. Jei paleisite komandą Enable-PSRemoting su parametru -Force, jei ji nepavyks, sistema nesusisieks su jumis dėl leidimo ištrinti odos konfigūracijos veiksmą. Norėdami peržiūrėti ataskaitas apie sandėlio komandą Enable-PSRemoting, spustelėkite komandą

Gaukite pagalbos įgalinimą-PSRemoting

Vienos komandos stebėjimas nuotoliniame kompiuteryje

Lengviausias būdas prisijungti prie „PowerShell“ aplinkos nuotoliniame kompiuteryje yra pasiekti ją naudojant Enter-PSSession komandą. Įvedus, komanda susiejama su parametru -ComputerName, todėl įvedant iš klaviatūros parametro galima praleisti. Pavyzdžiui, norėdami įdiegti nuotolinį kompiuterį pavadinimu rigel, turite įvesti iš klaviatūros

PS C:\> Enter-PSSession rigel

Pagauk jūsų pagarbą: dėl išsamumo gilinuosi į prašymo tekstą. Jums nereikia įvesti prašomos komandos dalies.

Kai įvedamas nuotolinis seansas, „PowerShell“ užklausos sintaksė pasikeičia. Dabar jis nebus įtrauktas į nuotolinio kompiuterio kvadratines svirtis; Tai reiškia, kad įdiegėte nuotolinį kompiuterį. Šiame rodinyje prašomas vaizdas atrodo taip:

: PS C:\>

Įdiegus nuotolinį ryšį, visos komandos, kurias įvedėte komandų eilutėje, bus rodomos nuotoliniame kompiuteryje. Taigi, jei įvesite komandą

: PS C:\> Get-ChildItem C:\

komanda Get-ChildItem nuotoliniame kompiuteryje bus išjungta. Duomenys bus pašalinti iš failų ir aplankų pavadinimų, kurie yra išsaugoti iš nuotolinio kompiuterio C saugyklos. Norėdami baigti seansą nuotoliniu režimu, paskubėkite su komanda Exit-PSSession

: PS C:\> Exit-PSSession

Scenarijų bloko peržiūra nuotoliniame kompiuteryje

Vidalenya vzaєmodіya už podpomogoyu PowerShell leidžia vykonuvaty ant nuotolinio kompiuterio bloko scenarijus arba scenarijaus blokas (užblokuoti PowerShell kodą, krovimą prie lanko formos). Tam reikia paspartinti komandą Invoke-Command su parametru -ComputerName. Pavyzdžiui, 1 ekrane rodomai komandai nepaisysiu komandos Invoke-Command, kad nepaisyčiau Get-ChildItem nuotoliniame kompiuteryje. Žvelgdami į 1 ekraną, atminkite, kad norėdamas prieš jį įdiegti ryšį iš nuotolinio kompiuterio, kaip paleisti scenarijaus bloką, aš nelaimėjau komandos Enter-PSSession. Komandos Enter-PSSession ir Invoke-Command yra du skirtingi nuotolinės sąveikos metodai.

Pirmasis komandos Invoke-Command parametras yra -ScriptBlock; Vіn nurodykite kodą, kuris vy yra pasirinktas vikonati. 1 ekrane, praleidžiant parametro -ScriptBlock pavadinimą, skeveldros pateikiamos neįpareigojančia kalba. Parametras -ComputerName pakeis nuotolinio kompiuterio pavadinimą. Kaip galite naudoti komandą Get-ChildItem išvesties duomenyse, PowerShell aplinką, kad operatorius būtų skaidrus, kad būtų galima naršyti ir nurodyti nuotolinio kompiuterio pavadinimą išvesties duomenų stulpelyje PSComputerName.

Scenarijaus bloko stebėjimas daugelyje nuotolinių kompiuterių

Scenarijaus bloką galima paleisti tiek kompiuterių, kiek norite. Tse vadinama konfigūracija „nuo vieno iki turtingo“ arba į gerklės buteliuką. 1 ekrane komandos Invoke-Command parametras -ComputerName gali pakeisti vieną pavadinimą, tačiau galima pakeisti kelis kompiuterių pavadinimus nauju. Taip, komanda

PS C:\> Invoke-Command (Get-ChildItem env: co*) - Kompiuteris titan, rigel

užtikrinti, kad komanda Get-ChildItem būtų vykdoma dviejuose nuotoliniuose kompiuteriuose. Straipsnio tekste komanda suskirstyta į eilučių pabarstymą, tačiau „PowerShell“ konsolėje į vieną eilutę įveskite šiuos. Tos pačios kitos komandos, suskirstytos į šprotų eiles. Taigi, kaip ir 1 ekrane, PSComputerName išvesties duomenyse yra tie patys kompiuterių pavadinimai.

Scenarijaus bloko stebėjimas fono režimu

PowerShell 2.0 leidžia paleisti fonines užduotis, kad operatorius galėtų paleisti komandą fone. Tokia galimybė reikalinga valandai komandoms paleisti, kurioms atlikti prireiks valandos.

Norėdami paleisti foninę užduotį vietiniame kompiuteryje, galite paleisti komandą Start-Job. Tačiau reikia pasakyti, kad komanda neturi parametro -ComputerName, bet reiškia, kad jos negalima įveikti, kad būtų paleista foninė užduotis nuotoliniame kompiuteryje. Kol kas turėsite įvesti komandą Invoke-Command su parametru -AsJob. Taigi, viršutinė komanda 2 ekrane inicijuoja scenarijaus bloką prieš foninę užduotį nuotoliniame kompiuterio titane. Po to, kai įvedžiau šią komandą, ekrane pasirodė užklausa: PowerShell apvalkalas paleido scenarijų bloką, skirtą kompiuterio nuotoliniam valdymui, o po to valdymas atsisuko į mane. Iš anksto yra tokių, kurių komanda viconan netilpo galutinėje konsolėje ir kurie nebuvo įtraukti į išorinius duomenis. Yakby vykno konsolė Turėjau platesnį, zasib formatuvannya PowerShell apvalkalą, įtraukdamas komandą į išvesties duomenų sąrašą. Stulpeliuose Id ir Name nurodoma užduotis (jūsų identifikatorius ir suprantamas pavadinimas yra aiškus), o užduočių stotyje – būsenos stulpeliai: patikrinta, sustabdyta, atlikta. HasMoreData teikėjas turi informacijos apie tuos, kurie patikrino visus duomenis, kad reikia kitos užduoties arba užduotis yra kompensuoti didesnį duomenų kiekį, pavyzdžiui, pergalės pėdsaką.

Norėdami užtikrinti, kad foninė užduotis būtų baigta, galite paleisti komandą Get-Job, kad 2 ekrane būtų rodoma kita komanda. Jei nepaisysite parametrų, Get-Job nepaisys visų užduočių, vykdomų kiekvieną srautinio perdavimo seanso valandą. . Jei norite laimėti užduotį iš karto, užduočiai galite laimėti tokius parametrus kaip -Id arba -Name, pavyzdžiui, pačią užduotį, kurią norite pakeisti. Jei foninė užduotis bus baigta, foninės užduoties būsena bus nustatyta į Atlikta.

Norėdami perskaityti foninio darbo rezultatus, pažymėkite Gauti užduotį. Ši komanda, kaip ir Get-Job, sukasi visų užduočių, prasidėjusių kiekvieną srautinio perdavimo seanso valandą, išvestį, nes nepaisėte tų darbų vykdymo parametro, kaip pati užduotis iškviečia jus. Taigi, likusioje 2 ekrano komandoje yra parametras -Id, kuris nurodo tuos, į kuriuos reikia atsižvelgti į duomenis apie užduotį su identifikatoriumi 9. Praleidžiu -Id parametro pavadinimą, kuris nėra nurodytas kalboje. 3 ekrane rodomos likusios savaitgalio duomenų eilutės, kurios yra virš tolimo fono ekrano, į kurį žiūrima.

Seansų kūrimas „PowerShell“.

Nurodykite jį atidžiau, kad parodytumėte, kaip pasiekti užklausą nuotoliniuose „PowerShell“ įrenginiuose ir kaip vykdyti komandas nuotoliniuose kompiuteriuose. Ale, kol kas negalvojant apie tuos, kurie toli nuo sąveikos, kuriami seanso kontekste. Tarkime, sesija yra vieta, kurioje gyvena „PowerShell“. Kai atidarote PowerShell konsolės langą arba PowerShell integruotos scenarijų aplinkos (ISE) langą, sukuriate seansą. Nenaudojant nuotolinės sąveikos pagalbos, visos sesijos laikomos vietiniame kompiuteryje ir guli viena šalia kitos. Visuose taikymo užpakaliuose, esant nuotoliniam tarpusavio modalumui, sukuriami laiko seansai, nes jie automatiškai prijungiami baigus nuotolinį abipusį modalumą. Be to, tikrai galima sukurti seansų tolimuose santykiuose atvejus ir juos iš naujo laimėti. Toks pidhidas yra efektyvesnis gedimų atveju, jei reikia daugiau nei vieną kartą patekti į nuotolinius kompiuterius.

Norėdami sukurti naujus seansus, naudokite komandą New-PSSession su parametru -ComputerName. Šio parametro pavadinimo komandose galima praleisti. Taip, komanda

C:\> $sessions = naujas PSSession phineas, ferb, perry

Sukuriu tris seansus trijuose kompiuteriuose, pavadintuose phineas, ferb ir perry. Seansus galite peržiūrėti pakeisdami $sessions. Kam komandinėje eilutėje reikia įvesti im'ya

$seansų

ir paspauskite įvesties klavišą. Komandos Invoke-Command parametras -Session atima seanso objektą, sukurtą naudojant New-PSSession komandą, todėl galite pasukti komandą, panašią į įžeidžiančią:

C:\> Invoke-Command (Get-ChildItem) -sesija $sessions

Ši komanda neveikia „Get-ChildItem“ komandos „phineas“, „ferb“ ir „perry“ mašinose, bet neatidaro dienos. Galite pridėti parametrą -AsJob prie komandos fono režimu:

C:\> Invoke-Command (Get-ChildItem) -sesija $sessions -asjob

Naujas pidhidas į darbą

Vіddalena vzaimodiya už podpomogoyu zasobіv PowerShell - naujo griežto mechanizmo vykonannya komandų vіddalennyh kompiuteriuose kaina. Aš spodіvayus, tsya statya paskatins jus doslіdzhennya naujų galimybių. Ataskaitų apie nuotolinį sąveiką, įskaitant diagnostikos problemas, galite rasti išplėstinėse PowerShell temose apie_Remote adresu technet.microsoft.com/en-us/library/dd347616.aspx.

Bilas Stiuartas ( [apsaugotas el. paštas]) - įmonės French Mortuary, Naujoji Meksika, sistemos administratorius



  • pamoka

Teorijos yra minimumas, svarbiausia dalis – praktinė. Aprašykite, kaip nustatyti WinRM, kaip pakeisti profilį ruoželinis adapteris, scenarijus duotas pridėti prie TrustedHosts su filtravimu, paaiškinama remiantis patikimų prieglobų poreikiu ir į juos žiūrima paviršutiniškai nuotolinis ryšys kad galėtumėte bulo sistemą ir vіdrazu vіdminiti vіddalenі automobilius.

Paprasčiausias būdas per atstumą konfigūruoti vikonati valdymą Įjungti-PSRemoting obolonciuose gyvenantys administratoriaus teisėmis. Kai tampa taip:

  • paleiskite WinRM paslaugą (kaip ji buvo paleista iš naujo)
  • WinRM paslauga eina į stovyklą - automatinis paleidimas paleidžiant
  • bus sukurta pasiklausant WinRM http uosto eismas 5985 visiems vietiniams IP adresams
  • WinRM klausytojui bus sukurta ugniasienės taisyklė. Pagarba, šis punktas bus baigtas kuo greičiau, jei tik iš kortelių sujungimo, sujungimo tipas yra „viešas“, nes Tokios kortelės prievado atidarymas nėra gerai. Jei konfigūruodami turite tokį atleidimą, pakeiskite tinklo profilį naudodami cmdlet Set-NetConnectionProfile ir vėl paleiskite Enable-PSRemoting. Jei jums reikia susietos kortelės su „viešojo iždo“ profiliu, paleiskite „Enable-PSRemoting“ su parametru -SkipNetworkProfileCheck kuriai užkardos taisyklės bus sukurtos mažiau nei vietinės linijos.
Esant poreikiui galima prisijungti prie nutolusios mašinos nuo tos mašinos, su kuria reikalingas valdymas. Zrobleno tse z metoyu saugumo, siekiant pakeisti blogio seanso nuotolinio keruvannya arba DNS pagrįsti save pakeisti nuotolinio kompiuterio ir zapobigti vykonannya skriptiv mašinose, kaip jūs primusovo neleidžiama.

Norėdami iš naujo patikrinti, kur galite prijungti vikoristovuemo:
get-item wsman:\localhost\Client\TrustedHosts
kad galėtumėte prisijungti prie visų
set-item wsman:localhost\client\trustedhosts -value *
Jei įgalinsite prieigą prie visų nurodytų * WinRM prisijungs prie VISŲ mašinų be laidų perjungimo. Prisiminkite, ką sakote sau apie galimą vietinės dimensijos blogį. Trumpai tariant, nurodykite pagrindinio kompiuterio adresus, prie kurių reikia prisijungti, tada WinRM leis visus kitus adresus ar pavadinimus. Jei kompiuteris yra valdomas, jis turi būti domene, kuriuo pasitiki visi to domeno įrenginiai. Jei jo nėra domene arba kitame domene, būtina įvesti adresą TrustedHosts arba mašina bus prie jo prijungta. Pridėkite prie savęs automobiliu, kol neprisijungsime.

Pagalbos komandos yra duotos, keletą jų perkūriau iš scenarijaus
################################################# ################################## # pridėkite NewHost į patikimų prieglobų sąrašą su filtravimu, todėl šią eilutę jau galima # smicati z komandinė eilutė nurodant parametrą be vidurinio #.\Add-TrustedHost.ps1 192.168.2.1 ################################ ### ############################################### Nr $NewHost) )) -eq $false) (if ($prev -eq "") (nustatyti elementą WSMan:\localhost\Client\TrustedHosts -Value "(!LANG:(!LANG:$NewHost" } else { set-item WSMan:\localhost\Client\TrustedHosts -Value "$prev, $NewHost" } } Write-Host "" Write-Host "Now TrustedHosts contains:" (get-item WSMan:\localhost\Client\TrustedHosts).value !} !}
vіn revіryає chi є toks įrašas, tarsi nieko neįtraukiantis į sąrašą. Skambinti galima iš komandinės eilutės įvedus adresą arba vardą.

Є ryznitsya kazuvati im'ya chi adresas. Jei TrustedHosts yra tik adresai, atidarykite sesiją pavadinimu nematomas, o navpaki - jei nurodote im'ya tada pridėkite prie adreso nematomas. Skambink tse.

kodėl skiriasi

Įgalinti-PSRemoting apiplėšti daugiau diy, sumažinti "winrm quickconfig". „Set-WSManQuickConfig“ cmdlet veikia taip pat, kaip „winrm quickconfig“. Įjungti-PSRemoting paleidžia Set-WSManQuickConfig, jei sukonfigūravote sistemą

Nuotolinis ryšys
1. Seansai nuo 1 iki 1
sušuko komanda
Enter-PSSession -ComputerName Test
Nuimate nuotolinio įrenginio korpusą. Galite prisijungti prie savęs įvesdami localhost. Alternatyvios paskolos priskiriamos su parametru - Kvalifikacija, išėjo cmdlet exit-PSSession

Keistis taip:

  • negalima dirbti kito kirpimo - maziau nei 1 seansas, seanso viduryje jungti toliau negalima
  • Negalite laimėti komandų, kad sukurtumėte grafinę sąsają. Jei norite, kad apvalkalas kabėtų, paspauskite Ctrl + C, kad jis pakabintų
  • negalite paleisti komandų, kurios gali paleisti jūsų pačių komandas, pvz., nslookup, netsh
  • galite paleisti scenarijus, nes politika leidžia juos paleisti nuotoliniame kompiuteryje
  • negali prisijungti prie interaktyvios sesijos, tu eini kaip "prisijungimas prie tinklo" nibi, prijungtas prie sujungto disko, Tomas nepaleis prisijungimo scenarijaus, o jūs negalite paimti namų aplanko nuotoliniame kompiuteryje (argumentas yra nesusieti pagrindinio aplanko ir prisijungimo scenarijų)
  • Negalite bendrauti su korespondentu nuotoliniame aparate, kad ten rastumėte tų pačių vynų. Neskubėkite jums parodyti pabaigoje ar draugauti su jumis.
Šis metodas yra geriausias paprastoms operacijoms, zaishov, po prekybos serveriu ir prisijungimo. Jei reikia pašalinti minios pokyčius, reikia trigubos operacijos (daug metų ar daugiau dienų), reikia daugiau galimybių administruoti, tuomet reikia laimėti techniką prašant.
komentuoti.
per tinklelį praėję objektai susiformuoja ir nustoja būti gyvi. Smarvė matosi metodais, apleidžiama valdžia. Vityagti ob'єkt ant savo automobilio, pochakluvat ir stumti atgal neina. Jei reikės parašyti daugiau, pridėsiu teisingai.

2. Seansai nuo 1 iki daugelio
Invoke-Command
tai, ką galime matyti, reiškiame taip:
$sb = (nuotoliniam kompiuteriui skirtos komandos, padalintos su koma)
perkeltas į nuotolinius įrenginius Test1 ir Test2
Invoke-Command -ComputerName Test1, Test2 -ScriptBlock $sb
vienu metu galite užmesti 32 automobilius. Kaip alternatyvus kreditas, parametras -Credential yra pergalingas

Norint vėl perkelti scenarijų pakeisti parametrą -ScriptBlock, parašyti -FilePath, nuotoliniame kompiuteryje NEREIKIA turėti prieigą prie failo, bus atsarginių dalių susitarimas, perkėlimai per HTTP ir galūnės iš tos pusės.

Nepamirškite, kad toje pusėje bus naujas žuvis, todėl jūsų scenarijus nepaisys konsolės vertės, o pakeisti scenarijai gali būti tušti. Tam atsiųskite paruoštas instrukcijas ir scenarijus su parametrais.

Norėdami visiškai perrašyti Invoke-Command, turite pakeisti eilutes į scenarijaus blokus. Pavyzdžiui, turite komandą gulėti tokiame sąraše, turite sugeneruoti eilutę, konvertuoti ją į ScriptBlock ir nusiųsti į nuotolinį kompiuterį:
$sb = ::Sukurti($SomeString)
kuda78
Straipsnyje buvo praleistas dar vienas svarbus momentas – parametrų perkėlimas iš scenarijaus į nuotolinį kompiuterį.

$deployRemote = (
param (
$targetEnvName,
$targetUsername)
$Global:ErrorActionPreference = "Stop"
#…
}

Invoke-Command -Sesija $sesija -ScriptBlock $deployRemote -Argumentų sąrašas($targetEnvName, $targetUsername)


Taigi tikri praleidimai. Zrobiv svidomo, kad nebūtų persekiojama su parametrais ir aprašymais. Ačiū. Parametras -ArgumentList veikia ir su scenarijų blokais, ir su scenarijais

3. Seansai
Jei iš tos pusės sukuriama vishiko kopija, kuri visam laikui kabo atmintyje, ir jai siunčiamos komandos. Dėl to galima iš naujo prisijungti prie jo, paleisti vikonannya, lustą su skirtingais scenarijais arba skirtingais koristuvachais. Pavyzdžiui, jūs turite є nabіr skіvіv, scho vіrіshuyu vieną zavdannya dalimis, kozhі z juos ant zhrzі galite prijungti prie vieno єї vіddalenoї sії, bachiti darbo rezultatus į priekį komandos, zaminzminzgalnі vienos motina zavdanі otochennya .

Seansą sukuria New-PSSession cmdlet, rezultatas gali būti išsaugotas su pakeitimu
$DC01 = Nauja PSS sesija - Kompiuterio pavadinimas DC01 $ Valdikliai = Nauja PSS sesija DC01, DC02, DC03
galite naudoti tuos pačius ryšio parametrus kaip ir Invoke-Command

Jakų vikoristovuvati:
Yakscho 1:1
Įvesti-PSSession-Seansas $DC01
Yakscho 1-daug
Invoke-Command - Sessions $Controllers -ScriptBlock (get-eventlog -logname security -newest 50)
galite pamatyti, ar matote pagalbos seansą Get-PSSession, uždarykite Remove-PSSession
uždaryti visas sesijas
Get-PSSession | Pašalinti-PSSession
prie sesijos galite prisijungti naudodami Connect-PSSession, prisijungti per Disconnect-PSSession

Invoke-Command gali iš karto sukurti atjungtą seansą, paleisti komandas, kad pabustų ir prisijungtų, vėliau galėsite prisijungti iš naujo ir gauti darbo rezultatus. Kovok su parametru -Disconnected. Rezultatų gavimas naudojant cmdlet „Recieve-PSSession“.

Sesijas galima gausiai pritaikyti, galima kurti seansus su komandų rinkiniu, moduliais ir pan. Vadinami pasirinktiniais galiniais taškais

Santrauka: „Windows PowerShell“ išgyvenamumo supratimas.

Savaitgalio scenarijaus programa: įgalina nuotolinį Windows kerning.

„Microsoft“ scenarijų kūrėjas, Edas Wilsonas skambina. Šiandien aš paskelbsiu ištrauką iš savo naujos „Windows PowerShell 3.0 Step by Step“ knygos, kuri atrodo kaip „Microsoft Press“. Tuo pačiu metu knygą galima užsisakyti iš anksto.

WinRM – pašalinkite „Windows“ branduolį

„Windows Server 2012“ sistemoje „WinRM“ veikia užraktas, kad jis veiktų „Windows“ komandos PowerShell. „WinRM“ yra „Microsoft“ įdiegtas WS-Management Protocol pramonės standartas. Todėl WinRM turi patogų būdą iš pirmo žvilgsnio pasiekti nuotolines sistemas, ji galėjo uždaryti užkardą. Tas pats mechanizmas, kuris laimi naujas CIM komandas. Tokiu būdu galite prisijungti prie veikiančio „Windows Server 2012“ įrenginio, kad paleistumėte komandas arba atidarytumėte interaktyviąją „Windows PowerShell“ konsolę. „Windows 8“ iš kitos pusės „WinRM“ yra užrakintas. Tai nereiškia, kas toliau, ką reikia padaryti, tada paleiskite cmdlet Įjungti-PSRemoting. Vykdant šią cmdlet rodomos šios eilutės:

1. Paleiskite arba iš naujo paleiskite WinRM paslaugą.

2. Paslaugos paleidimo tipas WinRM įdiegiamas automatiškai.

3. Sukuriamas klausytojas, kad gautų visų IP adresų ryšius.

4. Išjunkite WS-Man eismo užkardą.

5. Įkelta Microsoft.powershell konfigūracija

6. Įkelta Microsoft.powershell.workflow konfig

7. Įkelta Microsoft.powershell32 konfig

Tempiant šį procesą, energijos suteikianti funkcija gerina odos būklę. Jei žinote, kas yra funkcija, ir nenorite prieš ją atlikti pakeitimų, galite paleisti šią komandą naudodami klavišą - jėga ir tokiu būdu patvirtinimas nerodomas. Šios komandos sintaksė pateikta žemiau.

Įgalinti-PSRemoting-Force

Dabar įjunkite funkciją Enable-PSRemoting į interaktyvų režimą, įskaitant visą rodomą informaciją.

PS C:\> Įjungti-PSRemoting

WinRM greita konfigūracija

Paspaudus mygtuką „Set-WSManQuickConfig“, kad būtų užtikrintas efektyvus šios programos valdymas naudojant „Windows Remote Management“ (WinRM) paslaugą. Tai įtraukia:

1. WinRM paslaugos paleidimas arba paleidimas iš naujo (jei jau paleista).

2. WinRM paslaugos paleidimo tipo nustatymas į Automatic

3. Klausytojo sukūrimas priimti užklausas bet kokiu IP adresu

4. Windows ugniasienės surūšiuotų išimčių taisyklių įjungimas WS-Management srautui (tik http).

Ar norite tęsti?

WinRM gali būti atnaujintas, kad gautų užklausas.

WinRM paslaugos tipas sėkmingai pakeistas.

Pradėta „WinRM“ paslauga.

„WinRM“ galima atnaujinti nuotoliniam valdymui.

Sukūrė WinRM klausytoją HTTP://* WS-Man užklausoms į bet kurį šio įrenginio IP.

WinRM ugniasienės išimtis įjungta.

microsoft.powershell SDDL:

[Y] Taip [A] Taip visiems [N] Ne [L] Ne Visiems [S] Sustabdyti [?] Pagalba (numatytasis nustatymas yra "Y"):y

Ar tikrai norite atlikti šį veiksmą?

Atliekama operacija „Set-PSSessionConfiguration“ tikslinėje „Name:

microsoft.powershell.workflow SDDL:

O:NSG:BAD:P(A;;GA;;;BA)(A;;GA;;;RM)S:P(AU;FA;GA;;;WD)(AU;SA;GXGW;;); ;WD). Tai bus

leisti pasirinktiems vartotojams nuotoliniu būdu paleisti Windows PowerShell komandas šiame kompiuteryje".

[Y] Taip [A] Taip visiems [N] Ne [L] Ne Visiems [S] Sustabdyti [?] Pagalba (numatytasis nustatymas yra "Y"):y

Ar tikrai norite atlikti šį veiksmą?

Atliekama operacija „Set-PSSessionConfiguration“ tikslinėje „Name:

microsoft.powershell32 SDDL:

O:NSG:BAD:P(A;;GA;;;BA)(A;;GA;;;RM)S:P(AU;FA;GA;;;WD)(AU;SA;GXGW;;); ;WD). Tai bus

leisti pasirinktiems vartotojams nuotoliniu būdu paleisti Windows PowerShell komandas šiame kompiuteryje".

[Y] Taip [A] Taip visiems [N] Ne [L] Ne Visiems [S] Sustabdyti [?] Pagalba (numatytasis nustatymas yra "Y"):y

Po to, kai buvo rasta konfigūracija, galite pakeisti WinRM pirmenybę papildomai cmdlet Testas-WSMan. Jei sistema nustatyta teisingai, bus rodoma informacija, panaši į esamą.

PS C:\>Test-WSMan -ComputerName w8c504

Produkto versija: OS: 0.0.0 SP: 0.0 Stack: 3.0

Ši cmdlet taip pat veikia „Windows PowerShell 2.0“ kompiuteriuose. Žemiau pateiktos užuominos iliustracijos iki domeno valdiklio sistemoje Windows Server 2008 z įdiegti Windows PowerShell 2.0, prie kurio buvo prikaltas WinRM.

PS C:\>Test-WSMan -ComputerName dc1

wsmid: http://schemas.dmtf.org/wbem/wsman/identity/1/wsmanidentity.xsd

Protokolo versija: http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd

Produkto tiekėjas: Microsoft Corporation

Produkto versija: OS: 0.0.0 SP: 0.0 Stack: 2.0

Jei WinRM nenustatytas, pranešimas apie atleidimą bus įjungtas. Kai bus įdiegta „Windows 8“ operacinė sistema, ateis įspėjimas.

PS C:\>Test-WSMan -ComputerName w8c10

Test-WSMan:

xmlns:f="http://schemas.microsoft.com/wbem/wsman/1/wsmanfault" Code="2150859046"

Machine="w8c504.iammred.net">Nepamirškite WinRM. Patvirtinti

ar nurodytas kompiuterio pavadinimas galioja, ar kompiuteris pasiekiamas per

tinklą ir kad WinRM paslaugos ugniasienės išimtis yra įjungta ir leidžiama

prieiga iš šio kompiuterio. Pagal numatytuosius nustatymus WinRM ugniasienės išimtis viešai

Profiliai riboja prieigą prie nuotolinių kompiuterių tame pačiame vietiniame potinklyje.

Prie eilutės:1 simbolis:1

Testas-WSMan -Kompiuterio pavadinimas w8c10

+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Kategorijos informacija: InvalidOperation: (w8c10:String) , InvalidOperationException

FullyQualifiedErrorId: WsManError,Microsoft.WSMan.Management.TestWSManCommand

Atminkite, kad nuotolinio valdymo įgalinimas naudojant cmdlet Enable-PSRemoting neišjungia nuotolinio valdymo ugniasienės, todėl bandymas siųsti „Windows 8“ įrenginio ping nepavyksta.

PS C:\> ping w8c504

Pingimas w8c504.iammred.net su 32 baitais duomenų:

Baigėsi užklausos skirtasis laikas.

Baigėsi užklausos skirtasis laikas.

Baigėsi užklausos skirtasis laikas.

Baigėsi užklausos skirtasis laikas.

Ping statistika 192.168.0.56:

Paketai: išsiųsti = 4, gauti = 0, prarasti = 4 (100% praradimas).

Viskas veikia Windows Server 2012.

PS C:\> ping w8s504

Pingimas w8s504.iammred.net su 32 baitais duomenų:

<1ms TTL=128

Atsakymas iš 192.168.0.57: baitai = 32 laikas<1ms TTL=128

Atsakymas iš 192.168.0.57: baitai = 32 laikas<1ms TTL=128

Atsakymas iš 192.168.0.57: baitai = 32 laikas<1ms TTL=128

Ping statistika 192.168.0.57:

Paketai: išsiųsti = 4, gauti = 4, prarasti = 0 (0 % praradimas),

Apytikslis kelionės pirmyn ir atgal laikas vasaros valandomis:

Mažiausias = 0 ms, didžiausias = 0 ms, vidurkis = 0 ms

Tai viskas, ko reikia norint patobulinti WinRM.

Edas Wilsonas, „Microsoft“ scenarijų kūrėjas

Originalus:

Technologijos