Anasayfa » nasıl » Geek Okulu PowerShell ile Windows'u Nasıl Otomatikleştireceğinizi Öğrenin

    Geek Okulu PowerShell ile Windows'u Nasıl Otomatikleştireceğinizi Öğrenin

    Geek Okulu’nun bu sayısında, Windows’a yerleştirilmiş güçlü bir PowerShell betik dilini anlamanıza yardımcı olacak ve bir BT ortamında bilmek son derece yararlı olacak.

    Bu seri bir sınav etrafında yapılandırılmamış olsa da, PowerShell'i öğrenmek bir ağ yöneticisi olarak yapabileceğiniz en önemli şeylerden biridir, bu nedenle BT kariyerinize yardımcı olmak için öğrenmek istediğiniz bir şey varsa, budur. Ayrıca, çok eğlenceli.

    Giriş

    PowerShell, Microsoft'un sunduğu en güçlü otomasyon aracıdır ve hem bir kabuk hem de bir betik dilidir..

    Lütfen bu serinin Windows 8 ve Server 2012 ile birlikte gelen PowerShell 3'ü temel aldığını unutmayın. Windows 7 kullanıyorsanız, devam etmeden önce lütfen PowerShell 3 güncellemesini indirin.

    Konsol ve İMKB ile tanışın

    PowerShell ile kutudan, Konsoldan ve Tümleşik Komut Dosyası Ortamı'ndan (ISE olarak da bilinir) etkileşim kurmanın iki yolu vardır. ISE, PowerShell 2 ile birlikte gelen korkunç sürümünden oldukça gelişmiştir ve bir çalışma kutusu getirmek için Win + R klavye kombinasyonuna basıp ardından powershell_ise yazıp enter tuşuna basılarak açılabilir..

    Gördüğünüz gibi İMKB'nin bölünmüş bir görüntüsü var, böylece İMKB'nin alt yarısında sonuçları görmeye devam ederken hızlı bir şekilde yazı yazabilirsiniz. Komut dosyanızın sonuçlarının yazdırıldığı İMKB'nin alt yarısı, REPL komut istemi olarak da kullanılabilir - komut istemine benzer. V3 ISE sonunda hem script panosunda hem de interaktif konsolda intellisense desteği ekledi.

    Alternatif olarak, bu serinin çoğu için kullanacağım PowerShell Konsolunu kullanarak PowerShell ile etkileşime girebilirsiniz. PowerShell Konsolu, komut istemine çok benzer şekilde davranır - yalnızca komutları girersiniz ve sonuçları dağıtır. Windows PowerShell Konsolu'nu açmak için, çalışma kutusunu açmak için Win + R klavye kombinasyonuna tekrar basın ve powershell yazın ve enter tuşuna basın.

    Böyle bir REPL istemleri anında memnuniyet için harikadır: bir komut girip sonuçları alırsın. Konsol intellisense sunmasa da, aynı işlevi gören sekme tamamlama adı verilen bir şey sunar - sadece bir komut yazmaya başlayın ve olası eşleşmeler arasında dolaşmak için sekme tuşuna basın.

    Yardım Sistemini Kullanma

    PowerShell'in önceki sürümlerinde, Windows'u yüklediğinizde yardım dosyaları eklenmiştir. Bu, çoğunlukla iyi bir çözümdü, ancak bizi önemli bir sorunla karşı karşıya bıraktı. PowerShell yardım ekibi yardım dosyaları üzerinde çalışmayı bırakmak zorunda kaldığında, PowerShell geliştiricileri hala kodlama ve değişiklik yapmakla meşguldü. Bu, PowerShell gönderildiğinde, yardım dosyalarının hatalı olduğunu çünkü kodda yapılan daha yeni değişiklikleri içermediklerini gösteriyordu. Bu sorunu çözmek için, PowerShell 3, kutudan hiçbir yardım almadan gelir ve güncellenebilir bir yardım sistemi içerir. Bu, bir şey yapmadan önce en son yardım dosyalarını indirmek isteyeceğiniz anlamına gelir. Bunu bir PowerShell Konsolu açıp çalıştırarak yapabilirsiniz:

    Güncelleme-Yardım

    İlk PowerShell komutunuzu çalıştırdığınız için tebrikler! Gerçek şu ki, Update-Help komutu, sadece çalıştırmaktan çok daha fazla seçeneğe sahip ve onları görmek için komutun yardımını görmek isteyeceğiz. Bir komutun yardımını görüntülemek için, yardım almak istediğiniz komutun adını Get-Help komutunun Ad parametresine iletin, örneğin:

    Get-Help -Ad Güncelleme-Yardım

    Muhtemelen tüm bu metni nasıl yorumlayacağınızı merak ediyorsunuzdur, demek istediğim neden sözdizimi bölümünde iki bilgi var ve neden her yerde bu kadar çok parantez var? Öncelikle ilk şeyler: sözdizimi bölümünde iki bilgi bloğunun olmasının nedeni, komutu çalıştırmanın farklı yollarını göstermeleridir. Bunlar teknik olarak parametre kümeleridir ve bir seferde yalnızca bir tane kullanabilirsiniz (farklı kümelerdeki parametreleri karıştıramazsınız). Yukarıdaki ekran görüntüsünde, alt parametre ayarlanmamışken üst parametre setinin bir SourcePath parametresi olduğunu görebilirsiniz. Bunun nedeni, yardım dosyalarınızı ağınızda daha önce indirmiş olan başka bir makineden güncellemiş olmanız durumunda üst kaynak parametre setini (SourcePath içeren) kullanmanızdır; Microsoft'tan en yeni dosyaları almak istedim.

    İkinci soruyu cevaplamak için, dosyaların izlemesine yardımcı olan belirli bir sözdizimi var ve işte burada:

    • Parametre adının etrafındaki köşeli parantezler ve türü, isteğe bağlı bir parametre olduğu ve komutun onsuz gayet iyi çalışacağı anlamına gelir.
    • Parametreler adının etrafındaki köşeli ayraçlar, parametrelerin konumsal parametre olduğu anlamına gelir..
    • Açılı parantez içindeki bir parametrenin sağındaki şey, parametrenin beklediği veri türünü gösterir..

    Yardım dosyası sözdizimini okumayı öğrenirken, belirli bir parametreden hiç emin değilseniz, sadece buy help komutunuzun sonuna kadar ekleyin ve her birine biraz daha fazla bilgi verecek olan parametreler bölümüne gidin. parametre.

    Get-Help -Ad Güncelleme-Yardım -Full

    Yardım sistemi hakkında bilmeniz gereken en son şey, komutları keşfetmek için nasıl kullanabileceğinizdir, ki bu aslında çok kolaydır. Görüyorsunuz, PowerShell joker karakterleri hemen hemen her yerde kabul eder, bu yüzden bunları Get-Help komutuyla birlikte kullanmak, komutları kolayca keşfetmenizi sağlar. Örneğin, Windows Hizmetleriyle ilgili komutları arıyorum:

    Yardım Alma -Adı * hizmeti *

    Elbette, bu bilgilerin tümü yarasa için kullanışlı olmayabilir, ama bana güvenin, zaman ayırın ve yardım sisteminin nasıl kullanılacağını öğrenin. Yıllar boyunca bunu yapan gelişmiş senaryolara bile her zaman kullanışlı oluyor.

    Güvenlik

    Bu güvenlikten söz etmeden doğru bir giriş olmaz. PowerShell ekibi için en büyük endişe PowerShell'in senaryo çocuklarının en son ve en büyük saldırı noktası haline gelmesidir. Bunun olmadığından emin olmak için birkaç güvenlik önlemi aldılar, o zaman onlara bir göz atalım..

    En temel koruma biçimi, PS1 dosya uzantısının (PowerShell betiğini belirtmek için kullanılan uzantı), aslında Not Defteri ile kayıtlı olan bir PowerShell ana bilgisayarına kayıtlı olmaması gerçeğinden gelir. Yani bir dosyayı çift tıklarsanız, çalıştırmak yerine notepad ile açılır..

    İkincisi, komut dosyasını yalnızca komut dosyasının adını yazarak kabuktan çalıştıramazsınız, komut dosyasının tam yolunu belirtmeniz gerekir. Bu nedenle, C sürücünüzde bir komut dosyası çalıştırmak istiyorsanız, şunu yazmanız gerekir:

    C: \ runme.ps1

    Veya C sürücüsünün kök dizinindeyseniz, aşağıdakileri kullanabilirsiniz:

    .\ runme.ps1

    Son olarak, PowerShell, yalnızca eski bir komut dosyasını çalıştırmanızı engelleyen Yürütme İlkeleri adlı bir şeye sahiptir. Aslında, varsayılan olarak, herhangi bir komut dosyasını çalıştıramazsınız ve çalıştırmalarına izin vermek istiyorsanız, yürütme politikanızı değiştirmeniz gerekir. Kayda değer 4 Yürütme Politikası vardır:

    • Kısıtlı: Bu, PowerShell'deki varsayılan yapılandırmadır. Bu ayar, imzasından bağımsız olarak hiçbir komut dosyasının çalışamayacağı anlamına gelir. PowerShell'de bu ayarla çalıştırılabilecek tek şey, tek bir komuttur..
    • AllSigned: Bu ayar, komut dosyalarının PowerShell'de çalışmasına izin verir. Komut dosyasının güvenilir bir yayıncıdan ilişkili bir dijital imzası olması gerekir. Komut dosyalarını güvenilir yayıncılardan çalıştırmadan önce bir komut istemi olacaktır..
    • RemoteSigned: Bu ayar komut dosyalarının çalışmasına izin verir, ancak İnternet'ten indirilen komut dosyası ve yapılandırma dosyalarının güvenilir bir yayıncıdan ilişkili bir dijital imzanın olmasını gerektirir. Yerel bilgisayardan çalışan komut dosyalarının imzalanması gerekmez. Komut dosyasını çalıştırmadan önce istem yok.
    • kısıtlanmamış: Bu, Internet'ten indirilen tüm komut dosyaları ve yapılandırma dosyaları dahil, imzalanmamış komut dosyalarının çalışmasına izin verir. Bu, Outlook ve Messenger’daki dosyaları içerecektir. Buradaki risk hiçbir imzası veya güvenliği olmadan scriptler çalıştırıyor. Bizi asla bu ayara getirmemenizi tavsiye ederiz..

    Geçerli Yürütme Politikanızın neye ayarlanmış olduğunu görmek için, bir PowerShell Konsolu'nu açın ve şunu yazın:

    Get-ExecutionPolicy

    Bu kurs ve diğer birçok koşul için, RemoteSigned Policy en iyisidir, bu nedenle devam edin ve aşağıdakileri kullanarak politikanızı değiştirin.

    Not: Bunun yükseltilmiş bir PowerShell Konsolundan yapılması gerekecektir..

    Set-ExecutionPolicy RemoteSigned

    Hepsi bu kadar millet, hepsi biraz daha PowerShell eğlence için yarın görüşmek üzere.


    Feragatname: Bir PowerShell komutu için uygun terim bir cmdlet'tir ve bundan sonra bu doğru terminolojiyi kullanacağız. Bu giriş için onlara komutları çağırmak daha uygun hissettirdi..


    Herhangi bir sorunuz varsa, beni @taybgibb tweetleyebilir veya yorum bırakabilirsiniz..