Windows 7'de powershell dosyasını çalıştırın. Powershell: Programla nasıl çalışılır, komut dosyaları oluşturulur, çalıştırılır ve değiştirilir. Windows PowerShell sürümleri

Golovna / Zahist

PowerShell'de, hangi kod türünün zekâya izin verildiğini belirleyen bir dizi silme modu vardır. Her şey HKLM'de yaşayan bir kayıt defteri anahtarı tarafından kontrol edilir. 4 farklı izleme modu kullanın:

obmezheny(Kısıtlı): Kilitleme ilkesi, komut dosyası oluşturmaya izin vermez ve yalnızca etkileşimli komutlara izin verir.

imzalamış olmalı(Tümü İmzalı): Robotun tüm komut dosyalarını çalıştırmasını sağlar. Doğru, tüm komut dosyaları ve yapılandırma dosyalarının güvendiğiniz bir kişi tarafından imzalanması gerekir; Danimarka modu tanıklar tarafından onaylandıktan sonra (ale shkіdlivih) komut dosyalarını imzalama riskinden dolayı cezalandırılırsınız.

Vidal imzalar(Uzaktan İmzalı): Yerel komut dosyaları imza olmadan çalışır. Ana dijital imza nedeniyle komut dosyalarını indirmesi gerekir.

Mobilyasız(Sınırsız): İletişim programlarından kaldırılan komut dosyalarını ve yapılandırma dosyalarını kullanın, örneğin Microsoft Outlook, Internet Explorer, Outlook Ekspresі Windows Messenger, dosyanın İnternet'ten geldiğini bildiğiniz onaylandıktan sonra çalışır; Yok dijital imzalar gerekmez; bu mod, imzasız, shkidlivih komut dosyalarının robotunu riske atar.

PowerShell promosyonlarının arkasında "Et" modu bulunur. Bu modda, PowerShell artık etkileşimli bir kabuk gibi çalışmaz. Komut dosyalarının çalışmasına izin verin ve bu yapılandırma dosyalarını güvendiğiniz bir kişi tarafından imzalanmış gibi yakalayın.

Şiddetli bir kırmızı af kabul ederseniz, o zaman, kural olarak, görünüşünüz kendisinden kaynaklanmaktadır, bu yüzden imzasız bir komut dosyası çalıştırmaya çalışıyorsunuzdur. Sorunu çözmenin en güvenli yolu, politikayı çitsiz olarak değiştirmek, komut dosyasını çalıştırmak ve ardından çit politikasına geri dönmektir.

Politikayı kapalı olmayan olarak değiştirmek için, yönetimsel PowerShell'de aşağıdaki komutu çalıştırın:

Set-ExecutionPolicy Sınırsız

Lütfen onay isteyin. Enter tuşuna basın.

Artık görev betiğini çalıştırabilirsiniz. Ancak ciddi bir riskle karşı karşıyasınız, bu nedenle robotik senaryoyu bitirdikten sonra politikayı tekrar aykırı değer moduna çevirmeyi unutmayın. Bunu hücum takımının yardımı için yapabilirsiniz:

Set-ExecutionPolicy Kısıtlı

Tekrar onay rica ediyorum. Enter tuşuna basın.

Ben hepinizden! Sana iyi şanslar!

73095

І vicauchi menüsü Windows'u başlat 7 veya koçanı ekranı Windows 8 1, koristuvachі-pochatkіvtsі genellikle tanımadıkları anlamadıkları programları kendileri için açar. Böyle bir program PowerShell'in kendisidir. Yeni hoch yakys anlamda aynı PowerShell ve chi nedir? Pekala, bir şey icat ettiyseniz ve onu Windows'a entegre ettiyseniz, bu sonuçta iyi bir fikir olduğu anlamına gelir. Konuşmadan önce, PowerShell'i icat eden cim є Microsoft.


Baba, . Bu program atanmış, sistem yöneticilerinin önündeyiz ve eksen basit, daha tomurcuklu, kendi başınıza çekmeniz mümkün değil. PowerShell artık standartlaştırılmış bir kabuktur Komut satırı Bu, bir bilgisayarı ameliyathane bazında yönetmenin büyük esnekliğini sağlar. Windows sistemleri. Esasen, PowerShell aynıdır Komut satırı, Ale, ama zengin işlevsel.

Yönetim aracı nedir? Ne bir baget. Sistem yöneticilerinin ve bilgili adli tabiplerin yardımıyla süreçleri, hizmetleri, dosya klasörlerini, hesapları ve sunucuları kullanabilirler. Ayrıca, kabuk çalıştırmanıza izin verir yabancı takımlar, nesnelerle pratik yap .AĞ, COMі XML, farklı hileler vb. çalışın, kendi senaryolarınızı yaratın ve kazanın. Konuşmadan önce, Windows'ta komut dosyaları yazmak için özel bir grafik konsol aktarıldı. İMKB, ana PowerShell kabuğuna kendi ekidir.

Yak ve konsol cmd, PowerShell kabuğunun cmdlet'ler adı verilen kendi komutları olabilir. Yardımcı program birçok CMD komutunu tanır, ancak genel olarak filmin sözdizimi, cmdlet'lerin ataması ve parametreleri, büyük komut satırında bachiti gibi ses çıkardıkları gerçeğine göre ayarlanır. Ek olarak, komutları bilin yön , CD , kopyala ve benzeri, mucizevi bir şekilde PowerShell'i anlıyormuş gibi, aslında takma adlar. Örneğin, takım yön revizyon için hizmet dosya sistemi"yerel" cmdlet'e yanıt ver Get-ChildItem. Takma adlar veya her zamanki gibi takma ad, yalnızca netlik uğruna hizmet eder.

Özellikle harika bir komut satırının temellerini öğrenmek istiyorsanız, PowerShell'i kullanmaya başlamak kolay olmayacak. Ve posіbnikіv ve dovіdnikіv, dosit zrozumіlih ve zavoєnnya için basit, çok zengin değil. Є Frank Koch tarafından yazılan uygunsuz yardım, buna aşina olmanızı öneririz, böylece yine de PowerShell senaryo filminin geliştirilmesine devam etmeye cesaret edebilirsiniz. Açıktır ki, kabuk sistemi güçlüdür.

Vaughn yırtılmış ve yırtılmış, belirli bir izmarit yok. Koristuvatisya'yı bitirmek kolaydır. Sistemin cmdlet tarafından nasıl görüntülenebileceği hakkında temel bilgiler Yardım almak. Kullanılabilir komutların listesini görüntülemek için cmdlet.

Bu yazımızda Microsoft firmasındaki bu teknolojiye şöyle bakabiliriz. Windows PowerShell'i, PowerShell'in ne olduğu, cmdlet'lerin ve ardışık düzenlerin ne olduğu, komut dosyalarının ve modüllerin nasıl yazılacağı ve ayrıca Windows PowerShell'in eşit derecede önemli ve ilginç diğer özelliklerinin nasıl kullanılacağı hakkında konuşacağız.

PowerShell ortaya çıkmadan önce ( ve taban) Hizmetlerin otomasyonu ve yönetimi için gelişmiş araçlar: Windows komut satırı ve Windows Komut Dosyası Ana Bilgisayarı. Ale ve teknolojinin eksiklikleri olabilir.

