Powershell'e uzak bir bilgisayarda boş bir parola ile izin verilir. Powershell uzaktan programı başlatın. Yönetim "bire bir"

Yardım için uzaktan destek PowerShell

Uzak bilgisayarlarla çalışmanın Іsnuє chimalo yöntemleri. Є VBScript'te yaygın olarak kullanılan Windows Yönetim Araçları (WMI). Uzaktan kontrol etmenizi sağlayan farklı yardımcı programları kullanın, Sysinternals yazın. Wiconn on için ComputerName parametresini ayarlamak için birçok PowerShell cmdlet'inde gezinin uzak bilgisayarlar.

Zagalom yöntemleri povno, ancak ciltte eksileri. İlk olarak, içinde kaybolması kolay olan farklı sözdizimi. Farklı bir şekilde, deyaki yerel olarak uzak kokup kokmamalarına bağlı olarak farklı bir şekilde davranmayı emreder. Pekala, nareshti, iletişim için güvenlik açısından iyi olmayan güvenlik duvarına ek bağlantı noktaları eklemeniz gerekebilir.

PowerShell Uzaktan İletişim virishuє sorunların daha fazla açıklaması. Microsoft'un Yönetim için Web Hizmetleri (WS-Management) protokolünü uygulamasına ve vicorist hizmetine (WinRM) bağlantıya ilişkin temeller. HTTP (kilitleme için) veya HTTPS için bilgisayarlar arasında iletişim gereklidir. İki bilgisayar arasındaki tüm trafik, protokolle aynı düzeyde şifrelenir (SSL galip gelirse, göz kırpma için). NTLM ve Kerberos dahil olmak üzere bir dizi kimlik doğrulama yöntemi desteklenir.

Kullanılmakta olan vіdmіnu'da, farklı yazılım arayüzleri scho vikoristovuyut, adım adım PS Remoting pratsyuє: komutlar, girilecek scho yerel bilgisayar, uzak bilgisayara aktarılır ve kontrol edilir, ardından sonuç geri aktarılır. Tüm takımların parçaları yerel olarak sayılır, toplamı tartışmaya gerek yoktur. Ayrıca, PS Remoting yalnızca bir açık bağlantı noktası güvenlik duvarına.

İşte PowerShell Remoting'e yardımcı olmanın bazı yolları.

Yönetim "bire bir"

En kolay yol uzaktan bakım— Oturumu etkileşimli olarak açın ve viskonların buna ihtiyacı var. Örneğin, oturumu SRV4 bilgisayarında görelim ve yeni bir servis arkadaşında yeniden başlatalım:

Enter-PSSession -BilgisayarAdı SRV4
Yeniden Başlatma Hizmeti -Ad biriktiricisi

Hizmete hayret ediyoruz ve oturumu kapatıyoruz:

Get-Service -Ad biriktiricisi
çıkış-PSSession

Etkileşimli çalışma, uzaktan yönetimin zor görevlerini çözmek için uygundur. İşlemi otomatikleştirmek istiyorsanız, bunu en iyi Invoke-Command cmdlet'i ile yapın. Eksen, bu yardımla aynı şeyi çözebilirsiniz:

Invoke-Command -ScriptBlock (Yeniden Başlatma Hizmeti biriktiricisi) -BilgisayarAdı SRV4

Bu komut, SRV4'te bir uzak oturum açar, bir komut bloğu, -ScriptBlock parametresi için talimatlar alır ve oturumu kapatır. ve hıçkırarak arka plan modu, isteğe bağlı olarak AsJob parametresini belirtebilirsiniz .

PowerShell arka planda çalışarak bir saat geçirenlerin sonucu değiştirmediğini unutmayın. Bunu yapmak için Receive-Job cmdlet'i ile halledebilirsiniz.

Birkaç komut değil, bir komut dosyası seçmek için Invoke-Command, komut dosyasını dosyaya atamak için -ScriptBlock olarak değiştirilebilen -FilePath parametresine sahip olabilir. Örneğin, zupine hizmetlerinin bir listesini görüntüleyecek ve onu uzak bir SRV4 makinesinde çalıştıracak bir komut dosyası oluşturdum:

Invoke-Command -FilePath .\script.ps1 -BilgisayarAdı SRV4

Yönetim "birden zengine"

Doğrulamanın bir kısmını, birkaç bilgisayarda bir görevin doğrulanmasıyla aynı anda tamamlamak gerekir. Aynı Invoke-Command yardımı ile kolayca yapabilirsiniz. Örneğin, bilgisayar adları basitçe bir komadan geçirilebilir:

Invoke-Command -ScriptBlock (Yeniden Başlatma Hizmeti biriktiricisi) -BilgisayarAdı SRV4,SRV5

Lütfen aklınızda bulundurun:

$servers = @(″SRV1″,″SRV2″,″SRV3″)
Invoke-Command -ScriptBlock (Yeniden Başlatma Hizmeti biriktiricisi) -BilgisayarAdı $sunucuları

Veya dosyadan alın:

Invoke-Command -ScriptBlock (Restart-Service biriktiricisi) -ComputerName`
(Get-Content .\servers.txt)

Not: Invoke-Command, bir saatte çalıştırılabilecek maksimum bilgisayar sayısı arasında olan bir ThrottleLimit parametresine sahip olabilir. Bu parametreyi kilitlemek için 32'yi ekleyin. Gerekirse değiştirebilir veya bilgisayarınızın işlemci ve belleğindeki yükü artırmak için değiştirebilirsiniz, bu nedenle bu işlem çok dikkatli yapılmalıdır.

Oturumlar

Invoke-Command oturumunun her iki saatinde bir, bir saat ve kaynak alan yeni bir oturum oluşturulur. Kaybolmak için bir oturum açıp tüm komutları kazanabiliriz. Örneğin, SRV4 bilgisayarına SRV4 adlı bir oturum ekleyelim ve onu bir $session içine koyalım ve ardından fabrikamızı kaydedelim (örneğin, çok acı çeken bir biriktirici):

$oturum = Yeni-PSSession -BilgisayarAdı SRV4 -Ad SRV4
Invoke-Command -ScriptBlock (Get-Service biriktiricisi | Stop-Service)`
-Oturum $oturum

Oturum etkin doti olacak, doki PowerShell konsolundan görünmeyecek. Ayrıca oturumu kapatabilirsiniz - PSSession Bağlantısını Kes veya kaldır - PSSession Kaldır.

Ve şimdi PowerShell 3.0'da ortaya çıkan bir dizi olasılık. Daha önce olduğu gibi, oturumdan çıktığınızda veya oturum kapatıldığında, oturum kapatıldığında PS 3.0 istasyona gidecektir. bağlantı kesildi. Hangi bilgisayarda veya başka bir bilgisayarda yeni bir oturum açabilir ve komutu doğrudan bu etkin oturumda çalıştırabiliriz. Başka bir arkadaşa SRV4 servisinde popo nasıl başlatılır, geçmiş zamanların sesi:

Invoke-Command -ScriptBlock (Start-Service biriktiricisi)`
-BilgisayarAdı SRV4 -Bağlantı Kesildi

Oturumların dahil edilmesi için başka bir seçenek, günün saatine göre denemelerin başlatılmasıdır. Örneğin, SRV4'teki bir LongJob oturumuna bakalım ve 1 aralıkta bir hizmet listesi görüntülediği için onu işin arka planında çalıştıralım:

$oturum = Yeni-PSSession -BilgisayarAdı SRV4 -Adı Uzun İş
Invoke-Command -Session $session -ScriptBlock`
(Get-Service | foreach ($_;sleep 60) ) -AsJob

Oturumu kapatma görevinin nasıl kutlandığına hayret ediyoruz:

