• PowerShell için Active Directory modülünü yükleyin ve içe aktarın. Windows PowerShell - Faydalı Notlar Veri Türü Dönüştürme

    0
    Uygulanabilir:
    Profesyoneller ve küçük işletmeler için Office 365, İşletmeler için Office 365, Live@edu
    Windows XP, Windows Vista, Windows Server 2003, Windows 7 ve Windows Server 2008

    Windows PowerShell'i kullanmaya başlamadan önce, Windows PowerShell ve Windows Uzaktan Yönetim'in (WinRM) doğru sürümlerinin bilgisayarınıza yüklendiğinden ve yapılandırıldığından emin olmalısınız. Windows PowerShell v2 ve WinRM 2.0'ın doğru sürümlerini içeren Windows Yönetim Çerçevesini kullanmanız gerekir.

    Bilgisayarınız Windows 7 veya Windows Server 2008 R2 çalıştırıyorsa herhangi bir şey yüklemenize gerek yoktur. Windows Yönetim Çerçevesi zaten yüklü.

    Bilgisayarınız aşağıdaki işletim sistemlerinden birini çalıştırıyorsa Windows Management Framework'ü indirip yükleyebilirsiniz:

      Windows Vista SP1 veya SP2;

      Windows Server 2008 SP1 veya SP2;

      Windows Server 2003 SP2;

      Service Pack 3 (SP3) içeren Windows XP.

    Başlayalım:

    1. Windows PowerShell'in önceki sürümlerini bilgisayarınızdan kaldırın

    Windows Yönetim Çerçevesini yüklemeden önce Windows PowerShell'in mevcut tüm sürümlerini kaldırmalısınız.

    1.1 Windows PowerShell'i Windows Vista'dan Kaldırma

      Denetim Masası'nın Programlar grubunda Programlar ve Özellikler'i açın ve yüklü programlar listesinde bulunan tüm Windows PowerShell örneklerini kaldırın. Örneğin, Windows PowerShell v2'nin CTP sürümü "Windows PowerShell(TM) V2" olarak görünebilir.

      Görevler bölümünde Yüklü güncelleştirmeleri görüntüle'yi seçin ve yüklü güncelleştirmeler listesindeki tüm Windows PowerShell örneklerini kaldırın. Örneğin, Windows PowerShell V1, Microsoft Bilgi Bankası'nda aşağıdaki makale numaralarından biriyle bir Windows güncelleştirmesi olarak görünebilir:

    1.2 Windows PowerShell'i Windows Server 2008'den Kaldırma

      Sunucu Yöneticisi'ni başlatın ve Bileşenler bölümünü açın.

      1. "Özellikleri Kaldır"ı seçin.

        Windows PowerShell'i seçin ve kaldırma talimatlarını izleyin.

      Denetim Masası'ndaki Programlar altında Programlar ve Özellikler'i açın ve yüklü programlar listesindeki tüm Windows PowerShell örneklerini kaldırın.

      “Görevler” grubunda “Yüklü güncellemeleri görüntüle” öğesini seçin. Yüklü güncelleştirmeler listesindeki tüm Windows PowerShell örneklerini kaldırın.

    1.3 Windows PowerShell'i Windows Server 2003 veya Windows XP'den Kaldırma

      Denetim Masası'nda Program Ekle veya Kaldır'ı açın ve yüklü programlar listesinde bulunan tüm Windows PowerShell örneklerini kaldırın.

      Program Ekle veya Kaldır bölümünde Güncelleştirmeleri göster'i seçin. Yüklü güncelleştirmeler listesindeki tüm Windows PowerShell örneklerini kaldırın. Örneğin, Windows PowerShell V1, Microsoft Bilgi Bankası'nda aşağıdaki makale numarasıyla bir Windows güncelleştirmesi olarak görünebilir: KB926139.

    2. WinRM'nin önceki sürümlerini bilgisayarınızdan kaldırma

    Windows Yönetim Çerçevesini kurmadan önce WinRM'nin mevcut tüm sürümlerini kaldırmalısınız.

    2.1 WinRM'yi Windows Vista veya Windows Server 2008'den Kaldırma

      Denetim Masası'nın Programlar grubunda Programlar ve Özellikler'i açın ve yüklü programlar listesinde bulunan tüm Windows Uzaktan Denetim örneklerini kaldırın.

      “Görevler” grubunda “Yüklü güncellemeleri görüntüle” öğesini seçin. Yüklü güncelleştirmeler listesindeki Windows Uzaktan Yönetim hizmetinin tüm örneklerini kaldırın. Örneğin, WinRM 2.0'ın CTP sürümü, Microsoft Bilgi Bankası'nda aşağıdaki makale numaralarından birinde "WindowsRemoteManagement" olarak görünebilir:

    2.2 Windows PowerShell'i Windows Server 2003 veya Windows XP'den Kaldırma

      Denetim Masası'nda Program Ekle veya Kaldır'ı açın ve yüklü programlar listesindeki tüm Windows Uzaktan Denetim örneklerini kaldırın.

      Program Ekle veya Kaldır bölümünde Güncelleştirmeleri göster'i seçin. Yüklü güncelleştirmeler listesindeki Windows Uzaktan Yönetim hizmetinin tüm örneklerini kaldırın. Örneğin, WinRM, Microsoft Bilgi Bankası'nda aşağıdaki makale numarasıyla bir Windows güncelleştirmesi olarak görünebilir: KB936059.

    3. Windows Yönetim Çerçevesini yükleyin

      Windows Yönetim Çerçevesini indirip yükleyin. İşletim sisteminize, sistem mimarinize ve dilinize uygun, Windows PowerShell v2 ve WinRM 2.0 içeren bir paket seçin.

      WinRM ve Windows PowerShell'i yükledikten sonra yazılımı aşağıdaki adımlarda anlatıldığı gibi doğru çalışacak şekilde yapılandırın.

    Not

    4. Komut dosyalarının Windows PowerShell'de çalışabildiğini doğrulayın

      Sırayla “Başlat”, “Tüm Programlar”, “Donatılar”, Windows PowerShell'i seçin.

      Windows PowerShell'i açmak için aşağıdakilerden birini yapın:

      • Windows Vista, Windows 7 veya Windows Server 2008 R2 çalıştırıyorsanız Windows PowerShell'e sağ tıklayın ve Yönetici Olarak Çalıştır'ı seçin. Devam etmenizi isteyen bir Kullanıcı Hesabı Denetimi istemi göründüğünde Devam'ı tıklayın.

        Windows XP veya Windows Server 2003 çalıştırıyorsanız Windows PowerShell'e tıklayın.

      Aşağıdaki komutu çalıştırın:

      Get-ExecutionPolicy

      Döndürülen değer RemoteSigned değilse, değeri RemoteSigned olarak değiştirmeniz gerekir.

      Not

      Komut dosyası yürütme ilkesi RemoteSigned olarak ayarlanırsa yalnızca kullanıcının bilgisayarında oluşturulan veya güvenilir bir kaynak tarafından imzalanan komut dosyaları çalıştırılabilir.

    Windows PowerShell'de Komut Dosyalarını Çalıştırmaya Hazırlanma

    Yönetici olarak açılan bir Windows PowerShell oturumunda aşağıdaki komutu çalıştırın:

    Set-ExecutionPolicy RemoteSigned

    5. WinRM'nin Windows PowerShell'e bağlanma izninin olup olmadığını kontrol etme

      Sırayla “Başlat”, “Tüm Programlar”, “Donatılar”ı seçin.

      Komut İstemi'ni açmak için aşağıdakilerden birini yapın:

      • Windows Vista, Windows 7 veya Windows Server 2008 R2 çalıştırıyorsanız Komut İstemi'ne sağ tıklayın ve Yönetici Olarak Çalıştır'ı seçin. Devam etmenizi isteyen bir Kullanıcı Hesabı Denetimi istemi göründüğünde Devam'ı tıklayın.

        Windows XP veya Windows Server 2003 çalıştırıyorsanız Komut İstemi'ni seçin.

      Komut isteminde aşağıdaki komutu çalıştırın:

      winrm, winrm/config/client/auth'u alır

      Not

      WinRM hizmeti zaten çalışıyorsa, onu başlatmanıza gerek yoktur. Sc query winrm komutunu çalıştırarak WinRM hizmetinin durumunu kontrol edebilirsiniz.

    Sonuçlarda Basic = değerini arayın. Basic = false değeri belirtilirse, Basic = true olarak değiştirilmelidir.

    Not

      WinRM hizmeti çalışıyorsa ve Temel değeri değiştirmeniz gerekmiyorsa, WinRM hizmetini durdurmak için net stop winrm komutunu çalıştırın.

    WinRM'de Temel Kimlik Doğrulama Desteğini Etkinleştirme

      Yönetici olarak açılan bir Komut İstemi penceresinde aşağıdaki komutları çalıştırın: Küme parantezleri ( ) içindeki değer, büyük/küçük harfe duyarlıdır:

      winrm set winrm/config/client/auth @(Basic = "true")

      Komut çıktısında Basic=true olup olmadığını kontrol edin.

      Not

      WinRM hizmeti çalışıyorsa, durdurmak için net stop winrm komutunu çalıştırın.

    Sonraki eylem.

    Bugün size Windows PowerShell için Active Directory Yönetim Modülünü nasıl kuracağınızı ve kullanacağınızı göstereceğim. Bu modüldeki cmdlet'ler bilgi edinmek ve çeşitli AD nesnelerini ve ayarlarını yönetmek için kullanılabilir. Bu modül sunucu işletim sistemlerine ayrı bir bileşen olarak kurulur. Masaüstü işletim sistemlerinde (Windows 10, 8.1, 7), PowerShell'den AD ile etkileşime geçmek için bir modül içeren Uzak Sunucu Yönetim Araçları (RSAT) paketini yüklemeniz gerekecektir. Bu modüle ek olarak RSAT, Windows ve AD'yi yönetmek için gerekli tüm grafiksel yönetim ek bileşenlerini, komut satırı yardımcı programlarını ve Windows PowerShell modüllerini içerir. İşletim sistemi sürümünüze uygun bu paketi Microsoft web sitesinden kendiniz indirmeniz gerekir.

    Windows PowerShell için Active Directory Modülünü Yükleme

    Windows PowerShell için Active Directory modülü ilk olarak Windows Server 2008 R2'de ortaya çıktı. Üzerine otomatik olarak kurulur. AD modülünden PowerShell cmdlet'lerini kullanmak için etki alanınızın Windows Server 2008 R2 veya üstünü çalıştıran en az bir denetleyiciye sahip olması gerekir. Ağınızda yalnızca Windows Server 2003 ve 2008 çalıştıran DC'ler varsa, Active Directory Yönetimi Ağ Geçidi Hizmetini indirip yüklemeniz gerekir. Active Directory modülündeki PowerShell cmdlet'leri, ADDS rolüne sahip bir etki alanı denetleyicisinin parçası olan bir web hizmetiyle etkileşime girer.

    Windows PowerShell için Active Directory modülünü yalnızca bir etki alanı denetleyicisine değil, aynı zamanda herhangi bir üye etki alanı sunucusuna veya iş istasyonuna da yükleyebilirsiniz. Windows Server 2016'da, Windows PowerShell için Active Directory modülünü, Rol ve Özellik Ekleme Sihirbazı'nı kullanarak grafiksel Sunucu Yöneticisi konsolundan yükleyebilirsiniz. Sihirbazı çalıştırmanız yeterlidir ve bileşenleri seçme aşamasında Uzak Sunucu Yönetim Araçları -> Rol Yönetim Araçları -> AD DS ve AD LDS Araçları ->'nı seçmeniz gerekir. Windows PowerShell için Active Directory Modülü(Uzak Sunucu Yönetim Araçları > Rol Yönetim Araçları > AD DS ve AD LDS Araçları ->Windows PowerShell için Active Directory modülü).

    Bu modül PowerShell kullanılarak da kurulabilir. Yönetici haklarına sahip bir PowerShell konsolu açın ve komutları çalıştırın:

    İçe Aktarma Modülü Sunucu Yöneticisi
    Add-WindowsFeature -Ad "RSAT-AD-PowerShell" –IncludeAllSubFeature

    Windows 10, Windows 8.1 ve Windows 10'da, RSAT-AD-PowerShell modülünü yüklemek için önce uygun RSAT sürümünü yüklemelisiniz, ardından modülün Denetim Masası'nda (Denetim Masası -> Programlar -> Programlar) etkinleştirilmesi gerekir. ve Özellikler'i tıklayın ve “Windows Özelliklerini Aç” -> Uzak Sunucu Yönetim Araçları -> Rol Yönetim Araçları -> AD DS ve AD LDS Araçları -> Windows POwerShell bileşeni için Active Directory Modülünü etkinleştirin.

    Veya modülü PowerShell'i kullanarak yükleyebilirsiniz:

    Enable-WindowsOptionalFeature -Online -FeatureName RSATClient-Roller-AD-Powershell

    Active Directory için PowerShell modülünü içe aktarın ve kullanın

    PowerShell 2.0'ın yüklü olduğu Windows 7 ve Windows Server 2008 R2'de, AD modülünü kullanmaya başlamak için onu şu komutla bir PowerShell oturumuna aktarmanız gerekir:

    Alternatif olarak, bir modülü önceden kurulu olduğu uzak bir makineden dışarı aktarabilir ve PowerShell oturumunuza aktarabilirsiniz:

    $MySession = Yeni-PSSession -BilgisayarAdı MyDomainController
    Dışa Aktarma-PSsession -Oturum $MySession -Module ActiveDirectory -OutputModule RemoteADPosh
    Kaldır-PSSession -Session $MySession
    İçe Aktarma Modülü RemoteADPosh

    Windows Server 2012 R2/2016 ve Windows 8.1/Windows 10'da modül (yüklüyse) otomatik olarak oturuma aktarılır.

    Bilgisayar bir etki alanına katılmışsa varsayılan olarak ada göre bir sürücü oluşturulur AD:..CD komutuyla bu sürücüye gidebilir ve bu sürücüde gezinmek için her zamanki dosya sistemi komutlarınızı kullanabilirsiniz. Yollar X500 formatında sunulur.

    PS C:\> cd AD:
    PS AD:\> dizin

    PS AD:\> cd "DC=vmblog,DC=ru"

    Active Directory ile çalışmaya yönelik mevcut modül cmdlet'lerinin listesini şu şekilde görüntüleyebilirsiniz:

    Get-Command -Module ActiveDirectory

    Windows'un farklı sürümlerinde farklı sayıda cmdlet bulunur:

    • Windows Server 2008 R2 - 76 cmdlet'ler.
    • Windows Server 2012 - 135 cmdlet'ler
    • Windows Server 2012 R2 / 2016 - 147 cmdlet'ler.

    Artık AD'yi yönetmek için PowerShell cmdlet'lerini kullanabilirsiniz. Web sitemizde PowerShell için AD modülünden aşağıdaki cmdlet'lerin kullanımı hakkında bilgi edinebilirsiniz: , .

    Microsoft'un en son işletim sisteminin son sürümünün piyasaya sürülmesinden bu yana bir süre geçti ve yalnızca ara yapıları test eden meraklılar değil, aynı zamanda uzun zamandır beklenen güncellemeyi indiren kullanıcılar da ona zaten aşina oldu. Yeni sistem iyi mi kötü mü? Bu en son yenilikçi ürün mü, yoksa sadece zamanında çıkması gereken "sekiz" ürün mü? Bunlar her durumda kesin olarak yanıtlanamayacak sorulardır. Yeni Başlat menüsü, Microsoft Edge tarayıcısı, Xbox uyumluluğu, Cortana ile entegre arama ve görev görünümü gibi bariz yeniliklerin yanı sıra, her Windows 10 kullanıcısının bilmediği bir takım yenilikler de mevcut.

    Ve bu yeniliklerden biri, bu makalenin ilerleyen kısımlarında ele alınacak olan Windows PowerShell kabuğunu kullanarak yazılım ürünlerini doğrudan yükleme yeteneğidir. Bu işlevselliğin Nisan 2014'te Windows Management Framework 5.0 Preview'un piyasaya sürülmesiyle birlikte ortaya çıkmasına rağmen, ancak "on" un son sürümüyle yerel hale gelebildi. Şimdi bu işlevsellikten hangi modülün sorumlu olduğunu ve kurulum dosyalarını indirmeden yazılım ürünlerini nasıl kurabileceğinizi görelim.

    Windows PowerShell OneGet Modülü

    Windows Management Framework 5.0 Preview'un piyasaya sürülmesiyle birlikte Windows PowerShell artık bilgisayarları yönetmeyi kolaylaştırmak için tasarlanmış birçok yeni özelliğe sahip. Bu özellikler iki ilginç teknolojiyi içerir: Windows PowerShell İstenen Durum Yapılandırması ve Windows Ağ Anahtarları için Sertifikalı.

    Windows Ağ Anahtarları Sertifikalı teknolojisi durumunda, Windows sertifikalı ağ anahtarlarının yönetilmesinden sorumlu olan bir dizi Windows PowerShell cmdlet'i eklenmiştir. Yani PowerShell'de “Get-Command *-NetworkSwitch*” komutunu çalıştırarak bulabileceğiniz 19 yeni cmdlet bulunmaktadır. Teknoloji oldukça ciddi olduğundan ve özel ilgiyi hak ettiğinden, bu yazıda kendimi sadece kısa bir açıklamayla sınırlayacağım ve bu teknolojiyi daha ayrıntılı olarak ele almayacağım.

    Ancak ikinci teknoloji üzerinde daha detaylı durmalıyız. Windows Management Framework 5 veya Windows 10 işletim sistemini kurarsanız bilgisayarlarınızda yazılım bulmanızı ve yüklemenizi çok daha kolaylaştıran bir araç kullanabilirsiniz. OneGet böyle bir araçtır. OneGet bir paket yönetimi toplayıcıdır, yani yazılım keşfi, kurulumu ve envanteri için tek bir arayüz sağlamak üzere özel depoları kullanan bir modüldür. Yani bu teknoloji bir yandan son kullanıcının kurulum paketlerini yönetmesine olanak tanıyan bir dizi cmdlet sağlar (buna biraz aşağıda değineceğiz), diğer yandan satıcının yazılması için bir arayüz sağlar. paketler.

    Modülün kendisini anlamaya başlamadan önce, bu teknolojiyle yakından ilgili olan çeşitli tanımlara dikkat etmelisiniz:

    • Naylon poşet. Özetle paket, mevcut herhangi bir paket yönetim sistemi kullanılarak belirli bir kaynaktan derlenen ve kurulan bir programdır. Tipik olarak bir paket, paketin, sürümünün veya "bağımlılıklarının" açıklamasını içerebilen ek meta bilgilerle birlikte derlenmiş kod sağlar. Örneğin, tüm paket bağımlılıklarının kurulduğundan emin olmak amacıyla bir yazılım ürününü otomatik olarak yeni bir sürüme güncellemek için kullanılan bir paket yönetim sistemi, bu tür meta bilgileri işlemeli ve gerekirse eksik paketleri otomatik olarak kurmalıdır;
    • Depo. Wikipedia'ya göre depolar, verilerin saklandığı ve muhafaza edildiği yerlerdir. Çoğu zaman, bir depodaki veriler, ağ üzerinden daha fazla dağıtım için kullanılabilen dosyalar biçiminde depolanır. Depolar başlangıçta Linux sistemleri tarafından, sistemi çalıştırmak için gereken paketlerin başka konumlardan kurulmasına izin vermek için kullanılıyordu. Çoğu veri havuzu ücretsizdir ancak bazı şirketler ücretli abonelik karşılığında kendi veri havuzlarına erişim sağlar. Biraz aşağıda OneGet depolarından bahsedeceğiz;
    • Paketleme yöneticisi. Yazılım paketlerini yükleme, güncelleme, yapılandırma ve kaldırma sürecini otomatikleştirmekten sorumlu bir dizi yazılım aracıdır. Tipik olarak paketler, yazılım önkoşullarını ve bağımlılıklarını belirten bir veritabanının yanı sıra bozuk yazılımın kullanımını önlemek için ürün sürüm bilgilerini içerir. Paket yöneticileri, daha sonra Windows sistemlerinde ortaya çıkan Linux apt-get veya NuGet'i içerir. OnetGet ise NuGet'in mantıksal bir uzantısıdır ve sağlayıcı adı verilen tüm mevcut paket yöneticileri için bir toplayıcı olarak çalışır.

    Microsoft başlangıçta, yazılımınızı yönetmek için ek sağlayıcılar keşfetmenize ve yüklemenize olanak tanıyan temel bir set sağlayarak mevcut çoğu sağlayıcının kullanımını sınırlandırır. Temel tedarikçiler arasında şunlar yer alır:

    • Önyükleme– diğer tedarikçileri keşfetmenize olanak tanıyan bir tedarikçi;
    • MSI– MSI dosyalarını işlemek için tasarlanmış bir sağlayıcı;
    • M.S.U.– sırasıyla Microsoft güncelleme dosyalarının işlenmesinden sorumlu tedarikçi;
    • ARP(Program Ekle/Kaldır) – sistemin “Program Kaldır veya Değiştir” bileşeninde kayıtlı herhangi bir yazılım ürününe ilişkin envanter verilerinden sorumlu bir tedarikçi;
    • PowerShellGet– Çeşitli PowerShell modüllerini yönetmenize olanak tanıyan bir sağlayıcı.

    OneGet sağlayıcılarının kısa açıklamalarıyla birlikte tam listesini aşağıdaki bağlantıda bulabilirsiniz.

    OneGet modülünün kendisi, çoğu bu makalenin bir sonraki bölümünde ele alınacak olan 10 Windows PowerShell cmdlet'i içerir. Bu cmdlet'ler şunları içerir:

    • Find-Package – paketleri arama;
    • Get-Package – bilgisayarda yüklü olan tüm paketlerin bir listesini döndürür;
    • Get-PackageProvider – bu bilgisayardaki OneGet'e bağlı sağlayıcıların listesini döndürür;
    • Get-PackageSource - Belirli bir paket sağlayıcı için kayıtlı paket kaynaklarının listesini döndürür;
    • Kurulum Paketi – bir veya daha fazla yazılım ürününü kurmanıza olanak tanır;
    • Register-PackageSource – belirtilen paket sağlayıcı için bir paket kaynağı ekleme;
    • Paketi Kaydet – paketi daha sonra kurulum yapmadan yerel bilgisayarınıza kaydetmenize olanak tanır;
    • Set-PackageSource – belirtilen paket sağlayıcının paket kaynağını değiştirin;
    • Kaldırma Paketi – bir veya daha fazla yazılım paketinin kaldırılması;
    • Unregister-PackageSource – kayıtlı bir paket kaynağını kaldırır.
      • OneGet kullanarak yazılımı yükleme

        Artık yazılım yükleme işleminin zamanı geldi. Daha sonra, bir paket sağlayıcıyı nasıl kuracağınızı, gerekli yazılımı nasıl bulacağınızı, kuracağınızı ve ayrıca gereksiz bir uygulamayı nasıl kaldırabileceğinizi ve yazılım ürününün kurulum paketini bilgisayarınıza nasıl indirebileceğinizi göreceksiniz. Sırayla başlayalım.

        Chocolatey paket sağlayıcısını yükleme

    1. Windows PowerShell'i açın ve yerel bilgisayarınızda OneGet'e kayıtlı paket kaynaklarının listesini görüntülemek için komutu çalıştırın. Get-PackageSource. Komutta belirli bir paket tedarikçisini belirtirseniz Get-PackageSource cmdlet'inin size yalnızca belirttiğiniz tedarikçiyle ilişkili kaynakları göstereceğini unutmayın. Aksi takdirde komut, OneGet'e kayıtlı tüm paket kaynaklarını döndürür. Tüm sağlayıcıların paket kaynaklarını görüntülememiz gerektiğinden, komut herhangi bir ek parametre olmadan yürütülecektir. Bu aşamada henüz kurulmamış yazılım ürünlerini yüklemek için kullanılacak ek bir paket sağlayıcınızın bulunduğunu unutmayın. Komutun çıktısını aşağıdaki resimde görebilirsiniz:

    2. Önceki resimde gördüğünüz gibi Chocolatey sağlayıcısı local makinemizde kurulu değil. Bu nedenle bunun düzeltilmesi gerekiyor. Paket sağlayıcı eklemek için PowerShell'in ExecutionPolicy'sinin şu şekilde ayarlanması gerektiğini unutmayın: Sınırsız. Aksi takdirde tedarikçiyi ekleyemezsiniz. Size şunu hatırlatmama izin verin: cmdlet Get-ExecutionPolicy Geçerli oturuma ilişkin yürütme ilkelerini görüntülemenizi sağlar. Yürütme ilkesi, Windows PowerShell'in, yapılandırma dosyalarının yüklenip yüklenemeyeceğini, komut dosyalarının yürütülüp yürütülemeyeceğini ve hangi komut dosyalarının çalıştırılması için dijital imza gerektirdiğini belirleyen güvenlik ilkesinin bir parçasıdır. Varsayılan değer " Sınırlı"(yapılandırma dosyalarını yüklemez ve komut dosyalarını yürütmez), bu nedenle yürütme ilkesi değerini değiştirmediyseniz komutu çalıştırın Set-Executionpolicy Sınırsız. Varsayılan yürütme ilkesi kapsamı LocalMachine olduğundan, ilke ayarlarının yalnızca geçerli kullanıcıya uygulanabilmesi için uyguladığınız komuta bir parametre de ekleyebilirsiniz. -Kapsam anlamı olan Şu anki kullanıcı. Bu iki komutun çıktısı aşağıdaki çizimde görülebilir:

    3. Bu noktada mevcut bilgisayarda OneGet’e kayıtlı tedarikçilerin listesini görebiliyoruz. Bunu yapmak için cmdlet'i kullanabilirsiniz. Get-PackageProvider. Bu cmdlet, yukarıda biraz bahsettiğim gibi, OneGet'e zaten bağlı olan paket sağlayıcıların bir listesini döndürür. İsteğe bağlı olarak, sonuçları satıcı adlarının tamamına veya bir kısmına göre filtreleyebilirsiniz. Örneğin, hangi sağlayıcıların şu anda bağlı olduğunu görmek için cmdlet'i çalıştırırsınız. Get-PackageProvider herhangi bir ek parametre olmadan. Aşağıdaki çizimde görebileceğiniz gibi, bugün size daha önce bahsettiğim başlangıçta bu sağlayıcılardan 4 tanesi bilgisayarıma bağlıydı. Şimdi Chocolatey sağlayıcısını bilgisayarınıza yüklemek için şu komutu çalıştırmanız gerekir: Get-PackageProvider –Name Chocolatey –ForceBootstrap Burada –ForceBootstrap parametresi sağlayıcının otomatik kurulumundan sorumludur. Genellikle Chocolatey sağlayıcısını yüklediğinizde NuGet sağlayıcısının da yüklenmesi gerektiğini unutmayın. Aşağıdaki çizimde görebileceğiniz gibi cmdlet'i tekrar kullandıktan sonra Get-PackageProvider, yüklediğimiz tedarikçinin zaten listede görünmesi gerekir:

    Artık sağlayıcılarda bulunan tüm paketlerin tam listesini oluşturabilir ve bunu cmdlet'e aktarabiliriz. Dışa Aktarma-CliXML nesnelerin XML temsilini oluşturmak ve bunları bir XML dosyasına kaydetmek için. Dışa aktardığınız listenin sürekli değişeceğini ve zamanla kullandığınız depolara daha fazla paketin ekleneceğini lütfen unutmayın. Buna göre, dışarı aktardığınız dosyayı zaman zaman değiştirmeyi unutmayın. Paketlerin bir listesini dışa aktarmak ve bu listeyi C:\TestPosh klasörüne kaydetmek için aşağıdaki komutu çalıştırmanız gerekir: Bul Paketi | Dışa Aktarma-CliXML C:\TestPosh\Test.xml

    İhracat prosedürünün kesinlikle biraz zaman alacağını lütfen unutmayın. Komutun yürütülmesi tamamlandıktan ve bilgisayarınızda bir XML dosyası oluşturulduktan sonra, dosyayı içe aktarın ve görüntüleme kolaylığı için işlem hattını ve komutu kullanın. Izgara Görünümü Komut yürütme sonuçlarının pencerede etkileşimli bir tablo biçiminde görüntülenmesinden sorumlu olan, hangi paketlerin kurulum için uygun olacağını görebilirsiniz. Doğal olarak, bu paket listesini XML dosyalarını işleyebilen herhangi bir uygulamayı, örneğin Excel'i kullanarak açabilirsiniz. Bu komut, aşağıdaki çizimde görebileceğiniz gibi şuna benzer: İçe Aktarma-CliXML C:\TestPosh\Test.xml | Izgara Dışı Görünüm

    Sağlayıcı zaten kurulu olduğundan, bu prosedürün bir sonraki kısmına geçebilirsiniz:

    PowerShell kullanarak yazılımı yükleme

    Yazılım ürünlerini kurmadan önce bilgisayarda nelerin kurulu olduğuna bakmalıyız. Bu görevi gerçekleştirmek için cmdlet'i kullanabilirsiniz. Paket Al OneGet veya diğer uygulama yükleme araçları aracılığıyla yerel bilgisayarda yüklü olan tüm yazılım paketlerinin bir listesini veren . İsteğe bağlı olarak cmdlet'i de çalıştırabilirsiniz. Paket Al ve uzak bilgisayarlarda onu bir Invoke-Command, bir Enter-PSSession komutu veya bir betiğin parçası olarak çalıştırarak.

    Belirli bir yazılım hakkında, örneğin yüklü Microsoft Office 2013 ürünleri hakkında bilgi almak istiyorsanız, bu cmdlet ile birlikte –Name parametresini uygun değerle birlikte kullanabilirsiniz, örneğin, Get-Package - "office 2013" adını verin. Bu cmdlet'in çıktısı aşağıda görülebilir:

    Yazılımı kurmadan önce neyi kurmamız gerektiğine karar vermeye çalışalım. Makinede yalnızca Office 2013 ve birkaç uygulama daha yüklü olduğundan, size Adobe Creative Cloud, Adobe Reader, Notepad++, Process Explorer, Process Monitor ve WinRar gibi yazılım ürünlerini nasıl kurabileceğinizi göstereceğim.

    Kurulum işleminden önce paketleri yerelleştirmemiz gerektiğinden cmdlet'in yeteneklerini kullanmalıyız. Bul Paketi. Biraz önce fark ettiğiniz gibi, bu cmdlet, yerel bilgisayardaki paket kaynaklarında kurulum paketlerini aramanıza olanak tanır. Bu cmdlet'le herhangi bir parametre kullanmazsanız, daha önce belirtildiği gibi komut, tüm uygulamaların tam listesini görüntüler.

    Örneğin öncelikle eklediğimiz Chocolatey sağlayıcısından kuruluma uygun Adobe uygulamalarını bulmaya çalışalım. Bunu yapmak için cmdlet'in kendisine ek olarak parametreyi belirtmek yeterlidir. -İsim ve istediğiniz yazılım ürününü değer olarak girin. Kurulum paketlerinin ürün adı Adobe kelimesinden sonra gelebileceği için ürün adını şu şekilde girmelisiniz: Adobe* aşağıdaki çizimde gösterildiği gibi. Gördüğünüz gibi OneGet modülü depoda aşağıdaki kurulum paketini tespit etti: adobe-yaratıcı-bulut sürüm 1.0. Prensip olarak aradığınız ürünlerden biri bu, yani kurulması gerekiyor. Bunu yapmak için aşağıdaki çizimde de görülebileceği gibi cmdlet'in yeteneklerini kullanmanız gerekir. Kurulum paketi. Creative Cloud'u yüklemek için aşağıdaki komutu çalıştırın Kurulum Paketi - Adobe-creative-cloud'u adlandırın –Force PowerShell'de yaygın olduğu gibi Force parametresi, değişiklikler güvenlik gereksinimlerini ihlal etmeye başlayana kadar komutun yürütülmesini engelleyen kısıtlamaları geçersiz kılar. Bu komutların çıktısı aşağıdaki çizimde görülebilir:

    Şimdi ilk yazılım ürünü yüklendikten sonra Adobe Reader'ın belirli bir sürümünü aramayı deneyelim. Bunu yapmak için zaten bilinen komuta ek olarak Find-Package –AdobeReader'ı Adlandırın parametre eklenmelidir –Tüm Sürümler bir paketin mevcut tüm sürümlerini veya parametrelerde belirtilen aralıktaki bir paketin tüm sürümlerini döndürür Minimum Sürüm Ve Maksimum Sürüm. Arama başlangıçta yazılım ürününün en son sürümünü görüntülediğinden bu parametrenin isteğe bağlı olduğunu lütfen unutmayın. Şimdi mevcut tüm sürümler arasından bilgisayara yüklenmesi gerekeni seçmeliyiz, örneğin sürüm olsun 2015.007.20033 . okuyucunun bu özel sürümünü yüklemek için şu komutu izleyin: Kurulum Paketi -AdobeReader'ı Adlandırın parametre ekle –Gerekli Sürüm anlamı olan 2015.007.20033 , yüklemek istediğiniz paketin tam sürümünü belirtir. Ayrıca parametreyi ekleyerek ürünün kullanılabilir maksimum sürümünü de yükleyebilirsiniz. Maksimum Sürüm karşılık gelen anlamla. Bu komutların çıktısı aşağıdaki çizimde görülebilir:

    Bir yazılım ürününün en son sürümünü yüklemeniz gerekiyorsa ve aynı zamanda PowerShell'de birden fazla komut yazmak istemiyorsanız, bir işlem hattı kullanarak paket arama ve kurulumunu genelleştirebilirsiniz. Örneğin, Notepad++ metin düzenleyicisinin en son sürümünü yüklüyorsanız aşağıdaki komutu çalıştırabilirsiniz: Find-Package -Name NotepadPlusPlus | Kurulum Paketi –Force. Böylece depoda bir paket ararsınız ve bir sonuç bulursanız hemen sessiz modda yüklersiniz. Bu yazılım ürününün kurulum işlemi aşağıda gösterilmiştir:

    Şimdi, yukarıdaki göreve göre Process Explorer, Process Monitor ve WinRar'ı kurmak kaldığından, aynı anda birkaç yazılım paketini yüklemeyi deneyelim. Bunu yapmak için, bu paketlerin depoda tam olarak ne dendiğini bilmeniz önerilir. Daha önce yazdığım gibi, bu cmdlet kullanılarak kontrol edilebilir. Bul Paketi | Izgara Dışı Görünüm. Paketlerin adları öğrenildikten sonra kuruluma devam edebilirsiniz. Bunu yapmak için aşağıdaki komutu çalıştırabilirsiniz: Find-Package -Ad procexp, procmon, winrar | Kurulum paketi. Bu örnekte aşağıdaki çizimde de görebileceğiniz gibi parametreyi özellikle belirtmiyorum. Güç böylece birden fazla yazılım paketini aynı anda kurma sürecinin tamamına dikkat edebilirsiniz.

    Programları kaydetme ve silme

    Bu makalede ele alınacak son iki cmdlet, kurulum paketinin kaydedilmesinden ve kurulu programın silinmesinden sorumludur. Tasarrufla başlayalım.

    Kurulum paketini kaydetmek için OneGet modülünün bir sonraki cmdlet'ini, yani modülü kullanabilirsiniz. Kaydet-Paket. Bu cmdlet, paketleri daha sonra kurmanıza gerek kalmadan yerel bilgisayarınıza kaydetmenize olanak tanır. Varsayılan olarak bu cmdlet, yazılım ürününün en son sürümünü kaydeder, ancak parametreyi geçerli cmdlet'e eklerseniz Tüm Sürümler, seçtiğiniz programın tüm versiyonları bilgisayarınıza kaydedilecektir. Ayrıca, program cmdlet'lerini arama ve yükleme parametrelerine benzer şekilde, parametreleri kullanarak tüm sürümleri kaydetmenin yanı sıra -Maksimum Sürüm Ve –Minimum Sürüm, ayrıca saklamak istediğiniz paket sürümü aralığını da seçebilirsiniz. Paketi bilgisayarınıza kaydetmek için seçeneğe ek olarak İsim ve gerekirse ürün sürümünden sorumlu bir parametreyi belirtmeniz gerekir. Yol kurulumcunuzun gelecekteki konumuyla birlikte.

    Aşağıdaki çizimde görebileceğiniz gibi komut Save-Package –Ad Procexp –Yol C:\TestPosh Process Explorer'ın en son sürümünü C:\TestPosh klasörüne kaydedecektir:

    Yanlışlıkla yanlış paketi yüklediyseniz, kaldırmak için her zaman OneGet modülünü kullanabilirsiniz. Bunun için cmdlet kullanılır Kaldırma Paketi. Bu modüldeki diğer cmdlet'lerde olduğu gibi, bir programı kaldırmak için Name parametresini karşılık gelen uygulama adıyla belirtmeniz gerekir; ayrıca sessiz kaldırma için Force parametresini kullanabilirsiniz. Örneğin, önceden kurulmuş olan WinRAR'ı bilgisayarınızdan kaldırmak için aşağıdaki komutu çalıştırmanız gerekir: Kaldırma Paketi –WinRAR Adını –Force aşağıda olduğu gibi:

    Çözüm

    Bu makaleden, Microsoft'un yeni işletim sisteminin özelliklerinden birini, yani Windows PowerShell komut kabuğunu kullanarak yazılım ürünlerinin kurulumunu öğrendiniz. Size OneGet modülünün kendisinden, bu teknolojiyle birlikte kullanılan temel terminolojiden ve önceden yüklenmiş paket sağlayıcıların neler olduğundan bahsettim. Üçüncü taraf paket sağlayıcısını OneGet'e nasıl bağlayabileceğinizi ve bunun yazılımı bulmanıza, yüklemenize, kaydetmenize ve kaldırmanıza nasıl yardımcı olabileceğini öğrendiniz.

    Umarım bu bilgiler sizin için yararlı olmuştur ve yeni bir şeyler öğrenmişsinizdir. Bu makaledeki materyalle ilgili herhangi bir sorunuz varsa, yorumlarda onlara sorun, her türlü yardımı sağlamaktan memnuniyet duyarım.

    VN:F

    Değerlendirme: 9,9/ 10 (18 oy kullanıldı)

    Windows 10'da PowerShell kullanarak program yükleme, 18 değerlendirmeye göre 10 üzerinden 9,9

    Windows PowerShell, sistem yönetimi için tasarlanmış güçlü bir komut satırı kabuğu ve komut dosyası dilidir. Windows PowerShell, Windows işletim sisteminin yanı sıra Windows altında çalışan uygulamaların yönetimini yönetmek ve otomatikleştirmek için mükemmel bir araçtır.

    VBS komut dosyalarının ateşli bir hayranıydım. Çünkü daha önce Delphi kullandığım görevler için vbs betik dilinin oldukça uygun olduğunu fark ettim. Sonuçta, sadece bir not defteri açmak, oraya birkaç satır atmak, dosyayı istediğiniz uzantıyla kaydetmek ve komut dosyasını çalıştırmak çok daha uygundur. Bunu yapmak için Delphi gibi yine ücretli olan herhangi bir şey yüklemenize gerek yoktur.

    VBS kötü olmasa da, halefi PowerShell çok daha geniş işlevselliğe sahiptir.

    Görüntüleri bloglardan birine otomatik olarak yayınlayan bir vbs betiğim var. Eklenen görselin çözünürlüğüne göre görselin genişlik veya yükseklik olarak hizalanması gerekiyordu. Bu yüzden vbs betiği kullanarak görüntülerin çözünürlüğünü elde edemedim, ancak bu PowerShell aracılığıyla çok basit bir şekilde yapıldı.

    Eğer Windows 7'den başlayarak PowerShell, Windows'un kendisi ile birlikte gelir., daha sonra Windows XP'de indirip yüklemeniz gerekir - Windows XP SP3 için PowerShell V2'yi indirin.

    Powershell'in 5. sürümü şu bağlantıdan indirilebilir: microsoft.com, ayrıca istenen işletim sistemi için hangi dosyanın indirilmesi gerektiği ve nasıl kurulacağı da açıklanmaktadır.

    Yerel PowerShell komut dosyalarının çalışmasına nasıl izin verilir?

    Varsayılan olarak Windows, güvenlik nedeniyle PowerShell komut dosyalarının çalıştırılmasına izin vermez. Yerel komut dosyalarının çalışmasına izin vermelisiniz. Komutu konsolda çalıştırın (yerel komut dosyalarının ve güvenilir bir sertifikayla imzalanmış indirilen komut dosyalarının çalıştırılmasına izin verir):

    powershell -Komut Seti-ExecutionPolicy RemoteSigned

    Aksi takdirde, betiğinizi çalıştırmayı denediğinizde şu metni göreceksiniz:

    Bu sistemde komut dosyası oluşturmaya izin verilmediğinden C:\ImageSize.ps1 dosyası yüklenemiyor. Daha fazla bilgi için "get-help about_signing" yazın.
    + KategoriBilgisi: Belirtilmemiş: (:), ParentContainsErrorRecordException
    + FullyQualifiedErrorId: RuntimeException

    Bu güvenlik politikasını tekrar değiştirmek için şunu yazın:

    powershell -Komut Seti-Yürütme Politikası Kısıtlı

    Herhangi bir komut dosyasının imzayı kontrol etmeden çalıştırılmasına izin vermek için şunu yazın:

    powershell -Komut Seti-Yürütme Politikası Sınırsız

    Komut dosyasını çalıştırırken aşağıdaki mesajı görürseniz:

    Güvenlik Uyarısı Yalnızca güvendiğiniz komut dosyalarını çalıştırın. İnternetteki komut dosyaları yararlı olsa da, bu komut dosyaları bilgisayarınıza zarar verme potansiyeline sahiptir. \server\scripts\my.ps1'i çalıştırmak istiyor musunuz? [D] Çalıştırma [R] Bir kez çalıştır [S] Askıya al [?] Yardım (varsayılan "D"): d

    Ve ondan kurtulmak istiyorsanız, betiği çalıştırırken -ExecutionPolicy Bypass parametresini kullanın.

    Powershell -ExecutionPolicy Bypass -file "\\server\scripts\my.ps1"

    PowerShell betiği nasıl çalıştırılır?

    Komut satırına komutu girin

    Powershell - Komut dosyanızın adını.ps1 dosyasını dosyalayın

    Burada your-script-name.ps1 betiğinizin adıdır. PowerShell betik dosyaları *.ps1 uzantısına sahiptir

    Windows PowerShell Yardımı veya Yardımı

    PowerShell'in belirli yardım almak için çeşitli cmdlet'leri vardır. Ama en önemlisi: Yardım Alın

    Konsola komutları girin:

    powershell -komut Get-Yardım

    powershell -komut Get-Yardım -?

    Yardımın nasıl kullanılacağına ilişkin birbirini tamamlayan iki farklı açıklama alacaksınız.

    Yardım seçenekleri, Rusça örnekler ve ayrıntılı açıklamalarla oldukça kapsamlıdır. Bu nedenle çeşitli formatlarda görüntüleyebilirsiniz.

    Örneğin:

    • powershell -command Get-Help Get-Help - Get-Help cmdlet'i için genel yardım
    • powershell -command get-help Get-Help -examples - get-help cmdlet'inin nasıl kullanılacağına ilişkin örnekler
    • powershell -command get-help Get-Help -detaylı - get-help cmdlet'i için ayrıntılı yardım
    • powershell -command get-help Get-Help -full - get-help cmdlet'i için en eksiksiz yardım

    winintro.ru/windowspowershellhelp.ru/ - bir html kitabı biçiminde yardım

    Windows Powershell hakkında notlar:

    Karşılaştırma Operatörleri

    • -eq - Eşit - Eşit
    • -ne - Eşit değil - Eşit değil
    • -ge - Büyüktür veya eşittir - Daha Fazla veya Eşit
    • -gt - Büyüktür - Daha Fazla
    • -lt - Daha az - Daha az
    • -le - Küçük veya eşit - Küçük veya Eşit
    • -like - Joker karakter karşılaştırması - Bir modeli eşleştirmek için joker karakter kullanma
    • -beğenmiyorum - Joker karakter karşılaştırması - Bir modeli eşleştirmek için joker karakterler kullanın
    • -match - Normal ifade karşılaştırması - Bir modeli eşleştirmek için normal ifadeleri kullanın
    • -notmatch - Normal ifade karşılaştırması - Bir kalıp eşleşmesi bulmak için normal ifadeleri kullanın
    • -replace - Operatörü değiştir - Operatörün solundaki değerin bir kısmını veya tamamını değiştirir
    • -contains - Sınırlama operatörü - Operatörün solundaki değerin sağındaki değeri içerip içermediğini belirler. Sonuç bir boole değeridir
    • -notcontains - Sınırlama operatörü - Operatörün solundaki değerin sağındaki değeri içermediğini belirler. Sonuç bir boole değeridir

    Varsayılan olarak karşılaştırma işleçleri büyük/küçük harfe duyarlı değildir.
    Büyük/küçük harfe duyarlı karşılaştırma için komutun önüne "c" eklenir. Örneğin, büyük/küçük harfe duyarlı -eq operatörü "-ceq" olarak değiştirilir.
    Açıkça büyük/küçük harfe duyarlı olmayan bir karşılaştırma için, komutun önüne "i" eklenir. Örnek: büyük/küçük harfe duyarlı olmayan -replace operatörü -ireplace olacaktır

    • -is - Bir türdür
    • -isnot - Bir tür değil
    • -as - Tür olarak, dönüştürme başarısız olursa hata olmaz

    PowerShell mantıksal operatörleri:

    • -ve - İfadenin doğru olması için her iki koşulun da doğru olması gerekir
    • -veya - İfadenin doğru olması için koşullardan birinin veya her ikisinin de doğru olması gerekir
    • -xor - İfadenin doğru olması için bir koşulun doğru, ikincisinin ise yanlış olması gerekir
    • -not - İfadenin doğru olması için belirtilen koşulların false olarak değerlendirilmesi gerekir
    • ! - İfadenin doğru olması için belirtilen koşulun yanlış olarak değerlendirilmesi gerekir

    $myVar - "String" $myVar -eq 123 $myVar -ceq $myVar2 "abcdef" -like "abc*" "abcdef" -replace "dEf", "xyz" $myVar1 - "String" -ve $myVar2 -"Int" (1 -eq 1) -ve -değil (2 -gt 2)

    Dize İşlemleri

    #Bir dizeyi boşluklara göre bölün: $string = "Test dizesi" $string.split(" ") $string.IndexOf(" ") #$string içindeki ilk boşluğu arayın # İlk oluşumun sıfır tabanlı dizinini döndürür of PS> "abcdeabcde". indexOf("cde") 2 # Belirtilen karakterin son oluşumundan itibaren sayılan dizin konumunu döndürür PS> "abcdeabcde".lastIndexOf("c") 7 # 1 konumundan başlayarak alt dizeyi döndürür PS > "abcdefgh".Substring(1) bcdefgh # 1 konumundan başlayan ve 4 karakter uzunluğunda bir alt dize döndürür PS> "abcdefgh".Substring(1,4) bcde # 0 konumundan bir alt dize ekleme PS> "abcdefgh".insert( 0,"X") Xabcdeabcde # 0 konumundan silme uzunluk 2 PS> "abcdefgh".remove(0,2) cdeabcde # Nesne özelliği - dize uzunluğu PS> "abcdefgh".length 8 # Eğer dize alt dizeyi içeriyorsa True değerini döndürür "cde" PS> "abcdefgh" .Contains("cde ") True # Eğer dize alt dizeyle başlıyorsa True değerini döndürür "abc" PS> "abcdefgh".startsWith("abc") True # Dizi şununla bitiyorsa True değerini döndürür: alt dize "fgh" PS> "abcdefgh".endsWith("fgh" ) True # Eğer dize "cde" alt dizesini içeriyorsa True değerini döndürür PS> $"abcdefgh" -like "*cde*" True # Bir dizi döndürür; burada " d" sınırlayıcıdır PS> "abcdefgh" -split "d" abc efgh # İki ":"den birleştirilmiş bir dize döndürür - sınırlayıcı PS> "abcdefgh", "xyz"-join ";" abcdefgh;xyz # "abc"nin "XYZ" ile değiştirileceği bir dize döndürür PS> "abcdefgh".replace("abc","XYZ") XYZdefgh # Karakterlerin BÜYÜK HARF PS> "abcdefgh"e dönüştürüldüğü bir dize döndürür .ToUpper( ) ABCDEFGH # Karakterlerin küçük harfe dönüştürüldüğü bir dize döndürür PS> "ABCDEFGH".ToLower() abcdefgh

    Önceden Tanımlanmış Değişkenler

    $ev– kullanıcı dizini
    $BOŞ- boş
    $doğru- doğru
    $yanlış– pansiyon
    $DebugPreference– “Devam Et” hata ayıklama bilgilerini görüntüler, “Sessizce Devam Et” hata ayıklama bilgilerini görüntülemez. Bkz. Yazma-Hata Ayıklama komutu

    Dosyalarla çalışma

    $dize | Out-File $file -Append #Append $string ile dosyaya yeni bir satır $file $string = get-content -Path $file #Dosyanın içeriğini $string $file $jokes = ::ReadAllText($ dosyası) #dosyanın tamamını tek satırda okuyun Test Yolu "C:\test.txt" #Dosyanın varlığını kontrol edin

    Bir dizinde ve alt dizinlerde belirli bir uzantı uzantısına sahip tüm dosyaları bulun.
    Daha sonra bu dosyaları başka bir dizine kopyalayın.

    $flist = get-childitem e:\doc\* -include *.pdf -recurse $flist | ForEach-Object($_.CopyTo("e:\doc\all_pdf\" + $_.PSChildName)) ls d:\ | ?($_.psiscontainer) | tam adı seç #Yalnızca dizinleri göster ls d:\ | ?(!$_.psiscontainer) | tam adı seç #Yalnızca dosyaları göster $local = Get-Konum #Geçerli dizin $local.Path # Çalışma dizini $local.Drive.Root # Kök $local.Drive.Name # Sürücü harfi $local.Drive.Used # Kullanılan sürücü $local .Drive.Free # Diskte ücretsiz

    1 Haziran 2014 ile 20 Eylül 2014 arasındaki dönemde değişen D: sürücüsündeki dosyaların tam adlarının görüntülenmesi:

    Ls d:\ -recurse | ?(!$_.psiscontainer) | tam adı seçin, LastWriteTime | Where-Object ( $_.LastWriteTime -ge "01/06/2014" -ve $_.LastWriteTime -le "09/20/2014")

    Metnin ekranda görüntülenmesi

    # dikkat edilmesi gereken metin. Sarı vurgulanır. Write-Warning("Dikkat gerektiren metin") # Sadece metni görüntüler Write-Host("Sadece metin") #etkin hata ayıklama bilgisi $DebugPreference = "Devam" # hata ayıklama bilgisi görüntülenir Write-Debug "Dosya açılamıyor." # hata ayıklama çıktısı devre dışı bırakıldı $DebugPreference = "SilentlyContinue"

    Birkaç saniye duraklatın

    Start-Sleep -s 15 # 15 saniye duraklat

    Enter tuşuna basana kadar konsolu duraklatın

    Okuma-Ana Bilgisayar "Enter'a basın"

    Süreçlerle Çalışmak

    #Görev: Not Defteri adlı tüm işlemleri sonlandır # Yöntem No. 1 get-process Not Defteri | Stop-Process # Yöntem #2 (Yalnızca bir işlemle çalışır) $plist = get-process Not Defteri $plist.Kill() # Yöntem #3 (2 ile aynı, ancak tüm işlemler) $plist = get-process Not Defteri $ plist | ForEach-Object ($_.Kill()) #Get süreçleri ve bunların başlangıç ​​tarihleri: Get-Process| Biçim-Tablo Adı,BaşlangıçZamanı -Otomatik Boyut

    Artış

    $i++ - i çağrıldığında eski değere sahiptir, ancak bundan sonra 1++ artırılır

    ++$i - çağrıldığı anda i değeri 1 artırılır

    Diziler

    $dizi = 17,15,160 #üç öğeden oluşan bir dizi oluşturuldu $dizi -$eleman içerir #dizi öğe içeriyor mu $dosya1 #dizinin 0. öğesi $dosya1.sayısı #dizinin boyutu #"asdf" öğesini diziden kaldırıyor dizi $dizi = @ ("adsf", "adf", "erge") $dizi = $dizi |? ($_ -ne "adf") #yalnızca benzersiz dizi öğelerini alın $a = @(1,2,3,4,5,5,6,7,8,9,0,0) $a = $a | $array.indexOf("cde") dizisindeki bir öğenin ilk geçtiği yerin -uniq #index'ini seçin

    If Elseif Else yapımı

    if ($i -eq 0) ( Write-Host("i sıfırdır") ) ElseIf ($i -eq 1) ( Write-Host("i birdir") ) Else ( Write-Host("i değildir) sıfır veya bire eşit")

    Her Döngü İçin

    $services = Get-Service ForEach ($services'te $service) ( $service.Stop() ) 65 #aSCII kodunu "A" karakterine dönüştürün #convert karakteri ASCII koduna dönüştürün "Merhaba" #dizeyi ASCII kodlarına dönüştürün

    Herhangi bir tuşa basılmasını bekliyoruz:

    $HOST.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown") | OUT-NULL $HOST.UI.RawUI.Flushinputbuffer() $host.ui.RawUI.WindowTitle = "elimS Pencere Başlığı" #задаем заголовок окна !}

    PowerShell'deki Veri Türleri

    En yaygın türler:

    Sabit uzunlukta Unicode karakter dizisi Bir Unicode 16 bit karakter 8 bit işaretsiz karakter 32 bit işaretli tam sayı 64 bit işaretli tam sayı Boole Doğru/Yanlış değeri 128 bit ondalık değer Tek duyarlıklı 32 bit kayan noktalı sayı Çift -hassas 64 bit kayan noktalı sayı Tarih ve Saat Xml nesnesi Bir dizi değer Hashtable nesnesi

    Ayrıca yerleşik sabitler de vardır: $true,$yanlış, $null

    Unicode: Bir PowerShell dizesindeki bir Unicode karakterini kodlamak için, unicode'un önüne 0x ekleyin ve bunu System.Char'a aktarın:

    PS > 0x263a ☺

    Veri türü dönüşümü

    Belirli bir veri türüne dönüştürmeyi zorlamak için, değerin veya değişkenin önüne köşeli parantez içindeki türü ekleyin; buna, Cast Operatörü ve seçilen veri tipini zorlar:

    PS C:\> "0064" 64 PS C:\> $false 0 PS C:\> ("0x" + "FF") 255

    Veri Türlerini Test Etme

    PS C:\>32 -is
    True PS C:\> $true -is
    Doğru

    Powershell'deki işlevler

    function elimS ( #birkaç giriş parametresine sahip fonksiyon param($string = "varsayılan değer", $tamsayı = 7) #input parametreleri write-host "string = " $string " | integer = " $tamsayı ) elimS #tanımsız işlev çağrısı Parametrelerin varsayılan değerini alacaktır $string = "test string" $integer = 911 elimS $string $integer #işlev bu şekilde doğru şekilde çağrılır - parametreleri boşlukla ayırırız elimS -integer $integer -string $string #bu da doğrudur $global:var1 = "test" global bir değişkendir, dolayısıyla değişkenlerin değerini işlevlerden iletebilirsiniz.

    Bir işleve birden çok parametrenin nasıl aktarılacağı hakkında daha fazla bilgi:

    Dinlenmek

    get-host #powershell sürümünü göster Clear-RecycleBin c: -Geri dönüşüm kutusunu #boşaltmaya zorla Sıkıştır-Archive -Yol C:\test\* -DestinationPath C:\archive\test1.zip #klasörü arşivle Genişlet-Arşiv -Yol C :\temp \test1.zip "C:\test\Yeni klasör\" #arşivi paketinden çıkarın (Get-CimInstance Win32_operatingSystem).lastbootuptime #sistem önyükleme zamanını göster yazma-ana bilgisayarı $sleep_array.GetType().FullName #değişken tipi anahtarını göster ($a) ( #case - multiple if 1 ($b = $b+10 ) 2 ($b = $b+20 ) 3 ($b = $b+30 ) 4 ($b = $b+40 ) default ($b = $b+50) ) Get-Content -Path "C:\scripts\test.txt" -Wait #linux'taki kuyruğun analoğu

    Powershell cmdlet'leri

    Sıralama-Nesne- Nesnelerin özelliklerinin değerlerine göre nesneleri artan veya azalan sırada sıralar. Bir özelliği veya birden çok özelliği ayarlayabilirsiniz (birden çok tuşa göre sıralama) ve büyük/küçük harfe duyarlı veya büyük/küçük harfe duyarlı olmayan şekilde sıralama yapmayı seçebilirsiniz. Ayrıca Sort-Object cmdlet'inin yalnızca belirli bir özellik için benzersiz değerlere sahip nesneleri görüntülemesini de sağlayabilirsiniz.

    Öğeyi Kopyala- bir öğeyi ad alanındaki bir konumdan diğerine kopyalar. Copy-Item cmdlet'i kopyalanan öğeleri silmez. Cmdlet'in kopyalayabileceği öğe türleri, Windows PowerShell sağlayıcılarının kullanılabilirliğine göre belirlenir. Örneğin, FileSystem sağlayıcısıyla cmdlet'i kullandığınızda dosyalar ve klasörler kopyalanır, Kayıt Defteri sağlayıcısını kullandığınızda kayıt defteri anahtarları ve girişleri kopyalanır.

    Öğeyi Taşı- Bir öğeyi özellikleri, içeriği ve çocukları dahil olmak üzere bir konumdan diğerine taşır. Verilen her iki konumun da aynı sağlayıcı tarafından desteklenmesi gerekir. Örneğin, bir dosyayı veya alt dizini bir dizinden diğerine taşıyabilir veya bir kayıt defteri alt anahtarını bir anahtardan diğerine taşıyabilirsiniz. Bir öğeyi taşıdığınızda orijinal konumunda silinir ve yeni bir konumda oluşturulur.

    Öğeyi kaldırmak- bir veya daha fazla öğeyi siler. Bu cmdlet birçok satıcı tarafından desteklendiğinden dosyalar, dizinler, kayıt defteri anahtarları, değişkenler, takma adlar ve işlevler dahil olmak üzere çeşitli öğe türlerini silebilir.

    Get-ChildItem- Verilen konumlardan öğeleri alır. Öğe bir kapsayıcı ise, bu cmdlet kapsayıcıdan alt öğeler olarak adlandırılan öğeleri alır. Tüm alt kapsayıcılardan öğeleri almak için Yineleme seçeneğini kullanabilirsiniz. Konum, bir dizin gibi bir dosya sistemi konumu veya kayıt defteri kovanı veya sertifika deposu gibi başka bir sağlayıcı tarafından sağlanan bir konum olabilir.

    Powershell cmdlet'i seçenekleri

    -ErrorAction- parametre tüm cmdlet'lerde mevcuttur; bir hata oluştuğunda gerçekleştirilecek eylemi belirtmenize olanak tanır:

    • Devam et - bir hata mesajı görüntüleyin ve yürütmeye devam edin
    • SilentlyContinue - hatayı yok sayın ve devam edin
    • Durdur - ilk hatada yürütmeyi iptal et
    • Sorgula - bir hata oluşursa daha sonra ne yapılacağına ilişkin bir istek görüntüleyin

    Örnek: Copy-Item "d:\test1\klbackup*" "d:\test2\" -ErrorAction stop

    -Farzedelim- bir komutun sonucunu gerçekte çalıştırmadan açıklayan bir mesaj görüntüler. Tüm cmdlet'lerde bulunur.

    about_CommonParameters hakkında yardım alın- herhangi bir cmdlet ile kullanılabilecek parametrelerin açıklaması.

    Powershell aracılığıyla SSH

    SSH aracılığıyla nasıl çalışabileceğinize bir örnek:

    #Find-Module Posh-SSH | Install-Module #Bir SSH oturumu oluşturun: Import-Module Posh-SSH $ComputerName = "1.2.3.4" $UserName = "ubuntu" $KeyFile = "C:\SSH\key.pem" $nopasswd = new-object System. Güvenlik .SecureString $Crendtial = Yeni Nesne System.Management.Automation.PSCredential ($UserName, $nopasswd) $SSHSession = New-SSHSession -ComputerName $BilgisayarAdı -Credential $Crendtial -KeyFile $KeyFile #Bir kabuk oluşturun: $SSH = $ SSHSOturumu | New-SSHShellStream # komutu gönderir $SSH.WriteLine("ifconfig") # yanıtı okur $SSH.read() # oturumu kapatır: $sshSession | SSHS Oturumunu Kaldır

    Takımlar:

    • Get-SSHTrustedHost - güvenilir ana bilgisayarları görüntüleyin
    • Get-SSHSession - açık oturumların listesini görüntüleyin
    • Remove-SSHSession - oturumu kapat

    Not. Bu modülü WMF 5.0 yüklemeden kullanabilirsiniz. Modülün PS 4.0 ve 3.0 için önizleme sürümü ayrı olarak Mart 2016'da mevcuttur ve daha yeni sürümler için PackageManagement PowerShell Modülleri Önizlemesi indirme merkezinde arama yapın.

    Programları yükleme

    Bu örnekte, Chocolatey deposundan dört program ve bir dizi Sysinternals yardımcı programı yüklenir. İlk üç komut bir kez yürütülür ve politika değişikliğinin onaylanması gerekir. Dördüncü komut, listelenen programları sessizce yükler ve beşinci, yalnızca zaman kazandırır.

    #İnternet Set-ExecutionPolicy RemoteSigned'den imzalı paketlerin yüklenmesine izin verin #Choclawy sağlayıcısını yükleyin Get-PackageProvider –Name Chocolatey -ForceBootstrap #Make Chocolatey'i güvenilir hale getirin Set-PackageSource -Name Chocolatey -Trusted #Programları yükleyin Install-Package NotepadPlusPlus, vlc, firefox, filezilla, sysinternals -Verbose -Force -ProviderName çikolata #Yürütülebilir dosyaların (sysinternals) yolunu PATH'e ekle setx PATH "$env:path;C:\Choculatey\bin" -m

    Tedarikçi C:\Choculatey\lib dizinine, ChocolateyInstall.ps1 komut dosyasını temel alan bir paket indirir. Program yükleyicisini resmi web sitesinden %temp%\Choculatey klasörüne indirir ve sessiz kurulum modunda çalıştırır. En basit örnek Notepad++'dır.

    Install-ChoculateyPackage "notepadplusplus" "exe" "/S" "https://notepad-plus-plus.org/repository/6.x/6.9/npp.6.9.Installer.exe"

    Programları ara

    Depolarda pek çok program var, en popüler olanların hepsi kesinlikle orada.

    Find-Package "*zip*", "*commander*" -ProviderName Chocolatey

    Yükleyici türleri ve sessiz kurulum anahtarları

  • Windows otomatik kurulum sitesi ve program otomatik kurulum forumu
  • Windows güncellemelerini Powershell aracılığıyla yükleme

    • Microsoft web sitesinden Windows Update PowerShell Modülünü indirin.
    • Arşivi %WINDIR%\System32\WindowsPowerShell\v1.0\Modules klasörüne açın
    • Henüz yerel scriptlerin çalıştırılmasına izin vermediyseniz hadi yapalım: “Set-ExecutionPolicy RemoteSigned”.
      • "Get-ExecutionPolicy" komutunu kullanarak kontrol edebilirsiniz: "Kısıtlı" yerine "RemoteSigned" olmalıdır
    • İndirilen modülü şu komutla içe aktarın: "Import-Module PSWindowsUpdate"
    • Hazır. Artık komutları kullanabilirsiniz:
      • Mevcut güncellemelerin listesini görüntüleyin: Get-WUInstall -ListOnly
      • Onay istemeden tüm güncellemeleri yükleyin: Get-WUInstall -AcceptAll
      • Onay istemeden tüm güncellemeleri yükleyin ve yeniden başlatmayı erteleyin: Get-WUInstall -AcceptAll -IgnoreReboot
      • Numaralarını bilerek belirli güncellemeleri yükleyin:"Get-WUInstall -KBArticleID KB3066441, KB3078676 -AcceptAll -IgnoreReboot" - artık Microsoft web sitesine gidip bunları manuel olarak indirmenize gerek yok
      • Modül hakkında ayrıntılı yardım: get-help Get-WUInstall -ayrıntılı
      • "Dil paketleri" kategorisi, "Skype" başlıkları ve KB3012973 güncellemesi hariç mevcut güncellemelerin listesini görüntüleyin: Get-WUInstall -NotCategory "Dil paketleri" -NotTitle Skype -NotKBArticleID KB3012973 -ListOnly
      • "Dil paketleri" kategorisi, "Skype" başlıkları ve KB3012973 güncellemesi dışındaki güncellemeleri yükleyin: Get-WUInstall -NotCategory "Dil paketleri" -NotTitle Skype -NotKBArticleID KB3012973 -AcceptAll -IgnoreReboot

    Merhaba. =)
    Windows Server yönetimiyle ilgili bir başka iğrenç makale, işletim sisteminin kullanıma ilk hazırlanmasına ayrılmıştır. GUI'li Windows Server'ın (Grafik kullanıcı arayüzü) temel sürümünün yanı sıra Windows Server 2012 Core ve üzeri sürümlerde Powershell'in zaten kurulu olması beni şaşırttı, Windows Server 2008R2 Core'da orada olması beni çok şaşırttı. onun kokusu yok. Çünkü Kurulum pek açık değildi ve Google'da ve technet'te gezinmem gerekiyordu, geleceğe yönelik kısa bir not yazmaya karar verdim.

    Yani öncelikle en azından PowerShell 2.0'ı elimizde tutacağız (aslında aşağıda anlatılanların hepsini cmd'de yaparak bu adımı atlayabilirsiniz ama ben bununla başladım). Bu iki şekilde yapılabilir: komut satırında sconfig.cmd yardımcı programını çalıştırarak veya DISM ( Dağıtım Görüntüsü Hizmeti ve Yönetimi) aynı yerde. Birincisi bize sözde grafiksel bir arayüz sunuyor; burada 4. maddede PS 2.0'ı kurma fırsatını bulacağız.

    Bu, DISM aracılığıyla aşağıdaki şekilde yapılır:
    dism.exe /çevrimiçi /etkinleştirme özelliği:MicrosoftWindowsPowerShell

    PS'yi kurduktan, yeniden başlattıktan ve elimizde biraz daha yeterli bir araç aldıktan sonra, onu mevcut sürüme güncellemeye çalışacağız. Yazma sırasında sürüm 4.0 veya önizleme sürümü 5.0'dır. Benim için minimum kullanılabilir sürüm, sürüm 2'de eksik olan, sunucu rollerini ve kaynakları yönetmek için zaten birçok cmdlet'e sahip olan sürüm 3.0'dır. Windows PowerShell 3.0, sistemde .Net Framework 4.0 veya üzerini gerektirir.
    Şimdi .Net 4.0'ı yüklemeye çalışırsak, bunun için zaten yüklü .Net 2.0'a ihtiyacımız olduğunu öğreneceğiz ve bu, bazı nedenlerden dolayı Sunucu Çekirdeği sürümünde eksik. Komik, ancak alışkanlıktan dolayı yükleyiciyi indirip başlattıktan sonra, yüklemeyi reddedeceğiz ve dism.exe'yi kullanma ihtiyacı hakkında bir bildirim alacağız. >_< OK, dism, так dism. Уставливается по аналогии с PS:
    dism.exe / çevrimiçi / etkinleştirme özelliği: NetFx2-ServerCore
    dism.exe / çevrimiçi / etkinleştirme özelliği: NetFx2-ServerCore-WOW64

    Bir sonraki adım .Net Framework'ü en son sürüme güncellemektir. Powershell 3.0 kullanmak istiyorsanız .Net 4.0 yükleyin ancak son sürümü istiyorsanız .Net 4.5.1 ve üstüne ihtiyacınız olacak. Seçim sizin; kurulumu son derece basittir. Tek sorun yükleyici paketinin alınmasında olabilir - tüm kurulum dosyalarını yüklediğim sunucuya bir ağ sürücüsü bağladım; Size uygun herhangi bir depolama ortamını kullanabilirsiniz.

    Böylece PS 3.0 ve sonraki sürümlerini yüklemek için temel hazırladık. Bir sonraki adım, Windows Management Framework yükleyicisini indirip yüklemektir. İhtiyacımız olan mimarinin KB2819745'ini indirip çalıştırın:

    Geleneksel olarak, kurulumdan sonra yeniden başlatmaya ihtiyacımız olacak; tamamlandıktan sonra PowerShell 4.0 elimizde olacak.

    Bu arada, sunucu rollerini yapılandırmak amacıyla Add-WindowsFeature cmdlet'ini (Windows Server 2012'de Install-WindowsFeature olarak yeniden adlandırılmıştır) kullanabilmek için, Sunucu Yöneticisi bileşenlerini aynı DISM.EXE aracılığıyla yüklemeniz gerekecektir. Şuna benziyor:
    dism.exe /çevrimiçi /enable-feature:ServerManager-PSH-Cmdlet'ler
    Genel olarak PS'nin son sürümleri beni çok şımartıyor çünkü... Üçüncü sürümün yayınlanmasından sonra üzerinde çalışmaya başladım, ancak ortaya çıktı ki dism.exe'yi yalnızca rolleri yüklemek için kullanabiliyorsunuz. İhtiyacınız olan özelliğin adını bilmiyorsanız, /get-features parametresi aracılığıyla her zaman mevcut tüm seçeneklere ve bunların durumlarına bakabilirsiniz. Ancak bence Get-WindowsFeature çok daha bilgilendirici. =)
    dism.exe / çevrimiçi / get-features vs. Get-WindowsFeature