komutada Windows satırları Bu, her gün, her gün, her şey dahil, bu komut dosyasıyla birlikte, bu komut dosyasıyla (vіgkoristіkіtіn, canstruvtіmіkіnіkіtіtіtіtіtіtіtіtіtіtіtіtіnіnіnііtіtіtіtіtіnіtііtіtіtіtіtіtіtііtііtіі ііі іііtіі ііtііtіtіtіtіtіtіtіtіtіtіtіtіtіtіtіnіtіtіtіtіtіtіtіtіtіtіtіtіtіtіtіtіtіtіtіtіtіtіtіtіtіtіtіtіtіtіtіtііvіvіvіvіvіvіvіvvіgіdіg,

büyüklük yazılım ürünleri bir konsol arayüzünüz var, o kadar. robot için grafik arayüzün günlük ödeneği için kaynakları korurken programı, vicorist komut satırı kullanabiliriz. Sunucu işletim sistemi için Microsoft Windows Server grafik arayüzü olmayan navit vypuskaє sürümleri ( Windows Server 2016 Nano Sunucu için Sunucu Çekirdeği), çok az, çitin komut satırının yeteneğinin parçaları, tobto. mümkün olmayanı otomatikleştirmek için katlanır bir mantık olarak yazın, ancak mümkünse, o zaman bir saate ve bilgiye ihtiyacımız var.

Ayrıca, küçük bir komut satırı, sunucu mi vikoristovuemo tarafından tam ölçekli bir hizmet için farklı olanlardır. konsol yardımcı programları yazılım ürünleri ve yönetim için komut satırını kazanmak, tüm yardımcı programların farklı sözdizimine, parametrelere, hack yöntemlerine sahip olması ve tipik görevleri kazanmak için tobto açısından gerçekten harika. schodenni, hafızada aynı şekilde akla getirilecek ve vikonannya atipik görevler için belgelerin son halini okumak için geri getirilecek.

Windows Komut Dosyası Ana Bilgisayarı teknolojisi, WSH komut dosyaları yazarak otomasyon da dahil olmak üzere komut satırı gibi tüm yönetim görevlerini hacklemenize olanak tanır, ancak burada tüm programlama dilini de hackleyebiliriz ( VBScript ve JScript), o zamanlar. katlama mantığı ve algoritmaları uygulayabilirsiniz. Bundan önce, WSH'nin yardımıyla yazılım ürünlerini bir nesne arayüzü üzerinden kullanmak mümkündür, aksi takdirde Windows sözcükleri Komut Dosyası Barındırıcısı zengin " soğutucu» alt komut satırı. bira verilen teknoloji ayrıca sistem yöneticileri için yönetim ve yönetim otomasyonu için ideal bir araç haline gelmedi, çünkü Windows Komut Dosyası Sisteminin sistem yöneticileri için gerçek bir uygulama olan diğer programlama dillerinin listesini bilmesi gerekiyordu. Yöneticiler yalnızca bir kod gibi programlama yeteneğine sahip basit bir yönetim aracına ihtiyaç duyarlar, ancak yazılım ürünlerinin nesne modelinde kaybolmak istemezler.

Sonuç olarak, Microsoft'un sistem yöneticileri için hem idari yetenekler ve otomasyon açısından hem de verimlilik ve basitlik açısından sistem yöneticilerinin tüm ihtiyaçlarını karşılayan böyle bir yönetim aracı geliştirmesi gerekiyordu, vikoristannya.

Windows PowerShell nedir?

Windows PowerShell'i– bu, Windows işletim sistemlerinin yönetimi ve yapılandırması için genişletildiği için Windows komut kabuğunun ana komut dosyasıdır. PowerShell, CRL ve .NET Framework platformları temelinde geliştirilmiştir ve metni kabul eden ve döndüren komut satırında Windows PowerShell nesnelerle çalışır. PowerShell dış görünüm nesnesi, bu nesneleri denetlemek için kullanılabilecek yöntemleri kullanma gücüne sahiptir.

pencereler Microsoft PowerShell cmdlet kavramını genişletti ( cmdlet'ler), komutları adlandırma sistemi olarak " Dієslovo-Іmennik". Bu sistem, sistem yöneticilerinin PowerShell ile daha kolay öğrenmesini ve çalışmasını sağlar.

Windows PowerShell ile ilgili yardım için şunları yapabilirsiniz:

  • Dosya sistemine erişim elde edin;
  • Cheruvati kaydı;
  • hizmetleri yönetmek;
  • Keruvati süreçleri;
  • İşletim sistemini değiştirin;
  • Yazılım güvenliğini yükleyin;
  • Rolleri ve sunucu bileşenlerini kurun;
  • Roller ve sunucu bileşenlerinin yönetimini ve yapılandırmasını değiştirin;
  • Yönetim ve idareyi otomatikleştirmek için senaryolar yazın ve yazın;
  • Vikonuvat, sistem yöneticilerinin başındadır.

Windows PowerShell, ipconfig, ping ve diğerleri gibi, komut satırından çalışan çok sayıda sık kullanılan yardımcı programa ve komuta sahiptir. Sistem yöneticilerinin komut satırından PowerShell'e geçişini kolaylaştırmak için kırıldı.

Ayrıca, netlik adına, PowerShell'in komutları ve yardımcı programları genellikle eşanlamlı olabilir ( takma ad), örneğin, cls Clear-Host cmdlet'i ile eşanlamlıdır, dir Get-ChildItem ile eşanlamlıdır ( tam liste Get-Alias ​​​​cmdlet'inin lansmanında hayret edebileceğiniz eş anlamlılar).

PowerShell'de komut istemek için, yardımı için hem gerçek hem de ad olarak istek gönderebileceğiniz özel bir Get-Command cmdlet'i vardır. Tüm Windows PowerShell komutları modüller halinde gruplandırılmıştır ( örneğin, Hyper-V, NetTCPIP), bu da gerekli komutu ister.

Komut gerekiyorsa, aynı ekiple çalışma talimatlarına bakabilirsiniz. özel bir Get-Help cmdlet'i olan kontrol edin, örneğin, aşağıdaki komut Get-Command cmdlet'indeki kontrolü gösterecektir:

Yardım Al Komutu

Windows PowerShell'deki bir özet kısa, ayrıntılı olabilir ( parametre -Ayrıntılı), Yeniden ( -Tam seçenek) ve daha az kullanabilirsiniz ( parametre - Örnekler). Sonraki komut, Get-Command cmdlet'ini kullanmaktan fazlasını göstermektir:

Get-Help Get-Command -Örnekler

Nelerin güncelleneceğine dair PowerShell Tavsiyesi. її Update-Help komutu ile güncellenebilir.

Windows PowerShell sürümleri

PowerShell 1.0'ın ilk sürümü 14 Kasım 2006'da ortaya çıktı ve Windows işletim sistemlerinin sonraki sürümlerine kurulabilecek, görünüşte açık bir dağıtımda piyasaya sürüldü: Windows XP Service Pack 2, Windows Server 2003 Service Pack 1 ve Windows Vista.

Windows Server 2008 PowerShell 1.0 da yüklenmesi gereken bir bileşen olarak gönderildi.

Windows 7 ve Windows Server 2008 R2'den başlayarak, PowerShell sistemin görünmez bir bileşeni olarak gönderilir ( tobto. kurulumlar, kurulum yogası gerekli değildir). Aşağıda, PowerShell sürümünün sürümünü ve Windows işletim sisteminin sürümünü gösteren bir tablo bulunmaktadır ( tobto. Windows'un bu sürümünde yüklü olan kilidin arkasında hangi PowerShell sürümü var?):

PowerShell sürümü Windows sürümleri
PowerShell 2.0 Windows 7, Windows Server 2008 R2
PowerShell 3.0 Windows 8, Windows Sunucusu 2012
PowerShell 4.0 Windows 8.1, Windows Server 2012 R2
PowerShell 5.0 Windows 10, Windows Sunucusu 2016

3 cilt Yeni sürüm PowerShell giderek daha fazla müdahaleci bir yönetim aracı haline geliyor, ilk PowerShell için 130'a yakın cmdlet vardı ve PowerShell 5.0 zaten 600'den fazla!

Tanımak şimdiki versiyonu PowerShell, değiştirilmiş bir $PSVersionTable'da PSVersion'ın gücü konusunda yardımcı olabilir, örneğin aşağıdaki komutu girin:

$PSVersionTable.PSVersion

Veya cmdlet'i çalıştırın

Get-Variable -Name PSVersionTable -ValueOnly

PSVersion'a değer verin ve PowerShell sürümü olun.

Mova PowerShell

Güç kalkanı– tüm nesne yönelimli komut dosyası dili programlama. Windows PowerShell kabuğunda Windows işletim sisteminin tüm bileşenlerini yönetmek için komut yazmanın yanı sıra Windows PowerShell Tümleşik Komut Dosyası Ortamında (ISE) yönetim görevlerini otomatikleştirmek için komut dosyaları yazmak için kazanma. PowerShell dili yönetim yöneticisi için yaratılmıştır, tam gelişmiş bir komut dosyası programlamasıdır, bu nedenle bir dış film programlamasında olduğu gibi programlanabilir yapılar, örneğin: yıkama, döngüler, aflar, değişiklik içeren robotlar, değişiklikler, nesneler.

PowerShell dili, komut yazmak için tek bir sözdizimine ve bu komutları adlandırma yapısına "ilke için" sahiptir. Dієslovo-Іmennik”, hem programcılar hem de sistem yöneticileri için sezgisel olarak mantıklıdır.

Windows PowerShell kabuğu

Windows PowerShell kabuğu- Bu, PowerShell'imdeki vykonannya komutlarının ve komut dosyalarının ortasıdır. Maє tі zhlivosti'nin kabuğu göz önüne alındığında, komut satırı şu şekildedir: muzaffer komutların geçmişini kaydetmek, aklı başında görünen kabuklar, Ctrl + C tuşlarını kullanarak komutların yazılmasının yanı sıra komut satırının kabuğunda bulunmayan birçok başka olasılık, örneğin, " gibi mucizevi bir olasılık sözdizimi eşleştirme» ( PowerShell 5.0'da göründü).

PowerShell kabuğunu birkaç yolla başlatabilirsiniz, örneğin:

  • Komut satırından PowerShell yazarak;
  • Diyalog penceresinden Vikonati» ( Win+R tuşları), ayrıca PowerShell yazarak;
  • Windows 7 için - Başlat->Tüm programlar ->Aksesuarlar ->Windows PowerShell -> Windows PowerShell;
  • Windows 8.1 veya Windows Server 2012 R2 için - Başlat->Tüm Programlar->Hizmetler->Windows PowerShell;
  • Windows 10 veya Windows Server 2016 için - Başlat->Tüm Programlar -> Windows PowerShell Dizini ( W grubunda) -> Windows PowerShell.

Windows Server 2016'da PowerShell çalıştırma örneği

Windows Server 2016 PowerShell Kabuk Ekran Görüntüsü

PowerShell Cmdlet'leri

cmdlet (cmdlet) - bu, işletim sisteminin nesneleriyle їhnoy keruvannya yöntemiyle etkileşime girebileceğiniz bir Windows PowerShell komutudur. Qi komutları є kısmen PowerShell'i hareket ettirir. İlkeden ilham alan cmdlet'ler Dієslovo-Іmennik”, tire (-) ile ayrılır; Başka bir deyişle, başlangıçta neyin işe yarayacağını ve neyin üzerine bir tire işareti koyarak söyleriz. Örneğin, Get-Help cmdlet'i, de Get, " anlamına gelen bir kelimedir. Otrimati”ve Yardım adıdır Yardım» PowerShell bağlamında « Gösteri - Dovidka". PowerShell cmdlet'leri, Windows komut satırındaki ana komutlardan biri gibi görünen nesnelerin sonuçlarını döndürür; bu komutlar yalnızca ekrandaki metni döndürür.

Crim cmdlet otrimannya verilerini (Al), aşağıdaki gibi cmdlet türlerini kullanın:

  • Ekle - veri ekleme;
  • Temiz temiz;
  • Etkinleştir - aç;
  • Devre dışı bırak - kapat;
  • Yeni - oluştur;
  • Kaldır - görselleştirme;
  • Hazır hazır;
  • Koşmaya başla;
  • Dur - Zupiniti;
  • İhracat - ihracat;
  • İthalat - İthalat;
  • Ve diğerleri var.

Windows PowerShell cmdlet'lerinin tam listesi için özel Get-Command cmdlet'inin yardımına bakın. Örneğin, -CommandType cmdlet'i ile yoga yapın, sonuç size ekranda cmdlet'lerin bir listesini gösterecektir.

Get-Command -CommandType cmdlet'i

Zaten anladığınız gibi, cmdlet'ler her bir cmdlet'i somutlaştırabileceğimiz parametreleri değiştirebilir. Dil parametresi ve dil parametresi yoktur, örneğin dil parametresi olmayan Get-Command cmdlet'i.

Az sayıda gösterimin altında, kelimeyi kullanarak bir cmdlet arama yöntemi ( fiil parametresi). AT bu özel tipe yeniden başlatılabilecek bir cmdlet listemiz var.

Takım

Get-Command -Fiil Yeniden Başlatma

Bir cmdlet'i ada göre sorgulamak için Noun parametresini seçmeniz gerekir. Örneğin, hizmetlerle çalışan cmdlet'lerin bir listesini aldık.

Takım

Get-Command -İsim Hizmeti

Yeni ad için gerekli cmdlet'i bilmiyorsanız, maskeyi *Metin* biçiminde değiştirebilirsiniz.

PowerShell İşlem Hattı

Windows PowerShell'in ana özelliklerinden biri, komutları çalıştırmak için bir işlem hattı çalıştırma yeteneğidir.

konveyör– Robotik cmdlet'in sonucunu dikey çizgiden (|) başka bir cmdlet'e geçirmeyin. Bu durumda, hatırladığınız gibi, PowerShell cmdlet'leri nesnelerle çalışır ve nesneleri döndürür, görünüşe göre nesneler de boru hattı boyunca iletilir.

Konveyörün yardımı için katlama siparişlerini alabilirsin, beni affet manuel olarak katlama algoritmaları ve senaryoları yazmaya gerek kalmadan.

Örneğin, "C:\Windows\System32" dizinindeki en büyük dosyanın adını bulalım ( basit konveyör örneği).

Takım

Get-ChildItem -Path "C:\Windows\System32" -Dosya | Sıralama-Nesne uzunluğu -Azalan | Select-Object -İlk 1

  • Get-ChildItem – belirtilen katalogdan nesneleri kaldırmak için cmdlet;
  • Sort-Object, nesneleri sıralamak için bir cmdlet'tir; bizim durumumuzda dosya boyutuna göre sıralarız ( uzunluk -Azalan);
  • Select-Object, bir nesnenin gerekli özelliklerini seçmek için bir cmdlet'tir, farklı durumlarda standart alanlar ve ilk nesne görüntülenir. harika dosya ( parametre -İlk 1).

Usі cmdlet'leri, tek bir dikey sınırdan birini oluşturur. Dış görünüm cmdlet'inin sonucu başka bir cmdlet'in girdisine, yani. Belirlenen katalogdaki tüm nesneleri alarak, ardından sonucu sıralayarak ve tamamlama için ilk nesneyi seçerek başlıyoruz.

Fonone vikonannya zavdan

Windows PowerShell, bir arka plan komutu çalıştırma yeteneğine sahiptir, yardımı için bir komut çalıştırabileceğiniz bir mekanizma vardır ( örneğin, uzun süredir) arka plan modu, o zamanlar. başladıktan sonra bir akış oturumuna dönüşürsünüz, robot komutunun sonunu kontrol etmeden çalışmaya devam edebilirsiniz. İhtiyaç duymanız için fırsat verildiğinde, bir komut çalıştırmanız gerekirse, robotun tamamlanması üç saat sürecek ve bildiğiniz gibi, bir saat boyunca, komut tamamlanana kadar PowerShell kabuğunun oturumu engellendi. , ve pratik yapmanız gerekir.

Arka planda çalışan tüm görevler, örneğin, görevler listesine bakabilir, görevin robotunu yakınlaştırabilir, görevi görebilir ve açıkçası görevin çalışmasının sonucuna bakabilirsiniz. .

Arka Plan İşleri için Windows PowerShell aşağıdaki cmdlet'lere sahiptir:

  • İşe Başla - bir arka plan işi başlatın;
  • Stop-Job - Arka Plan İş Zupinity
  • Get-Job - arka plandaki işler listesine bakın;
  • İş Al - bir arka plan işi yazmanın sonucuna bakın;
  • İşi Kaldır - arka plan işini kaldırın;
  • Bekle-İş - tamamlandığını kontrol etmek için arka plan işini ön plana getirin.

Arka plan modunda başlamak için, İş Başlat komutunu ve arka plan modunda yazmanız gerektiğinden, komutu veya bir dizi komutu kıvırcık kollarda () yazmanız gerekir.

Örneğin şöyle bir görev çalıştıralım ( hizmetlerin listesini göster) arka plan modunda, ardından arka plan görevleri listesine bakın ve görevimizin sonucunu ekranda görüntüleyin ( tobto. hizmet listesi).

Arka planda bir görev çalıştırma

İşe Başla (Hizmet Al)

Arka planda çalışan görevler listesine bakma

Job1'in sonucunun gösterilmesi

İş İşini Al1

Yak bachimo, durumlu bir görevimiz var " Tamamlanmış", o zamanlar. o zaten patladı ( iyi çalışır durumda sadece Get-Service).

Arka plan görevinin sonucunu görmek için tobto. Get-Service cmdlet'inin, Receive-Job komutunu ele geçirdik ve görevin adını ilettik ( olası i tanımlayıcı değeri). Sonuç olarak, bir hizmet listemiz var.

PowerShell'de uzak keruvannya

Windows PowerShell yetkileri yalnızca yerel seçimle değil, aynı zamanda uzaktan komut seçimiyle de sınırlıdır. Tsya mozhlivist gereklidir, böylece svogo robochego mіstsya cheruvati vіddalennymi bilgisayarları, tobto yapabilirsiniz. PowerShell komutlarını birleştirin.

Іsnuє kіlka yolları uzaktan bakım:

  • Ek parametre için -Bilgisayar adı (є birçok takım için). Tobto Bir komut yazmanın gerekli olduğu bilgisayarın adını parametre olarak aktarırsınız. Yöntem, bir takımın galipleri tarafından ayrılacak şekilde kısa olabilir;
  • Yardım oturumu için. cmdlet Enter-PSSession (etkileşimli oturum). Bu sayede uzak bilgisayara bağlı olursunuz ve PowerShell kabuğuna yazdığınız tüm komutlar uzak bilgisayarda aynen böyle görüntülenecektir, uzak bilgisayarda kesintisiz komutlar yazdınız. Yöntem ayrıca küçüktür, çünkü oturum bir bilgisayarla çevrilidir;
  • cmdlet'e yardım etmek Invoke-Komut. Yardım için verilen yöntem Komutları tek bir bilgisayarda veya birden çok bilgisayarda komut dosyalarında çalıştırabilirsiniz.

Örneğin, uzak bir bilgisayara bağlanmak için ( SunucuAdı altındaki uygulamada) etkileşimli bir oturumda aşağıdaki komutu yazın:

Enter-PSSession SunucuAdı

Windows PowerShell'de Komut Dosyaları, İşlevler ve Modüller

Örneğin, bir tür algoritma yazdınız, her şey için daha iyi, daha iyi olabilmek için yogayı kurtarmak isteyeceksiniz. Windows PowerShell, hangisi için bir komut dosyası oluşturma mekanizmasına sahiptir.

Bu mekanizmanın özü geliyor, Sizin için bir dizi komut yazmanız ve onu bir komut dosyası olarak seçmeniz gerekiyor - sadece uzantıları olan basit bir metin dosyası. PS1.

Bir bakalım, bu betiği tamamlamak için PowerShell kabuğunda yoga çalıştırmanız yeterli. Öyleyse, komut dosyasına giden sonraki yolu belirtmeniz veya komut dosyasının bulunduğu dizine gitmeniz ve isme tıklamanız gerekir.

Önemli!

Windows promosyon komut dosyaları için engellendi! Komut dosyası oluşturma ilkesini görmek için cmdlet'i kullanın Get-ExecutionPolicy. Sonuç olarak, uygulanabilir politikayı değiştireceğiz, örneğin:

  • Kısıtlı - tüm senaryoları engelleme ( kilitleme değeri);
  • AllSigned - komut dosyalarını dijital imza olarak imzalamasına izin verilir;
  • RemoteSigned – yerel komut dosyalarını imzalamaya izin verilir, ilgili tüm komut dosyaları dijital imzadan kaynaklanır;
  • Sınırsız - herhangi bir senaryonun görülmesine izin verilir ( tavsiye edilmez, kırıklar güvenli değildir!).

Senaryoyu revize etmek için cmdlet'i revize etmeniz gerekir. Set-ExecutionPolicy geri ödenen daha fazla parametreden biriyle.

Örneğin local scriptlerin kırılmasına izin vermek için Y ye basarak değişiklikleri bekliyorum komutuna saldıracağız.

Set-ExecutionPolicy RemoteSigned

Parametreleri komut dosyasına iletebilir, bunları dile özgü hale getirebilir veya anahtarın arkasındaki değerleri ayarlayabilirsiniz.

Windows PowerShell'de, güçlü işlevler oluşturma mekanizması aktarıldı ve cmdlet'ler söz konusu olduğunda, PowerShell kabuğunu hackleyebilirsiniz.

Kimin için belirtmek gerekir anahtar kelimeİşlev ve ardından kıvrımlı kemerlerde () tobto işlevi için bir algoritma yazın. komut dizisi ( örneğin, sıklıkla gerçekleşen bir prosedür olarak: şarkı haklarına sahip bir kök hesap oluşturun, şarkı dizinlerini temizleyin, vb.). Ardından, bu dosyanın zaten bir modül olması için komut dosyasındaki her şeyi, ancak extensions.psm1 ile birlikte kaydetmeniz gerekir.

Diğer her şey değil, tüm dosyayı PowerShell'in modülleri aradığı dizine yerleştirmeniz gerekir. Bu tür birkaç katalog var ( Koristuvach profilindeki özel dizin, PowerShell'in kurulu olduğu dizin), PowerShell'deki değişikliklere hayret edebilirsiniz. Kimin için, komuta saldıralım

Get-ChildItem Env:\PSModulePath | Format-Tablo -AutoSize

Yazdığınız modülü özel bir dizine yerleştirdikten sonra orijinal PowerShell komutları gibi fonksiyonlarınıza gidebilirsiniz.

Windows PowerShell Tümleşik Komut Dosyası Ortamı (ISE)

Komut dosyalarını, işlevleri ve modülleri manuel olarak yazmak için Microsoft, özel bir grafik programı Entegre Komut Dosyası Ortamı(ISE) entegre bir komut dosyası ortamıdır. Bu programda Pratsyuvati zaten kolay, ondan önce zor bir işlevsellik olabilir. senaryolarla meçhul sekmelerin oluşturulması, çıktının alanı, yükleyicinin açılması ve daha fazlası).