Alma-İş -Ad İş2
Bağlantıyı Kes-PSSession $oturum

Başka bir bilgisayara demo yapın ve konsolu görüntüleyin, LongJob oturumuna bağlanın ve Receive-PSSession cmdlet'inin yardımı için görevin sonucu alınacaktır:

Connect-PSSession -Adı Uzun İş -BilgisayarAdı SRV4
Receive-PSSession -Ad LongJob

Veya Connect-PSSession yardımı için oturuma açık bir bağlantı olmadan başka bir seçenek:

$session = Get-PSSession -Adı Uzun İş -BilgisayarAdı SRV4
$iş = Receive-PSSession $session -OutTarget Job
İş Alımı $iş

Not: Sonucun sistemde kalması için Receive-Job'un -Keep parametresi ile bükülmesi gerekir.

Kesinlikle uzak keruvannya

Standart olmayan bir uzak keruvannya yolunu tamamlamak için bir şey daha - örtük uzaktan iletişim. Uzak bir oturum oluşturmadan, uzak bir bilgisayarda yerel olarak cmdlet'leri çalıştırmak mümkündür.

Örneğin, uzaktan yönetimin yardımı olmadan aynı çalışma istasyonunu alıyoruz. SRV4 etki alanı denetleyicisi ile bir uzak oturum oluşturuyoruz ve Active Directory modülünü oturuma aktarıyoruz:

$oturum = Yeni-PSSession -BilgisayarAdı SRV4
Invoke-Command (Import-Module ActiveDirectory) -Session $session

Ardından, uzak oturumdan Active Directory cmdlet'lerini dışa aktarır ve bunları yerel RemoteAD modülüne göndeririz:

Dışa Aktarma-PSSession -Oturum $oturum -KomutAdı *-AD* -OutputModule RemoteAD`
-AllowClobber

Komut, WindowsPowerShell\Modules\RemoteAD klasöründe yeni bir PowerShell modülü oluşturmaktır. Seçenekler yalnızca *-AD* kalıbıyla eşleşen adlara sahip cmdlet'ler olacaktır. Kimin için cmdlet'lerin kendileri yerel bilgisayara kopyalanmaz. Yerel modül bir tür kısayol görevi görecek ve komutların kendisi uzak etki alanı denetleyicisine gönderilecek.

Modül oluşturulduktan sonra oturum kapatılabilir, artık buna ihtiyacınız olmaz.

Akış oturumuna yeni bir modül aktarın (PS 3.0 için bu bölümü atlayabilirsiniz):

Alma Modülü RemoteAD

Ve şimdi saygı duyun - etki alanı denetleyicisiyle uzak oturumu iptal etmiyoruz, cmdlet'leri siliyoruz. Bu oturumu açıkça başlatmak gerekli değildir - şunları yapabilirsiniz: dolaylı olarak, uzak cmdlet'te viconty denedikten sonra:

Yeni-ADUser -Adı BillGates -Şirket Microsoft
Get-ADUSer BillGates

Bu durumda, etki alanı denetleyicisine uzaktan bağlantı onaylanacak ve ardından komut etki alanı denetleyicisine aktarılacak ve burada sonlandırılacaktır. Yazmanın sonucu, XML'de seri hale getirilecek ve gerektiğinde, PowerShell'i kullanabileceğiniz bir nesneye seri durumdan çıkarılacak olan yerel bilgisayara aktarılacaktır.

Oturum aktif olacaktır, konsolu kapatmayın veya RemoteAD modülünü silmeyin.

Dolaylı olarak uzak keruvannya, uzak bir bilgisayarda cmdlet'lerle çalışmanıza izin verir, sanki yerel bir makineye kurulmuş gibi pratik olarak aynıdır. Tüm komutlara ne zaman ihtiyacınız olursa, bunu rahatça yaptığınızdan emin olun.

Sonunda ne diyeceğim Narazi PowerShell Remoting, Windows işletim sistemleri tarafından uzaktan erişim için ana araçtır. Bir Windows yöneticisinin bu yeteneği bilmesi ve bunlardan haberdar olması yeterlidir.

Yazıda PowerShell 2.0 varyantı ile mesafeli ilişki konusu anlatılıyor. Önümüzde, karşılıklı işbirliği mesafesinde olmamız gereken bir hizmet başlatmak gerekiyor.

WinRm hizmetini başlatın
PowerShell 2.0'ın uzaktan birlikte çalışabilirliği için, Windows 7 ve Windows 2008 R2'de kilidin arkasına kurulduğundan WinRM hizmeti değiştirilir. İşletim sisteminin erken sürümleri için ayrıca kurulum yapılması gerekir. Hizmet, PowerShell 2.0'ın yüklendiği saatte makineye yüklenmek üzere atanır. WinRM'ye geçmek için PowerShell 2.0 konsolunu başlatın ve aşağıdaki komutu girin:
Hizmet Al WinRm
Sonuç şöyle görünür:

Durum Adı GörünenAdı ------ ---- ----------- Durduruldu winrm Windows Uzaktan Yönetimi (WS-Manag...

Yak bachimo - hizmet mevcut, koruma çalışmıyor. WinRm'yi çalıştırmak için PowerShell 2.0 konsolundan yönetici olarak aşağıdaki komutu çalıştırmanız gerekir:
Enable-PSRemoting
Hizmetin başladığını onaylamak için "Y" düğmesine basın. WinRM hizmeti artık Başlangıç ​​Türü "Otomatik" olarak ayarlanmıştır. bilgisayarın başlangıcında hemen başlatılmayacak. Enable-PSRemoting komutu yalnızca hizmeti başlatmakla kalmaz, başlatma türünü de değiştirir, ayrıca doğru işlem için uygun bir güvenlik duvarı kurar. WinRm hizmeti, herhangi bir IP adresi için istekleri kabul eder.

Tüm bağlı sağlayıcıların adları istenir:
Get-PSProvider
Yak bachimo, WSMan adı altında başka bir sağlayıcımız var.
Güvenilir düğümlerin atanması

PowerShell 2.0 konsolunda komut yöneticisi haklarıyla çalıştırın:

Set-Location -Path WSMan: Set-Location -Yol localhost\client Get-ChildItem

Not
Lütfen ilk komutun -Path parametre değerinin sağlayıcıyı belirten iki işaretçi ile sona erdiğini unutmayın.

Bildiğiniz bilgisayarda, hangi sunucuların makineye bağlanmasına izin verildiğini belirtmek için çalışmasına izin verilir. Bu sunucular "güvenilir üniversiteler" gibi görünmektedir. Bu şekilde, MyServer sunucusundaysanız, MyComputer bilgisayarıyla ilk kez çalışabileceğiniz zaman, güvenilir düğümleri (TrustedHosts) takip edin. Rehberlik Aşağıda, bilgisayarın Active Directory etki alanında oturum açmaması için kazanarak güvenilen düğümleri tanımanın bir yolu bulunmaktadır. Bir bilgisayar bir Active Directory etki alanı ambarına girecekse, TrustedHosts parametreleri Grup İlkesi aracılığıyla ayarlanabilir.

Önemli!
Aşağıda gösterilen komut pratik değildir, çünkü mevcut dizin WSMan:\localhost\client'i kurmamıştır (div. komut fitili, daha fazlası var).

Set Öğesi Güvenilir Ana Bilgisayarlar *

Komutu başka bir dizinden çalıştırabilir veya TrustedHosts için yeni bir yol belirtmeniz gerekebilir:

Set-Item WSMan:\localhost\Client\TrustedHosts *

Onay isteğinde "Y" tuşuna basın.

PowerShell'in TrustedHosts ayarlarında yaptığımız ayarları değiştirebilmesi için WSMan hizmetini yeniden başlatmanız gerekiyor. Saldırgan komutanın yardımı için savaşmak için:
Yeniden Başlatma Hizmeti winrm

Benzer bir eylem, vikonati z-pіd DOS olabilir. winrm-? komutunu çalıştırın. Takım hakkında genel bir yorum yapabilirsiniz. TrustedHosts değerine daha kesin olarak bakmak için şu komutu izleyin:

winrm winrm/config/istemci al

ve değeri ayarlamak için - aşağıdaki vikonaty:

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

Daha fazla komut için, TrustedHosts için “*” sembolünün anlamı olarak, ancak bunun yerine belirli sunucuların adlarını belirtebilirsiniz. TrustedHosts'u denetlemek, bağlantıya PowerShell devre dışı bırakmalarını "Al" ve "Ayarla" koymanın klasik bir yoludur: Get-Item ve Set-Item yazabilirsiniz.
Uzak PowerShell 2.0 Oturumu Oluşturma ve Sonlandırma
Aşağıdaki komutlarda, "IpAdresi" değişikliğini gerekli IP adresine ve "FQDN" değişikliğini Tam Nitelikli Etki Alanı Adına ayarlayın:

Enter-PSSession IpAdresi

Enter-PSSession FQDN

Uzak bir robot oturumunu sonlandırmak için şu komutu izleyin:

Enter-PSSession komutu için daha fazla.name.domain.name gerekiyor. Örneğin, MyServer.domain.local durumunda, basit bir MyServer girişi çalışmayacaktır, ancak bu gibi durumlarda IP adresi seçimi her zaman iyi sonuç verecektir. Alternatif PSSession yöntemi:

Yeni-PSSession-bilgisayar adı testMachine2 Get-PSSession

Bu oturumun çalışmasını şu şekilde tamamlayabilirsiniz:

Get-PSSession | kaldır-PSSession

Robota uzaktan itiraz etmek istiyorsanız, başka bir makineniz yoksa, bilgisayarınızın kendinize "uzaktan bağlantısını" oluşturun. Örneğin, makinenizin adı MyMachine ise, şunu deneyin:

Yeni-PSSession -bilgisayar adı MyMachine

Size garip ve mantıksız gelebilir, ancak bu şekilde PowerShell 2.0'da uzaktan çalışmayı deneyebilirsiniz.

Uzak PowerShell 2.0 oturumlarında çalışın
Uzak bir bağlantı kurduktan sonra, onları PowerShell 2.0 konsolunda çalıştıran komut ardışık düzenlerini düzenleyebilirsiniz ve yaparsanız, uzak bir makinede pis kokular alabilirsiniz, ancak klavyede olmanız ve komutları buraya değil, oraya yazmanız gerekir. Örneğin, aşağıdaki komutu çalıştırın ve çalışmanın sonucunu görün:

Ayar-Konum c:\ | Get-childitem

Bu ilk yardımın ana görevi, PowerShell 2.0'ın bir uzak bağlantı oturumu oluşturmanıza ve nasıl kapatılacağını göstermenize yardımcı olmaktır, o zaman bunu kendiniz yapmak zorunda kalacaksınız, işlemler gibi, uzak bağlantının sonuna kadar bekleyemezsiniz. .

Not
Bir komut gibi uzak bir bağlantı oturumunuz olup olmadığını merak ediyorsanız - yerel makinenizde arka arkaya protesto edin.

Uzak bir bağlantıya ihtiyacınız olmadığı sürece, ağınıza bağlı bilgisayarlarla keruvane için PowerShell 2.0 kazanmanızı sağlar. Artık diğer makinelerin senaryolarını görebilirsiniz. PowerShell 2.0, "-computerName" parametresini kırpmak için çok sayıda cmdlet'e sahiptir, ancak gelecekte, PSSession ailesinden komutlar kazanmanıza ve ayrıca Invoke-Command'ı çağırmanıza olanak tanır (böylece her şeyi her zaman çalıştırabilirsiniz) .

PowerShell 2.0'ın uzaktan çalışma sürecinde suçlanan sorunlar hakkında bilgi edinin

1 tipik sorun– ONARIM "Erişim reddedildi" (erişim reddedildi).

Çözüm:
PowerShell 2.0'ı yönetici olarak çalıştırın. Her iki makinede de deneyin (bağlandığınız ve bağlandığınız makinede) "TrustedHosts" değerini * (z) olarak ayarlayın. Bu seçeneğin sesi bağlamanıza izin verdiğini unutmayın.
WinRm hizmetini yeniden başlatmayı unutmayın, aksi takdirde "TrustedHosts" için "TrustedHosts"u değiştiremezsiniz. Hizmeti yeniden başlatmak için PowerShell 2.0 konsolunda aşağıdaki komutu çalıştırın: Restart-Service WinRm
Ayrıca, saygılı olun ve WSMan sağlayıcısının adını WinRm hizmetinin adıyla karıştırmayın.
Bir başka harika, ancak bazen ek bir sevinç: Uzak bağlantı testini tekrarlamayı deneyin. Bu harika, ama ilk numuneyi isteyemezsiniz, ancak başka bir veya üçüncü numuneyi isteyebilirsiniz. Tobto. komutu tekrarlamanız gerekir: Enter-PSSession -bilgisayarAdı myOtherMachineName

Güvenlik Duvarı, PowerShell 2.0 ve "rpc sunucusu kullanılamıyor" ( RPC sunucusu müsait değil)
Zhahu'daki Fakhіvtsі z z bezpeka, böyle bir teklifte ellerinizi kaldırın, ancak, atanan daha fazla af sırasında, her iki bilgisayarda da güvenlik duvarını açmanızı söyleyeceğim. Her şey etkinse, o zaman iyidir, bu, 135 ve 445 numaralı bağlantı noktalarının ayarlarının değiştirilmesi gerektiği anlamına gelir. Bu bağlantı noktalarının güvenlik duvarlarında etkinleştirilmesi için ayarlayın - PowerShell 2.0'ı etkinleştirmek için

not Enable-PSRemoting komutunun alınabileceğini okudum otomatik olarak girildi güvenlik duvarını değiştir ama bence böyle bırakma.
Bunlar hakkında, yardım için Grup ilkesi Windows 8'de güvenlik duvarını etkinleştirin, okuyun.

Uzak PowerShell 2.0 için eşleştirilen iki teepe
PowerShell 2.0'da uzaktan çalışma için iki seçeneği nasıl keşfedeceğinizi göstermenin zamanı geldi.
İlk yol, cmdlet'lerin oluşturulduğu ve başka bir makineye sabit bir kanal oluşturan vitonchenish bir varyasyondur. Bu tür komutların adları, ad olarak "PSSession" kelimesiyle değiştirilir (sanırım cmdlet'lerin adları "Dieslovo-Name" kuralını izleyecektir). Aşağıdaki komutu kullanarak bu cmdlet'lerin çevirisini kaldırabilirsiniz:

Get-Command -isim PSSession

Diğer yol da PowerShell 2.0 uzaktan çalışmasının kurallı biçimidir. Tsey yolu basitçe yerel komutları genişleterek, onlara "-computerName" parametresini ekleyerek, bunun için bilgisayarın genişletilmesi gerektiğini ve bunun üzerinde işlemi yürütmesi gerektiğini belirtir. Sonuç olarak, bu komutlar dizideki başka bir makinede çalıştırılacaktır:

Get-Process -bilgisayarAdı makine2

Alternatif cmdlet, bu kadar basit bir yöntemi kullanabilmeniz için (sessizdir, deponuzda "-computerName" parametresini kullanabilirsiniz) yardım için aşağıdaki komutu kullanabilirsiniz:

alma komutu | nerede ( $_.parameters.keys -"BilgisayarAdı"nı içerir)

Başka bir yöntemle takip edilebilecek en son cmdlet değişikliği şu şekilde değiştirilebilir:

alma komutu | nerede ( $_.parameters.keys -"BilgisayarAdı" içerir -ve ($_.parameters.keys -notContains "Oturum")

PowerShell 2.0'daki vіddalena robotu hakkında Pidbivaemo pіdpomok
İşin sırrı, ana konuşmaları anlaması gerekenler için gelecekte yardım için PowerShell 2.0 kullanması gerekenler için:
Ardından WinRm'i yükleyin.
Enable-PSRemoting komutunun yardımı için uzaktan etkileşimi etkinleştirmeniz gerekir.
TrustedHosts kurmak gereklidir (örneğin, değer * olarak ayarlayın).
Enter-PSSession komutunu seçtiğinizde, düğüm adını veya IP adresini belirtmeyi unutmayın.

Anglomovna dzherelo vikladenї ve benim tarafımdan işlenen bilgiler.

# Uzak makineye yeni bir bağlantı oturumu oluşturun $s = Yeni-PSSession -bilgisayar adı TestBilgisayar

# Uzak bir makinedeki Vikonuemo bunu yapın, örneğin - C dizinine hayret ederek:
Invoke-Command -Session $s -ScriptBlock (ls c:\)

# "%ProgramFiles%\MyCompany\MySoft" uzak makine dizininde oluşturuldu
Invoke-Command -Session $s -ScriptBlock (Yeni-Item -Path "$env:ProgramFiles\MyCompany\MySoft" -ItemType dizini)

# Prote, komutları manuel olarak yazmamak daha iyidir, ancak uzak bir makinede çalıştırmak için komut dosyası zaten hazırdır:
Invoke-Command -Session $s -FilePath "\\ServerDir\Common Scripts\MyScript.ps1"

# Oturum sonu
$s | kaldır-PSSession

04.03.2011 Bill Stewart

sürüm Windows PowerShell'i Uzak bilgisayarlara bağlanmak için uzaktan iletişim adı verilen alternatif bir mekanizmanın 2.0 uygulaması. Zafer hizmetinin tüm mekanizması uzaktan bakım Windows (Windows Uzaktan Yönetim, WinRM). Win, uzak bir bilgisayara bağlanmayı ve o uzak bilgisayara bağlı komutların başlatılmasını güvence altına alır.

PowerShell 1.0 kabuğunun geliştirilmesi, Windows XP'nin çekirdeğinin ve otomasyonunun yanı sıra Windows işletim sistemi platformunun en son sürümlerinin geliştirilmesinde bir atılım haline geldi. Yaka, platforma dayanmaktadır. NET Framework PowerShell 1.0 teknolojisi, tek kişilik bir komut yapısı (cmdlet'ler) içerir, çıktı verilerini biçimlendirmek ve diğer teknolojilerin kullanılabilirliğinin önemli ölçüde ilerlemesini sağlamak için sıkı çalışma ile donatılmıştır ve iletiyoruz - іnstrumentarіyu Windows yönetimi(WMI). Ancak, PowerShell 1.0 komutlarını depolamak istiyorsanız, o nesne. NET uzak bilgisayarlara bağlanabilir ve işlev, belirli bir türe bağlı olarak farklı şekilde uygulanır. pіdtremuyut vіddalenі z'єdnannya, mayut -ComputerName; Ek olarak, sistem kurulduğunda, pis koku vikoristovuyut vikliki vіddalennyh prosedürleri (RPC) veya DCOM modeli.

Çeşitli RPC ve DCOM durumlarında, yönetimle başa çıkmak, muzaffer teşhis prosedürlerinde korunmak ve arızaların nedenleri tespit edilirse bazen sorunları suçlamak iyidir. Örneğin, Get-Service komutu -ComputerName parametresi yardımıyla uzak bir bilgisayardan servis verilerini okuyabilir, process komutunun bir -Credential parametresi yoktur, birim için kaydedilmelidir. yüz kaydı, uzak sisteme erişime izin verebilir.

bira zaten Windows sürümleri PowerShell 2.0, uzak bilgisayarlara bağlanmak için uzaktan iletişim adı verilen alternatif bir mekanizma uygular. Bu, Windows Uzaktan Gözetim Hizmetinin (Windows Uzaktan Yönetim, WinRM) muzaffer çalışma mekanizmasıdır. Win, uzak bir bilgisayara bağlanmanın yanı sıra o uzak bilgisayara bağlı komutların başlatılmasını sağlar. Bir örnekle açıklayayım. Coristuvacha'nın grafik arayüzüne, tıpkı PowerShell komut satırına uzaktan bağlı olduğu gibi ulaşmak için uzak çalışma masasına bağlanmayı mümkün kılın. Uzak etkileşim için ek bir mekanizma için bir ambar komutu çalıştırırsanız, komut aslında uzak bir bilgisayarda yürütülür, ancak sonuçları yine de yerel bir makinede alabilirsiniz.

Windows PowerShell 2.0'ı nerede kullanabilirsiniz?

PowerShell 2.0 kabuğu ve WinRM hizmeti, Windows 7 ve Windows Server 2008 R2 sistemlerinin stoğuna dahildir, dolayısıyla bu bileşenlerin yüklenmesine gerek yoktur. Sistemlerle nasıl çalışıyorsunuz? Windows Vista SP2, Windows XP SP3, Windows Server 2008 SP2 veya Windows Server 2003 SP2, Windows Management Framework Core paketini (support.microsoft.com/kb/968930) yüklemeniz gerekir.

Birbirleri arasındaki mesafede artan fonksiyonlar

Bilgisayarın PowerShell kabuğunun kurulu olduğu diğer sistemlerle bağlantı kurabilmesi için böyle bir zihnin sağlanması gerekir.

  1. WinRM hizmetini etkinleştirmeniz gerekir.
  2. Bir veya diğer IP adresinden gelen çağrıları alacak bir WinRM dinleyicisi kurmanız gerekir.
  3. Merezheviy pencere ekranı suçlu buti nalashtovaniya böyle bir rütbe, schob z' WinRM aracılığıyla mozhlivist vstanovlenya z'ednan göründü.
  4. Son fakat en az değil, PowerShell oturumunun normal tamamlanma töreni.

Bir bilgisayar olarak, başka bilgisayarlarda kurulu olan PowerShell'in kabuklarını tanımak mümkün değildir, zihin dilini değiştirmek gerekir.

Bilgisayar korsanlarının robota daha kolay anlatabilmesi için Microsoft PowerShell perakendecileri, tahmin edilen bileşenlerin otomatik olarak yapılandırılmasını sağlayan Enable-PSRemoting komutunu oluşturdu. Uzaktan çalışacağınız araba ile değil, uzaktan seyahat edeceğiniz bir bilgisayarda düzeltmeniz gerekir. PowerShell kabuğunu yönetici haklarıyla çalıştırdığınız için Enable-PSRemoting komutunu yalnızca bu şekilde çalıştırabilirsiniz. nasıl çalışıyorsun Windows makineleri Vista, Server 2008 ve daha yeni sürümler, sağ düğme PowerShell simgesine tıklayın ve menüden Yönetici olarak çalıştır'ı seçin. Enable-PSRemoting komutunu -Force parametresi ile çalıştırırsanız, başarısız olursa, dış görünüm yapılandırma adımını silme izni için sistem sizinle iletişime geçmeyecektir. Ambar komutu Enable-PSRemoting hakkındaki raporları görüntülemek için, komuta tıklayın

Get-Help Enable-PSRemoting

Uzak bir bilgisayarda bir komutu izlemek

Uzak bir bilgisayardaki PowerShell ortamına bağlanmanın en kolay yolu, Enter-PSSession komutuyla erişmektir. Yazdıktan sonra komut -ComputerName parametresine bağlanır, böylece klavyeden girildiğinde parametre atlanabilir. Örneğin, rigel adında bir uzak bilgisayar kurmak için klavyeden girmeniz gerekir.

PS C:\> Enter-PSSession cihazı

Saygınızı kazanın: bütünlük adına, istek metnini kazıyorum. Komutun istenen bölümünü girmenize gerek yoktur.

Bir uzak oturum girildiğinde, PowerShell istek sözdizimi değişir. Artık uzak bilgisayarın kare kollarına dahil edilmeyecek; Bu, uzak bir bilgisayar yüklediğiniz anlamına gelir. Bu görünümde, istenen görünüm şöyle görünür:

: Not C:\>

Uzak bağlantı kurulumundan sonra, komut satırına girdiğiniz tüm komutlar uzak makinede görüntülenecektir. Yani, komutu girerseniz

: Not C:\> Get-ChildItem C:\

Get-ChildItem komutu uzak makinede devre dışı bırakılacaktır. Veriler, uzak bilgisayarın C deposundan kaydedilen dosya ve klasör adlarından kaldırılacaktır. Oturumu uzak modda sonlandırmak için Exit-PSSession komutuyla acele edin

: PS C:\> Çıkış-PSSession

Uzak bir bilgisayarda bir Scriptblock izleme

Podpomogoyu için Vidalenya vzaєmodіya PowerShell, uzak bir bilgisayar blok komut dosyasında veya komut dosyası bloğunda vykonuvaty'ye izin verir (PowerShell kodunu engellemek, yay şeklinde istifleme). Bunun için Invoke-Command komutunu -ComputerName parametresiyle hızlandırmak gerekir. Örneğin, ekran 1'de görüntülenen komut için, uzak bilgisayarda Get-ChildItem'i geçersiz kılmak için Invoke-Command komutunu geçersiz kılıyorum. Ekran 1'e bakarak, ondan önce uzak bilgisayardan bağlantıyı kurmak için script bloğunu nasıl çalıştıracağımı unutmayın, Enter-PSSession komutunu kazanmadım. Enter-PSSession ve Invoke-Command komutları, uzaktan etkileşim için iki farklı yöntemdir.

Invoke-Command'ın ilk parametresi -ScriptBlock'tur; Vіn, vikonati'nin seçildiği kodu belirtir. 1. ekranda, -ScriptBlock parametresinin adı atlanarak, parçalar bağlayıcı olmayan bir dilde işlenir. -ComputerName parametresi, uzak bilgisayarın adını değiştirir. Çıkış verilerinde Get-ChildItem komutunu nasıl kullanabilirsiniz, operatör şeffaflığının çıkış verilerinin PSComputerName sütununda uzak bilgisayarın adını belirtmek için gezinmesi için bir PowerShell ortamı.

Çok sayıda uzak bilgisayarda komut dosyası bloğunu izlemek

Komut dosyası bloğu istediğiniz kadar bilgisayarda çalıştırılabilir. Tse, "birden zengine" konfigürasyon veya boğaz şişesi olarak adlandırılır. 1. ekranda, Invoke-Command komutunun -ComputerName parametresi bir adı değiştirebilir, ancak birkaç bilgisayar adını yenisiyle değiştirmek mümkündür. evet, takım

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

Get-ChildItem komutunun iki uzak bilgisayarda çalıştığından emin olun. Makalenin metninde, komut bir dizi satıra bölünmüştür, ancak PowerShell konsolunda aşağıdakini bir satıra girin. Bunlar diğer takımlar için aynıdır, çaça sıralarına bölünmüştür. Yani, 1. ekrandaki gibi, çıktı verilerindeki PSComputerName aynı bilgisayar adlarıdır.

Arka plan modunda komut dosyası bloğunu izlemek

PowerShell 2.0, bir operatörün arka planda bir komut çalıştırabilmesi için arka plan işlerini çalıştırmanıza olanak tanır. Böyle bir olasılık, bir saatin tamamlanması gereken komutları başlatmak için bir saat gereklidir.

Yerel bilgisayarda bir arka plan işi çalıştırmak için İş Başlat komutunu çalıştırabilirsiniz. Ancak, komutun -ComputerName parametresine sahip olmadığını, ancak uzak makinede arka plan işini çalıştırmak için dövülemeyeceği anlamına geldiğini söylemek gerekir. Şimdilik, Invoke-Command komutunu -AsJob parametresiyle yazmanız gerekecek. Böylece, ekran 2'deki top komutu, uzak bilgisayar titanındaki arka plan görevinin önünde bir komut dosyası bloğu başlatır. Ondan sonra bu komutu girerken ekranda bir istek belirdi: PowerShell kabuğu bilgisayarın uzaktan kontrolü için script bloğunu çalıştırdı ve ondan sonra kontrol bana döndü. Önceden, viconan komutunun son konsola sığmadığı ve dış verilere dahil edilmeyenler var. Yakby vykno konsolu Komutu çıktı verileri listesine ekleyerek daha geniş, zasib formatuvannya PowerShell kabuğuna sahiptim. Kimlik ve Ad sütunlarında görev belirtilir (tanımlayıcınız ve anlaşılır adınız açıktır) ve Durum sütunları görev istasyonunda belirtilir: kontrol edildi, askıya alındı, tamamlandı. HasMoreData sağlayıcısı, tüm verileri kontrol edenler hakkında, bir sonraki göreve ihtiyaç olduğunu veya görevin bir zafer izi gibi daha büyük miktarda veriyi telafi etmek olduğunu bildirecek bilgilere sahiptir.

Arka plan işinin bittiğinden emin olmak için, ekran 2'de başka bir komut göstermek için Get-Job komutunu çalıştırabilirsiniz. Parametreleri geçersiz kılmazsanız, Get-Job, akış oturumunun her saatinde çalışan tüm işleri geçersiz kılar. . Bir kerede görevin bir özetini kazanmak istiyorsanız, değiştirmek istediğiniz görevin kendisi gibi görev için -Id veya -Name gibi parametreleri kazanabilirsiniz. Arka plan görevi tamamlandıysa, Arka plan görevinin Durumu Tamamlandı olarak ayarlanır.

Arka plan işinin sonuçlarını okumak için Alma-İşi'ni işaretleyebilirsiniz. Get-Job gibi bu komut, akış oturumunun her saatinde başlayan tüm işlerin çıktısını döndürür, çünkü parametreyi işin kendisinin arayacaklarını ayarlamak için geçersiz kılmadınız. Bu nedenle, ekran 2'deki komutun geri kalanı, tanımlayıcı 9 ile görev hakkında verilen verilerin dikkate alınması gerektiğini belirten -Id parametresini içerir. dili belirtin. Ekran 3'te, bakılmakta olan uzak arka plan ekranının üzerinde gezinen hafta sonu verilerinin kalan satırları görüntülenir.

PowerShell'de Oturum Oluşturma

Uzak PowerShell makinelerinde isteğe nasıl erişileceğini ve uzak bilgisayarlarda komutların nasıl yürütüleceğini göstermek için daha yakından gösterin. Ale, şimdilik etkileşimden uzak olanlar düşünülmeden, seans bağlamında oluşturuluyor. Oturum, diyelim ki, PowerShell'in yaşadığı yerdir. PowerShell konsol penceresini veya PowerShell Tümleşik Komut Dosyası Ortamı (ISE) penceresini açtığınızda bir oturum oluşturursunuz. Uzak bağlantı yardımı olmadan, tüm oturumlar yerel bilgisayarda tutulur ve yan yana uzanır. Daha fazla izmarit hedeflenen tümünde, uzak karşılıklı modalitede, uzak karşılıklı modalitenin tamamlanmasından sonra otomatik olarak eklendiği için zamana dayalı seanslar oluşturulur. Ek olarak, uzak bir ilişkide oturum örnekleri oluşturmak ve onları yeniden kazanmak gerçekten mümkün. Böyle bir pidhid, uzak bilgisayarlara bir kereden fazla ulaşmak gerekirse, arıza durumunda daha etkilidir.

Yeni oturumlar oluşturmak için -ComputerName parametresiyle New-PSSession komutunu kullanın. Komutlarda bu parametrenin adı atlanabilir. evet, takım

C:\> $sessions = Yeni-PSSession fineas, ferb, perry

Phineas, ferb ve perry adlı üç bilgisayarda üç oturum oluşturuyorum. $sessions öğesini değiştirerek oturumlarınızı görüntüleyebilirsiniz. Kimler için komut satırına im'ya girmek gerekiyor

$oturum

ve enter tuşuna basın. Invoke-Command komutunun -Session parametresi, New-PSSession komutunun yardımıyla oluşturulan oturum nesnesini çıkarır, böylece komutu saldırgan olana benzer şekilde bükebilirsiniz:

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

Bu komut, phineas, ferb ve perry makinelerinde Get-ChildItem komutunda başarısız olur, ancak günü açmaz. -AsJob parametresini arka plan modunda komuta ekleyebilirsiniz:

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

Çalışmak için yeni pidhid

Podpomogoyu zasobіv PowerShell için Vіddalena vzaimodiya - vіddalennyh bilgisayarlarda vykonannya komutlarının yeni sıkı mekanizmasının fiyatı. Ben spodіvayus, tsya statya sizi doslіdzhennya yeni fırsatlar konusunda teşvik ediyor. Tanılama sorunları da dahil olmak üzere uzaktan birlikte çalışabilirlik raporları, technet.microsoft.com/en-us/library/dd347616.aspx adresindeki about_Remote ile ilgili gelişmiş PowerShell konularında bulunabilir.

Bill Stuart ( [e-posta korumalı]) - French Mortuary, New Mexico şirketinin sistem yöneticisi



  • öğretici

Minimum teori vardır, en önemli kısım pratiktir. WinRM'nin nasıl kurulacağını, bir profilin nasıl değiştirileceğini açıklayın dimi adaptörü, script filtreleme ile TrustedHosts'a eklenmek üzere verilir, güvenilir ana bilgisayar ihtiyacına göre açıklanır ve yüzeysel olarak bakılır. uzak bağlantı böylece bulo sistemi ve vіdrazu vіdminiti vіddalenі arabaları yapabilirsiniz.

Vikonati'nin yönetimini uzaktan yapılandırmanın en basit yolu Enable-PSRemoting bir yöneticinin haklarıyla yaşayan obolontsi'de. Bu hale geldiğinde:

  • WinRM hizmetini başlatın (yeniden başlatmaya başladığında)
  • WinRM hizmeti kampa gidiyor - başlangıçta otomatik başlatma
  • için WinRM'nin gizlice dinlenmesi ile oluşturulacaktır. http liman trafiği 5985 tüm yerel IP adresleri için
  • WinRM dinleyicisi için bir güvenlik duvarı kuralı oluşturulacaktır. Saygılar, bu öğe en kısa sürede tamamlanacak, sadece birleştirme kartlarından olsa bile, birleştirme türü “genel”dir, çünkü Böyle bir kartta port açmak iyi değil. Konfigürasyon yaparken böyle bir affınız varsa, ağ profilini bir cmdlet ile değiştirin. Set-NetConnectionProfile ve ardından Enable-PSRemoting'i yeniden çalıştırın. "Kamu hazinesi" profiline sahip bağlı bir karta ihtiyacınız varsa, Enable-PSRemoting parametresini çalıştırın -SkipNetworkProfileKontrol hangisi daha az güvenlik duvarı kurallarına sahip olacak? yerel hatlar.
Gerekirse o makineden kontrolün gerekli olduğu uzaktaki makineye bağlanmak mümkündür. Zrobleno tse z metoyu güvenliği, uzak keruvannya'nın kötü oturumu riskini değiştirmek veya uzak makineyi değiştirmek için kendini kanıtlayan DNS ve sizin gibi makinelerde zapobigti vykonannya skriptiv, sizin gibi primusovo izin verilmez.

vikoristovuemo'yu nereye bağlayabileceğinizi yeniden doğrulamak için:
get-item wsman:\localhost\Client\TrustedHosts
hepsine bağlanmanıza izin vermek için
set-item wsman:localhost\client\trustedhosts -değer *
Tüm belirtilenler için erişimi etkinleştirirseniz * WinRM, yeniden kablolama yapmadan TÜM makinelere bağlanacaktır. Yerel boyutun potansiyel kötülüğü için kendinize ne söylediğinizi hatırlayın. Kısacası, bağlanmanız gereken ana bilgisayar adreslerini belirtin, ardından WinRM diğer tüm adreslere veya adlara izin verecektir. Bir makine yönetiliyorsa, o etki alanındaki tüm makinelere güvendiği bir etki alanında olmalıdır. Etki alanında veya başka bir etki alanında değilse, adresi TrustedHosts'a girmek gerekir, aksi takdirde makine ona bağlanır. Bağlantımız kesilene kadar araba ile kendinize ekleyin.

Yardım komutları verildi, birkaçını komut dosyasından yeniden oluşturdum
################################################# ################################### # NewHost'u filtreleme ile TrustedHost listesine ekleyin, böylece bu satır zaten olabilir # smicati z Komut satırı parametreyi ortadaki olmadan belirtme #.\Add-TrustedHost.ps1 192.168.2.1 ############################### ### ############################################## ## # param ($NewHost = "192.168.2.89") Write-Host "host ekleme: $NewHost" $prev = (get-item WSMan:\localhost\Client\TrustedHosts).value if (($prev.Contains( $NewHost) )) -eq $false) ( if ($prev -eq "") ( set-item WSMan:\localhost\Client\TrustedHosts -Value "(!LANG:(!LANG:$NewHost)" } else { set-item WSMan:\localhost\Client\TrustedHosts -Value "$önceki, $YeniAna Bilgisayar" } } Write-Host "" Write-Host "Now TrustedHosts contains:" (get-item WSMan:\localhost\Client\TrustedHosts).value !} !}
vіn revіryає chi є böyle bir rekor, sanki listeye hiçbir şey eklemiyormuş gibi. Adres veya isim girilerek komut satırından arama yapılabilir.

Є ryznitsya kazuvati im'ya chi adresi. Yalnızca TrustedHosts'ta adresler varsa, oturumu ada göre açın ve görünmez ve navpaki - im'ya belirtirseniz, görünmez adrese ekleyin. Arayın.

neden farklı

Enable-PSRemoting daha fazla diy, daha düşük "winrm quickconfig" soyar. Set-WSManQuickConfig cmdlet'i "winrm quickconfig" ile aynı şekilde çalışır. Sistemi yapılandırdıysanız Enable-PSRemoting Set-WSManQuickConfig'i çalıştırır

Uzak bağlantı
1. Oturumlar 1'e 1
ekip tarafından bağırdı
Enter-PSSession -BilgisayarAdı Testi
Kasayı uzak bir makinede çıkarıyorsunuz. localhost girerek kendinize bağlanabilirsiniz. Alternatif krediler parametre ile atanır -Kimlik, cmdlet tarafından çıkıldı çıkış-PSSession

Bunun gibi değiş tokuş yapın:

  • başka bir saç kesimi yapmak mümkün değil - 1 seanstan az, seansın ortasında daha fazla bağlanmak mümkün değil
  • Grafiksel bir arayüz oluşturmak için komutlar kazanamazsınız. Kabuğu asılı yapmak istiyorsanız, asmak için Ctrl + C tuşlarına basın
  • kendi komutlarınızı çalıştırabilen komutları çalıştıramazsınız, örneğin nslookup, netsh
  • politika, uzak bir makinede çalıştırılmalarına izin verdiği için komut dosyalarını çalıştırabilirsiniz
  • etkileşimli oturuma katılamıyor, "ağ oturum açma" gibi gidiyorsun birleştirilmiş diske bağlı nibi Tom oturum açma komut dosyasını çalıştırmaz ve uzak makinedeki ana klasörü alamazsınız (argüman ana klasörü ve oturum açma komut dosyalarını eşlemek değildir)
  • Orada aynı şarapları bulmak için uzak makinedeki muhabirle etkileşime giremezsiniz. Sonunda size göstermek veya sizinle arkadaş olmak için acele etmeyin.
Bu yöntem, sunucuyu alıp bağladıktan sonra basit işlemler için en iyisidir, zaishov. Kalabalıktaki değişiklikleri ortadan kaldırmanız gerekiyorsa, üçlü bir operasyona ihtiyacınız var (birçok yıl veya daha fazla gün), uygulama için daha fazla fırsata ihtiyacınız var, o zaman tekniği sorarak kazanmanız gerekiyor.
Yorum.
ağdan geçen nesneler oluşur ve canlılığı sona erer. Yöntemlere göre pis kokular görülüyor, yetkililer terk ediliyor. Arabanızda Vityagti ob'єkt, pochakluvat ve geri itmeyin. Daha fazla yazmak gerekirse, hemen ekleyeceğim.

2. Oturumlar 1'den çoğa
Invoke-Komut
görebildiğimizi şu şekilde ifade ederiz:
$sb = (koma ile ayrılmış uzak makine komutları)
uzak makinelere aktarıldı Test1 ve Test2
Invoke-Command -BilgisayarAdı Test1, Test2 -ScriptBlock $sb
Bir seferde 32 arabaya atabilirsiniz. Alternatif bir kredi olarak, -Credential parametresi galip gelir

-ScriptBlock parametresini değiştirmek üzere betiği tekrar aktarmak için -FilePath yazın, uzak makinede dosyaya erişim gerekli DEĞİLDİR, yedek parça düzenlemesi, HTTP üzerinden aktarımlar ve bu taraftan kapatma olacaktır.

O tarafta yeni bir osprey olacağını unutmayın, bu nedenle komut dosyanız konsolunuzdaki değeri geçersiz kılmaz ve değiştirilen komut dosyaları boş görünebilir. Bunun için hazır talimatlar ve parametrelerle komut dosyaları gönderin.

Invoke-Command'ın tamamen yeniden yazılması için satırları komut dosyası bloklarına değiştirmeniz gerekir. Örneğin, böyle bir listede yatma komutunuz var, bir satır oluşturmanız, onu ScriptBlock'a dönüştürmeniz ve uzak bilgisayara göndermeniz gerekiyor:
$sb = ::Oluştur($SomeString)
kuda78
Makale başka bir önemli anı atladı - parametrelerin komut dosyasından uzak makineye aktarılması.

$deployRemote = (
param(
$targetEnvName,
$hedefKullanıcı adı)
$Global:ErrorActionPreference = "Dur"
#…
}

Invoke-Command -Session $session -ScriptBlock $deployRemote -ArgumentList($targetEnvName, $targetUsername)


Yani gerçek ihmaller. Zrobiv svidomo, parametreler ve açıklamalarla bir bakışta rahatsız etmemek için. Teşekkür ederim. -ArgumentList parametresi hem komut dosyası bloklarıyla hem de komut dosyalarıyla çalışır

3. Oturumlar
Bu taraftan, bellekte kalıcı olarak asmak için bir vishik kopyası oluşturulur ve ona komutlar gönderilir. Sonuç olarak, ona yeniden bağlanmak, bir vikonannya için cenity'yi başlatmak, farklı senaryolar veya farklı coristuvache'ler kullanmak mümkündür. Örneğin, skіvіv skіvіv, scho vіrіshuyu bir zavdannya parçalar halinde, onlardan zhrі üzerinde kozhі, ileri komutların çalışmalarının sonuçlarını, bir zavantagennі modülünün annesi, zminzaіnі modüllerinin annesi, zminzaіnі modüllerinin annesi, otochennya.

Oturum, New-PSSession cmdlet'i tarafından oluşturulur, değişiklikle sonuç kaydedilebilir
$DC01 = Yeni-PSSession -BilgisayarAdı DC01 $Denetleyiciler = Yeni-PSSession DC01, DC02, DC03
Invoke-Command ile aynı bağlantı parametrelerini kullanabilirsiniz.

Yak vikoristovuvati:
Yakscho 1'e 1
Enter-PSSession -Session $DC01
Yakscho 1-çok
Invoke-Command -Sessions $Controllers -ScriptBlock (get-eventlog -logname security -en yeni 50)
Yardım Get-PSSession için oturumu görüp görmediğinizi görebilirsiniz, Remove-PSSession'ı kapatın
tüm oturumları kapat
Get-PSSession | Kaldır-PSSession
oturuma Connect-PSSession yardımı ile bağlanabilirsiniz, Disconnect-PSSession ile bağlanabilirsiniz

Invoke-Command bağlantısı kesilmiş bir oturumu hemen oluşturabilir, uyanmak ve bağlanmak için komutları çalıştırabilir, daha sonra yeniden bağlanabilir ve çalışmanın sonuçlarını alabilirsiniz. -Disconnected parametresiyle savaşın. Sonuçları Recieve-PSSession cmdlet'i aracılığıyla alma.

Oturumlar zengin bir şekilde özelleştirilebilir, bir dizi komut, modül vb. ile oturumlar oluşturmak mümkündür. Özel uç noktalar olarak adlandırılır

Özet: Windows PowerShell'in sürdürülebilirliğini anlama.

Hafta Sonu Komut Dosyası: Windows uzak karakter aralığını etkinleştirir.

Microsoft Scripting Guy, Ed Wilson görev başında. Bugün, Microsoft Press'e benzeyen yeni Windows PowerShell 3.0 Adım Adım kitabımdan bir alıntı yayınlayacağım. Aynı zamanda, kitap önceden rezervasyon için kullanılabilir.

WinRM - Windows Çekirdeğini Kaldır

Windows Server 2012'de WinRM, çalışmasını sağlamak için kilidin arkasında çalışıyor Windows komutları Güç kalkanı. WinRM, Microsoft'un WS-Management Protocol endüstri standardı uygulamasıdır. Bu nedenle WinRM, uzak sistemlere bir bakışta erişmenin kullanışlı bir yoluna sahiptir, güvenlik duvarını kapatmayı başardı. Yeni CIM komutlarını kazanan aynı mekanizma. Bu şekilde, komutları çalıştırmak veya etkileşimli bir Windows PowerShell konsolu açmak için çalışan bir Windows Server 2012 makinesine bağlanabilirsiniz. Windows 8'de diğer tarafta WinRM kilitlenir. Sırada ne olduğu, ne yapılması gerektiği anlamına gelmez, ardından cmdlet'i çalıştırın Enable-PSRemoting. Bu cmdlet'i çalıştırırken aşağıdaki satırlar görüntülenir:

1. WinRM hizmetini başlatın veya yeniden başlatın.

2. Hizmet başlatma türü WinRM otomatik olarak yüklenir.

3. Tüm IP adresleri için bağlantıları almak üzere bir dinleyici oluşturulur.

4. WS-Man trafiği için güvenlik duvarını kapatın.

5. Yüklenen Microsoft.powershell yapılandırması

6. Yüklenen Microsoft.powershell.workflow yapılandırması

7. Yüklenen Microsoft.powershell32 yapılandırması

Bu süreci esneterek, cildin durumunu iyileştirmeye enerji verme işlevi. Eğer fonksiyonun ne olduğunu biliyorsanız ve öncesinde değişiklik yapmak istemiyorsanız tuşu ile bu komutu çalıştırabilirsiniz. -Kuvvet ve bu şekilde, onay gösterilmez. Bu komutun sözdizimi aşağıda listelenmiştir.

Enable-PSRemoting –Force

Şimdi Enable-PSRemoting işlevini, görüntülenen tüm bilgiler dahil olmak üzere etkileşimli moda koyalım.

PS C:\> Etkinleştir-PSRemoting

WinRM Hızlı Yapılandırma

Windows Uzaktan Yönetim (WinRM) Hizmeti yardımı ile bu programın verimli bir şekilde yönetilmesini sağlamak için "Set-WSManQuickConfig" düğmesine basmak. Bu içerir:

1. WinRM hizmetini başlatma veya yeniden başlatma (önceden başlatılmışsa)

2. WinRM hizmeti başlatma türünü Otomatik olarak ayarlama

3. Herhangi bir IP adresindeki istekleri kabul etmek için bir dinleyici oluşturma

4. WS-Management trafiği için Windows Güvenlik Duvarı sıralı istisna kurallarını etkinleştirme (yalnızca http için).

Devam etmek istiyor musun?

WinRM, istekleri alacak şekilde güncellenebilir.

WinRM Hizmet türü başarıyla değiştirildi.

WinRM Hizmeti başladı.

WinRM, uzaktan yönetim için güncellenebilir.

Bu makinedeki herhangi bir IP'ye WS-Man istekleri için HTTP://* üzerinde bir WinRM dinleyicisi oluşturuldu.

WinRM Güvenlik Duvarı istisnası etkinleştirildi.

microsoft.powershell SDDL:

[Y] Evet [A] Tümüne Evet [N] Hayır [L] Tümüne Hayır [S] Askıya Al [?] Yardım (varsayılan "Y"'dir):y

Bu eylemi gerçekleştirmek istediğinizden emin misiniz?

Hedef "Ad" üzerinde "Set-PSSessionConfiguration" işleminin gerçekleştirilmesi:

microsoft.powershell.workflow SDDL:

O:NSG:KÖTÜ:P(A;;GA;;;BA)(A;;GA;;RM)S:P(AU;FA;GA;;;WD)(AU;SA;GXGW;;; ;WD). Bu irade

seçili kullanıcıların bu bilgisayarda Windows PowerShell komutlarını uzaktan çalıştırmasına izin ver".

[Y] Evet [A] Tümüne Evet [N] Hayır [L] Tümüne Hayır [S] Askıya Al [?] Yardım (varsayılan "Y"'dir):y

Bu eylemi gerçekleştirmek istediğinizden emin misiniz?

Hedef "Ad" üzerinde "Set-PSSessionConfiguration" işleminin gerçekleştirilmesi:

microsoft.powershell32 SDDL:

O:NSG:KÖTÜ:P(A;;GA;;;BA)(A;;GA;;RM)S:P(AU;FA;GA;;;WD)(AU;SA;GXGW;;; ;WD). Bu irade

seçili kullanıcıların bu bilgisayarda Windows PowerShell komutlarını uzaktan çalıştırmasına izin ver".

[Y] Evet [A] Tümüne Evet [N] Hayır [L] Tümüne Hayır [S] Askıya Al [?] Yardım (varsayılan "Y"'dir):y

Bundan sonra, yapılandırma bulundukça, ek bir cmdlet için WinRM önceliğini tersine çevirebilirsiniz. Test-WSMan. Sistem doğru kurulmuşsa, mevcut olana benzer bilgiler görüntülenecektir.

Not C:\>Test-WSMan -BilgisayarAdı w8c504

Ürün Sürümü: İşletim Sistemi: 0.0.0 SP: 0.0 Yığın: 3.0

Bu cmdlet, Windows PowerShell 2.0 bilgisayarlarda da çalışır. Windows Server 2008 z üzerinde bir etki alanı denetleyicisine kadar aşağıdaki ipuçları Windows'u yükle WinRM'nin çivilendiği PowerShell 2.0.

Not C:\>Test-WSMan -BilgisayarAdı dc1

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

Protokol Sürümü: http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd

Ürün Satıcısı: Microsoft Corporation

Ürün Sürümü: İşletim Sistemi: 0.0.0 SP: 0.0 Yığın: 2.0

WinRM ayarlanmazsa, af ile ilgili bildirim açılır. Windows 8 işletim sistemi ile gelinen noktada ise uyarı gelecektir.

Not C:\>Test-WSMan -BilgisayarAdı w8c10

Test-WSMan:

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

Machine="w8c504.iammred.net">WinRM'yi unutmayın. Doğrulamak

belirtilen bilgisayar adının geçerli olduğunu, bilgisayara şu adresten erişilebildiğini,

ağ ve WinRM hizmeti için bir güvenlik duvarı istisnasının etkinleştirildiğini ve

bu bilgisayardan erişin. Varsayılan olarak, genel kullanım için WinRM Güvenlik Duvarı istisnası

Profiller, aynı yerel alt ağ içindeki uzak bilgisayarlara erişimi sınırlar.

Satırda:1 karakter:1

Test-WSMan -BilgisayarAdı w8c10

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

KategoriBilgisi: InvalidOperation: (w8c10:String) , InvalidOperationException

FullyQualifiedErrorId: WsManError,Microsoft.WSMan.Management.TestWSManCommand

Enable-PSRemoting cmdlet'i ile Uzaktan Yönetimi etkinleştirmenin Uzaktan Yönetim güvenlik duvarını devre dışı bırakmadığını, bu nedenle bir Windows 8 makinesine ping atmaya çalışmanın başarılı olmadığını unutmayın.

Not C:\> ping w8c504

32 bayt veri ile w8c504.iammred.net'e ping atmak:

İstek zaman aşımına uğradı.

İstek zaman aşımına uğradı.

İstek zaman aşımına uğradı.

İstek zaman aşımına uğradı.

192.168.0.56 için ping istatistikleri:

Paketler: Gönderilen = 4, Alınan = 0, Kayıp = 4 (%100 kayıp).

Her şey Windows Server 2012 için çalışıyor.

Not C:\> ping w8s504

32 bayt veri ile w8s504.iammred.net'e ping atmak:

<1ms TTL=128

192.168.0.57'den yanıt: bayt=32 zaman<1ms TTL=128

192.168.0.57'den yanıt: bayt=32 zaman<1ms TTL=128

192.168.0.57'den yanıt: bayt=32 zaman<1ms TTL=128

192.168.0.57 için ping istatistikleri:

Paketler: Gönderilen = 4, Alınan = 4, Kayıp = 0 (%0 kayıp),

Yaz saatinde yaklaşık gidiş-dönüş saatleri:

Minimum = 0ms, Maksimum = 0ms, Ortalama = 0ms

WinRM'yi geliştirmek için gereken tek şey bu.

Ed Wilson, Microsoft Komut Dosyası Sorumlusu

Orijinal:

teknolojiler