її'yi şu şekilde çalıştırabilirsiniz:

  • Windows 7 için - Başlat->Tüm programlar ->Aksesuarlar ->Windows PowerShell -> Windows PowerShell ISE;
  • Windows 10 veya Windows Server 2016 için - Başlat->Tüm Programlar -> Windows PowerShell Dizini ( W grubunda) -> Windows PowerShell ISE.

Not! ISE, Sunucu Çekirdeği varyantında kurulu Windows Server sistemlerinde çalışmayacaktır.

Windows Server 2016'da Tümleşik PowerShell Komut Dosyası Ortamının (ISE) ekran görüntüsü

Her şeye sahip olduğum kişi, ikna oldum, malzeme size tanıdık gelecek! Başarı!

Windows 10 işletim sistemi güncellemeleri, biraz PowerShell komut satırı yardımcı programı hakkında olabilir. Ayrıca, Windows 7 ve 8.1 ile kimin çalışabileceğini bilebilirsiniz. Windows komut satırı programlarının ve .bat biçimindeki dosyaların zengin kaderinden sonra, daha işlevsel bir araç hakkında daha fazlasını öğrenmenin zamanı geldi.

PowerShell, açılır listeyi değiştirir Windows Araçları ve yogo ölçeği zlyakati deyaky koristuvachіv olabilir. Komut dosyasıyla yazılmış bir mov chi komut kabuğu nedir? Çalkantılı olmayın: fırsat ne kadar büyük olursa olsun, derinin gücü altında PowerShell'de ustalaşın.

Krok 1: yüklü

Koçanı için PowerShell yardımcı programının kendisine ihtiyacımız var. Windows 10 çalıştırıyorsanız, zaten PowerShell 5 yüklüdür. Windows güncelleme 10 Yıldönümü Güncellemesi muzaffer sürüm 5.1, ancak fark net değil. Windows 8 ve 8.1, oldukça yeterli olan PowerShell 4'ü kazanır. PowerShell'i Windows 7'ye yüklemek sorun olmayacak, ancak yine de birkaç numara yapmanız gerekecek. Zocrema, .Net Framework'ü kurmanız gerekiyor. PowerShell içeren Windows Yönetim Çerçevesini yükleyebilirsiniz.

PowerShell'in iki arabirimi vardır. Ek bilgiler seçilebilir grafik arayüzü, Entegre Komut Dosyası Ortamı (ISE) gibi Windows komut satırı stilinde basit bir metin arabirimi olan PowerShell konsolunu kullanmak veya DOS 3.2 yazmak daha iyidir.

PowerShell'i Windows 10'da yönetici olarak çalıştırmak için Başlat düğmesine basın ve programlar listesinde Windows PowerShell'e gidin. Windows 8.1 için, Windows altındaki Sistem klasörü altında Windows PowerShell'i arayın. Windows 7'de kabuk, Donatılar klasöründe bulunur. Harika bir powershell olarak, sağ tuş yerine sol fare düğmesini kullanarak PowerShell'i aynen bu şekilde başlatabilirsiniz.

Herhangi bir Windows sürümünde aramayı durdurabilirsiniz. Uzak bir büyücünün rahatlığı için, görev çubuğunda PowerShell'i kapatabilirsiniz.

Krok 2: eski Windows komutları

Sözdizimi Windows komutları PowerShell pratsyuє zvichny sıralaması. Örneğin, CD klasörleri değiştir, yön Akış klasörünün ortasında mevcut dosya ve klasörlerin bir listesini gösterir.

PowerShell konsolunu başlatmak için yöntemi kullanırsanız, şunları yapabilirsiniz: c:\Windows\system32 veya c'de :\Kullanıcılar\ . Ekran görüntüsündeki popoda takım kazanır CD..(boşluklu) her seferinde bir satır yukarı çıkmak için komutu çalıştırın yön dizindeki dosya ve klasörlerin listesini görüntülemek için C:\.

Krok 3: yardım dosyalarının yüklenmesi

Komut nachebto CDі yön etkin olmayan PowerShell komutları. Bunlar takma adların (takma adlar) adlarıdır - doğru PowerShell komutlarını değiştirin. Takma adlar, komut satırında çalışmak için harika bir fırsatı olan kişiler için yararlıdır. Ancak, koku, PowerShell glybin'e yapışmaz.

PowerShell'in gücünü kullanmaya başlamak için şunu yazın Yardım Senin için bir komuta ihtiyacım olacak. Ekran görüntüsü komutu gösterir .

Takım Yardım ne dedin yönє PowerShell komut diğer adı Get-ChildItem. nasıl aranır çocuk eşyası içinde Not C:\>, kendinizi şımartın, ne ve ne zaman vikoristanny komutları yön.

Ekran görüntüsünün altında belirtildiği gibi, PowerShell yardım dosyaları otomatik olarak yüklenmez. Bunu yapmak için PowerShell'i yönetici olarak çalıştırın ve şunu yazın güncelleme-yardım. Az miktarda tüy ödünç almaya yardımcı olmak için yüklü dosyalar, günlük olarak birkaç modül kullanılabilir - örneğin, bu durumda NetWNV Yardımı ve SecureBoot kurulmamıştır. Her şey hazırsa, bir sonraki sistem size gerekli ipuçlarını vermenize yardımcı olacaktır.

Şimdi bir komut çevirin yardım almak ve komuta etmek sizin için olsun (“cmdlet” benim PowerShell'im, Rusça cmdlet), size її açıklaması gösterilecektir. Örneğin, yardım al alt öğe seçenekler listesine bakın çocuk eşyası. Farklı seçenekler de girebilirsiniz. Örneğin

yardım al alt öğe -örnekler

sim ayrıntılı örneklere bakın çocuk eşyası. Takım

get-help get-childitem -detaylı

cі sim uygulamalarını içerir ve cmdlet'teki dış görünüm parametresinin açıklamasını bildirir çocuk eşyası.

Krok 4: parametreler için otrimannya yardımı

Ekran görüntüsünde iki pid listesini hatırlayabilirsin Sözdizimi için çocuk eşyası. İki farklı sözdiziminin varlığı, bir cmdlet'i çalıştırmanın iki yolunun yüklenebileceği anlamına gelir. Sözdizimi okremo tek tip bir nasıl kırpılır ve parametreler ne anlama gelir? İşin sırrını biliyorsanız cevap basit.

Otrimannya için cmdlet'in parametrelerini detaylandırın çocuk eşyası aksi takdirde, diğer herhangi bir büküm parametresi -tam dolu:

yardım al get-childitem -full

Burada cmdlet ile neler yapabileceğinizin ve ne olacağının bir listesini görüyorsunuz. Ekran görüntüsüne bakın.

Parametrelerin açıklamasını gözden geçirmek şunu hatırlamanızı sağlar: çocuk eşyası nesneyi alma yeteneği verir çocuk(Alt klasörleri veya dosya adını özel olarak adlandırın) belirtilen alanda, çok sayıda şarkı sembolü ile veya olmadan. Örneğin:

get-childItem "*.txt" -recurse

geçerli klasördeki ve tüm alt klasörlerdeki *.txt dosyalarının listesini döndürün (parametre aracılığıyla -tekrar). Todiyak

get-childitem “HKLM:\Software”

kullanılan anahtarların listesini üst seviyenin kayıt defterine çevirin HKEY_LOCAL_MACHINE\Yazılım.

Windows komut satırı veya .bat dosyası yardımı için kayıt defterine gitmeyi denediyseniz, bu erişim seçeneğinin işlevselliğini değerlendirebilirsiniz.

Krok 5: isimler

Є gösterilen cmdlet'lerin şöyle görünmesinin nedeni: get-childitem, güncelleme yardımı, yardım al vikoristovuyut kelime-adının tek bir şeması. Lütfen, adının önünde durmanın mümkün olduğu tüm PowerShell cmdlet'lerini durdurun. VB ve VBA dilindeki komutların isimlerindeki tutarsızlık nedeniyle zamanında acı çeken ekibe yakışır.

En yaygın cmdlet'lere bir göz atın:

konumu ayarla: mevcut çalışma konumunu ilk konuma kurun

içeriğe eriş: dosyaya al

alma öğesi: Dosyaları ve klasörleri kaldırın

kopya öğesi: bir nesneyi bir konumdan diğerine kopyala

öğeyi kaldırmak: Dosyaları ve klasörleri silin

: Yerel veya uzak bilgisayarda çalışan işlemleri yok sayın.

hizmet almak: hizmetleri kaldırın, yerel veya uzak bilgisayarda çalıştırın.

invoke-webrequest: İnternetteki web sitesinden uzaklaştırmak

Şarkı söyleyen cmdlet'in robotuna bakmak için şarkı söyleyin yardım almak uçta yak

yardım al kopya öğesi -dolu

Yardımın açıklamasına dayanarak, hangi cmdlet'lerin gerekli olduğunu anlayabilirsiniz. Örneğin, tüm dosya ve klasörleri kopyalamak istiyorsanız Belgeler içinde c:\temp, papaz

kopya öğesi c:\users\\documents\* c:\temp

Vvіvshi tsyu ekibi, PowerShell otochennya olasılıklarını chіlka kіlka tsіkavih. Örneğin, nasıl aranır kopya-i ardından Sekme düğmesine, PowerShell'e basın Öğeyi Kopyala. Cmdlet yanlış yazılmışsa ve PowerShell onu tanıyamıyorsa, neyin yanlış olduğuna dair yeni bir açıklama verilir.

Bu cmdlet'i deneyin:

invoke-webrequest askwoody.com

Web sayfasındaki başlıkların, resimlerin, mesajların ve diğerlerinin kısa bir listesini kaldıracaksınız. saygı göstermek yardım almak listeye invoke-webrequest, "formların toplanmasını, gönderilmesini, görüntülenmesini ve diğer önemli HTML öğeleri- ekranda görünebilecek olanlar.

Deyakі cmdlet'i keruvati'nin kendilerine PowerShell'de yardımcı olur:

al komutu: kullanılabilir cmdlet'lerin listesi

get-fiil: mevcut sürücülerin listesi

açık sunucu: ana bilgisayar ekranını temizle

Farklı parametreler komutları değiştirmenize ve çalmanıza izin verir kahverengi seçenekler. Örneğin, birlikte çalışan tüm cmdlet'lerin listesini gözden geçirmek için Windows hizmetleri, giriş

komut al *-servis

İsimle birlikte mevcut olan tüm kelimeler gösterilecektir. hizmet. Eksen x listesi:

Hizmet Al

Yeni Hizmet

Servisi yeniden başlat

Hizmeti Sürdür

Hizmeti Ayarla

başlangıç ​​hizmeti

Hizmeti durdur

Hizmeti Askıya Al

Başkalarıyla daha fazla cmdlet gönderebilirsiniz.

Krok 6: vikoristan boruları

Windows komut satırı hakkında bildikleriniz veya toplu iş dosyaları, o zaman o borunun yeniden yönlendirilmesini bilirsiniz. Yönlendirme (sembol >) ve boru (sembol |) di sonucunu alır ve başka bir yere yapıştırır. Örneğin, bir komutun sonucunu yeniden yönlendirebilirsiniz. yön bir metin dosyasına sahip olun veya komutun sonucunu iletin ping atmak bir takıma sahip olmak bulmak cіkavih sonuçlarını filtrelemek için

dizin > temp.txt

askwoody.com'a ping at | "paketleri" bul > temp2.txt

Burada diğer takımda bulmakşaka sıra paketler ekip tarafından askwoody.com adresinden alınmıştır. ping atmak ve çalışan tüm satırları birleştirin, dosyayı adlandıracağım temp2.txt.

Bu komutlardan ilki PowerShell ile mucizevi bir şekilde çalışır. Başka bir komutu çalıştırmak için, üzerine tıklamanız gerekir.

askwoody.com'a ping at | dize paketlerini seç | dosya dışı temp2.txt

Boruların yeniden yönlendirilmesi, Windows komut satırının olanaklarını önemli ölçüde genişletir: Ekranı bir metin satırında aşağı kaydırmak yerine, gerekli Windows komutlarını filtreleyebilirsiniz.

Powershell yardımcı olabilir boru, ayrıca, metinle çevrilidir. PowerShell, tüm bir nesneyi bir cmdlet'ten diğerine geçirmenize izin verir, de ob'єkt є veri (yetki adları) ve dіy (yöntemler) birleşimidir, böylece verileri kazanabilirsiniz.

Katlanan kısım, vibudovuvannya ob'ektiv saatinde onarılır. Tek bir cmdlet tarafından sağlanan nesneler, sahip olan cmdlet tarafından kabul edilen nesnelerin türünden kaynaklanmaktadır. Metin zaten basit bir nesne türüdür, bu nedenle metinle çalışıyorsanız nesneleri görüntülemek kolaydır. Diğer nesneler o kadar basit değildir.

Nasıl anlayabilirsin? Zafer cmdlet'i al-üye. Cmdlet'in ne tür bir nesne işlediğini bilmek istiyorsanız, onu iletin. al-üye. Örneğin, cmdlet'ten önce bilgisayarda çalışan işlemleri ve seslendirme seçeneklerini anlayabileceğiniz gibi , eksen cmdlet'in sonucunu nasıl tanıyacağınızı:

alma işlemi | al-üye

Bu cmdlet'i çalıştırın ve uzun bir yetkili ve yöntem listesi görün , ancak listenin koçanına, oluşturduğunuz nesnenin türünü ekleyebilirsiniz. :

TypeName: System.Diagnostics.Process

Ekran görüntüsünün altında gezinmek de gücü gösterir adı altında get-process Tutamaçları, Ad, NPM, PM, SI, VMі WS.

sonucu nasıl manipüle edebilirsin bir cmdlet ile çalışmak için (monitördeki aktif işlemlerin eski listesinin değiştirilmesi), girdi verilerini alabilmeniz için başka bir komut bilmeniz gerekir. System.Diagnostics.Process. Kullanışlı bir cmdlet bulmak için PowerShell'in olanaklarını tekrar gözden geçirin:

get-command -Parametertype System.Diagnostics.Process

Hangi cmdlet genişletilebilir bir cmdlet listesi gibi görünür? System.Diagnostics.Process.

Deyakі komutanı tim, scho nabuvayut mayzhe ne tür bir veri olabilir. Baş orta є . Bu cmdlet, borudan birer birer gönderilen bir dış görünüm nesnesini kendi içinden geçirir ve yeni belirtilen seçim kriterlerine zastosovu gönderir. Adın altında özel bir işaretleyici kullanın $_ , deri nesneyi boruda bir kez yenmenizi sağlar.

Bilgisayarda çalışan tüm işlemlerin listesini "svchost" adı altında kaldırmak isteyebilirsiniz, bu nedenle gücü geri yüklemek istiyorsunuz. İsim işlem svchost. Zafer komutu:

alma işlemi | nerede-nesne ($_.Name -eq "svchost")

cmdlet cilt nesnesine hayret etmek System.Diagnostics.Process, eşleşme .İsim"svchost"taki nesne; yakscho є zbіgi, koku monitörde görülür. Ekran görüntüsüne bakın.

7. Ders: Temel PowerShell Komutlarının Analizi

Bagatto'yu ne zamana kadar bitirmeyi biliyorsun, böylece bilgisayarda akıllı olabilirsin, bu yüzden dikkatli ol. Örneğin, sıklıkla istenen PowerShell komutlarına bakın.

Bu komutlar, PowerShell'i yönetici olarak çalıştırırken yalnızca Windows 10 ve daha düşük sürümlerde çalışır. Kokular yeniden kurulum için işaretlendi yüklü eklenti Windows 10 ve bu programları kaldırıp daha sonra kapatanlar için iyi bir zaman olabilir. Komut şöyle görünür:

Get-AppXPackage | Foreach (Add-AppxPackage -DisableDevelopmentMode -Registr “$($_.InstallLocation)\AppXManifest.xml”)

Bu komutu çalıştırırsanız, kırmızı renkle gösterilen uyarıları önceden yok sayın ve komut hatalıysa bilgisayarı yeniden başlatın; bıyık yüklü programlar Windows 10 onun yerine görünecektir.

Eksen, ekibin nasıl çalıştığıdır. Get-AppXPackage bir koristuvach profilindeki tüm yazılım paketlerini gözden geçirmek. Navіt yakscho vy programı sildi, koristuvach profili listesinin dışında.

cmdlet Get-AppXPackage nesneyi döndürmek TürAdı Microsoft.Windows.Appx.PackageManager.Commands.AppxPackage, program paketinin adının dışında ve XML bildirim dosyasının kapsamını içerir. cmdlet nasıl çalıştırılır get-appxpackage, yazılım paketlerinin uzun bir listesini görebilirsiniz. Ekran görüntüsü Xbox yazılımının açıklamasını gösterir.

cmdlet Her biri için cilt nesnesinden geçmek için ek bir döngü için AppXPackage, cmdlet'i yönlendirme Eklenti-AppxPaketi. Zgidno yardım almak için Eklenti-AppxPaketi, burada iki anahtar var:

  • peremikach -Kayıt olmak yazılım paketlerinin temel kurulumlarının kaydı için göz kırp, parametreleri ayarlayabilirsiniz Geliştirme Modunu Devre Dışı Bırakі Kayıt olmak
  • peremikach -Geliştirme Modunu Devre Dışı Bırak Her Windows'un devre dışı bırakılmış, kaydedilmemiş veya devre dışı bırakılmış mevcut yazılım paketini yeniden kaydettirmesi gerekir.

Kürek çekmek " $($_.InstallLocation)\AppXManifest.x ml" dekompresyon dosyasını tanımlar manifest.xml. dosyalara nasıl bakılır AppXManifest.xml, dosyalara bağlanmış program tanımlayıcılarının daraltılabilir bir listesini ve programla ilişkili çok sayıda görsel öğeyi görebilirsiniz.

Yeniden geliştirmeden sonra, eklenen tüm yazılım paketleri yeniden geliştirilir ve geri yüklenir Windows mağazası mağaza.

PowerShell'den bir program başlatma

PowerShell'den böyle bir dosya (bir program veya komut satırı yardımcı programı) başlatma görevi genellikle tamamlanır. Hangi çaça için PowerShell vaaz Farklı yollar, bu makalede gördüğümüz gibi. En basitinden başlayalım...

doğrudan fırlatma

Yürütülebilir PowerShell dosyasını çalıştırmanın en basit yolu, dosyanın bulunduğu dizine gidip doğrudan başlatmaktır. Örneğin, havayı çalıştırmak için basit bir program alalım ve şu komutu kullanabiliriz:

Set-Location ″C:Program Dosyaları″
.\Merhaba.exe

Gerekli katalogdan öğrenmeniz gereken saygı göstermek gerekir, ziyaret etmeniz gereken dosyanın harici yolunu göstermek gerekir. Vignatok, dizinlerden dosyalar oluşturmak için keskinleştirilmiş (yol) yerine yenilenmiş. Örneğin, Windows\System32 dizininde bulunan çeşitli programlar ve yardımcı programlar (notepad, calc, ping vb.) yol açılmadan çalıştırılabilir.

& Şebeke

Bağlantılı dosyanın bir sonraki yolunu belirtmek gerekirse, operatör ile hızlandırabilirsiniz. & (Operatör vikliku). Win, vikonati'ye bir satır metin, tek bir komut gibi pençelerdeki talimatlara izin verir. Örneğin:

&'C:\Program Dosyaları\Merhaba.exe'

& operatörü gönderilen komutu ayrıştırmazsa, vin parametreleri yorumlayamaz. Bu ek parametreler/argümanlar görsel metinden, patilerden iletilir. Popo için programı önden alıp biraz değiştiriyoruz, bu yüzden argümandan gerekli metni alıyoruz:

& 'C:\Program Files\Hello.exe' 'Merhaba dünya'

Bajannya için, kimin aracılığıyla bir dizi argüman belirtebilirsiniz:

& 'C:\Program Files\Hello.exe' 'Merhaba,', ′ dünya'

Anlaşılır olması için, komut ve argüman değişikliğe yerleştirilebilir:

$exe = 'C:\Program Dosyaları\Merhaba.exe'
$arg1 = 'Merhaba'
$arg2 = 'dünya'
& $exe $arg1 $arg2

Pek çok argüman olmasına rağmen, böyle bir yapı üzerinde yoğunlaşarak birleştirilebilirler:

$exe = 'C:\Program Dosyaları\Merhaba.exe'
$allargs = @('Merhaba,','dünya')
& $exe $alargs

Invoke-İfade

Invoke-Expression cmdlet'i, & operatörünün bir metin dizesi alıp bir komut seçmesiyle aynı şekilde çalışır. Örneğin:

Invoke-Expression - Komut 'C:\Windows\Hello.exe'

Bununla birlikte, vin'in büyük bir eksikliği olabilir ve kendisi de kaçınılmaz olarak problemlerle çalışacaktır. Örneğin, ekip af istedi:

Invoke-Expression - 'C:\Program Files\Hello.exe' komutu

Tsya osoblivіst soygun zastosuvannya cmdlet duzhe asi. Bu tür aflara ihtiyaç duymak için, örneğin, ek pençelerin yardımının arkasına saklanabilirsiniz:

Invoke-Expression -Command C:Program Files Hello.exe

başlangıç ​​süreci

Start-Process cmdlet'i, belirtilen bir dosyayı bir yöntem kullanarak bir işlem olarak başlatır. Başlat.NET sınıfı işlem. Örneğin:

Start-Process -FilePath 'C:\Program Files\Hello.exe'

Kilitleme işlemi için işlem tamamlandıktan sonra kapandığı için işlem okrem'e galip gelir. Bu davranışı ek parametreler için değiştirebilirsiniz, böylece akış penceresinde başlatma komutu verilir:

Start-Process -FilePath 'C:\Program Files\Hello.exe' -NoNewWindow -Bekleyin

Ayrıca, Start-Process, sürece ek argümanlar iletmenize izin verir:

Start-Process -FilePath 'C:\Program Files\Hello.exe' -ArgumentList 'Merhaba dünya' -NoNewWindow -Bekle

Cmdlet, yükseltme için hiçbir şeyi döndürmez, ancak -PassThru'nun yardımı için nesneyi sürece döndürmesini isteyebilirsiniz. Bu nesne, değişikliğe manuel olarak yerleştirilmelidir:

$process = Start-Process -FilePath 'C:\Program Files\Hello.exe' -Wait -PassThru

böylece durum gibi birçok kahverengi konuşmayı tanıyabilirsiniz:

$process.HasÇıkıldı

$işlem.ÇıkışZamanı

veya vikonannya kodu:

$işlem.ÇıkışKodu

.AĞ

.NET ilkesinde, Process sınıfına Start-Process cmdlet'i olmadan erişilebilir. Örneğin, işlemi şu komutla başlatabilirsiniz:

::Başlat('C:\Program Dosyaları\Merhaba.exe')

Bunu yapmanın böyle bir yolu elverişsiz ve hantal (bence), ale trochs gnuchkishiy at vikoristanni. Örneğin, programımızı bir akış penceresinde çalıştıralım, ona argümanlar iletelim ve şunu yazmanın sonucunu alalım:

$işlem = Yeni Nesne -TipAdı System.Diagnostics.Process
$process.StartInfo.FileName = C:Program Dosyaları Hello.exe
$process.StartInfo.Arguments = "Merhaba dünya"
$process.StartInfo.RedirectStandardOutput = $true
$process.StartInfo.UseShellExecute = $yanlış
$işlem.Başlat()
$process.WaitForExit()

$process.StandatdOutput.ReadToEnd()

WMI

WMI'nin yardımı için, programı başlatmak da dahil olmak üzere hemen hemen her şeyi yapabilirsiniz. Hangi döngü yöntemi için Oluşturmak wmi sınıfı Win32_Process. Bu yöntem, yerel bir uzak bilgisayarda RPC aracılığıyla bir işlem başlatır. Örneğin, vikonannya programları için yerel bilgisayar bu komutla hızlandırabilirsiniz:

()″Win32_Process″).Create('C:\Program Files\Hello.exe')

Uzak bir bilgisayarda görüntülemek için komut şöyle görünür:

()″\\uzakbilgisayar\root\cimv2:Win32_Process″).Create(′C:\Program Files\Hello.exe′)

Bir seçenek olarak, Invoke-WmiMethod cmdlet'ini kullanabilirsiniz:

Invoke-WmiMethod -Class Win32_Process -Name Create -ArgumentList ″C:Program FilesHello.exe″

Veya Invoke-CimMethod cmdlet'i ile:

Invoke-CimMethod -ClassName Win32_Process -MethodName Create -Arguments @(CommandLine=″C:\Program Files\Hello.exe″)

WMI işlemi kısa sürede başlatır ve işlem kimliğini (ProcessID) ve dönüşün sonucunu (ReturnValue) almak için nesneyi döndürür. ReturnValue aşağıdaki değerleri alabilir:

0 - Başarılı tamamlama
2 -Erişim reddedildi
3 - Yetersiz Ayrıcalık
8 -Bilinmeyen Arıza
9 - Yol bulunamadı
21 - Geçersiz parametre

Invoke-Komut

Invoke-Command cmdlet'i, WinRM kullanarak yerel olarak veya uzaktan komutları çağırabilir. Örneğin, programı yerel bilgisayarda çalıştırmak için şu komutu kullanabilirsiniz:

Invoke-Command-ScriptBlock (C: Program FilesHello.exe)

Gerektiğinde argümanlar programa iletilebilir:

Invoke-Command -ScriptBlock (C: Program Files Hello.exe Merhaba, dünya)

Invoke-Command'ın sorunları olan yoldaşlara yabancı olmadığı, af almak için pençelerle kurnaz olduğu gerçeğine saygı gösterin. Vtіm, bu tür sorunlar, örneğin farklı bir cmdlet'i & operatörüyle birleştirerek ortadan kaldırılabilir:

Invoke-Command-ScriptBlock(& 'C:\Program Files\Hello.exe')

Genel olarak, Invoke-Command uzaktan kontrol için kullanılır, ancak asıl konu çok sayıda bilgisayarda bir saatlik izleme imkanıdır. Örneğin:

Invoke-Command -ScriptBlock (C: Program Files Hello.exe) -BilgisayarAdı SRV1,SRV2,SRV3

$scriptblock = (C:Program FilesHello.exe)
$Bilgisayarlar = @(′SRV1′,′SRV2′,′SRV3′)
Invoke-Command -ScriptBlock $scriptblock -BilgisayarAdı $Bilgisayar

Yükseltmeden sonra cmdlet, programın sonucunu döndürür ve arka planda çalıştırırsanız (AsJob parametresi), Job nesnesini döndürür:

Invoke-Command -ScriptBlock (C:\'Program Files'\Hello.exe) -ComputerName localhost -AsJob -JobName Merhaba

Invoke-Item

Invoke-Item cmdlet'i, standart bir dosyaya bir çağrı atar. Böylece fitil dosyasını şu komutla çalıştırabilirsiniz:

Invoke-Item -Path ″C:Program Dosyaları¥Hello.exe″

Ancak, tek dosya türlerini açmak için Invoke-Item kullanmak en iyisidir. Örneğin, bir metin dosyası görüyoruz:

Invoke-Item -Path C:\Files\test.txt

Ve öyle olmalı metin dosyaları papalıkta:

Invoke-Item -Path "C:\Files\*.txt"

cmd

Ve son olarak, PowerShell programını başlatmanın bir yolu da cmd kabuğunun yardımıdır. Bunu yapmanın yolu "dolaylı" ama işe yarıyor. Komut, yeni bir cmd örneği başlatmak, yeni atanan programa girmek, cmd robotunu sonlandırmak ve sonucu döndürmek:

cmd /c ″C:Program Dosyaları¥Merhaba.exe″

Programı çalıştırmak için böyle bir anonim yol ekseni PoSh'a dayanmaktadır. Ben deri onlardan şarkı söyleme durumları için iyidir.

Konuşmadan önce makale PowerShell: Deep Dive ve Best Practice gerekçeleriyle yazılmıştır. Ağustosböceği bakımından zengin başka ne var okumanızı tavsiye ederim.

© 2022 androidas.ru - Android hakkında her şey