Yardım sistemi


PowerShell yeterliliğini değerlendirmek için tasarlanan bir deneyde, iki farklı BT uzmanı grubuna (yeni başlayanlar ve uzmanlar) ilk olarak bilgisayara erişimleri olmadan yazılı bir sınav verildi. Şaşırtıcı bir şekilde, test puanları her iki grupta da karşılaştırılabilir beceriler gösterdi. Daha sonra, ilkini yansıtan ancak önemli bir farkla başka bir test uygulandı: Katılımcıların PowerShell ile donatılmış çevrimdışı bir bilgisayara erişimi vardı. Sonuçlar bu sefer iki grup arasında önemli bir beceri açığı olduğunu ortaya çıkardı.

İki değerlendirme arasında gözlemlenen sonuçlara hangi faktörler katkıda bulundu?

Uzmanlar her zaman cevapları bilmeyebilirler ama cevapları nasıl bulacaklarını biliyorlar.

İki testin sonuçlarında gözlemlenen sonuçlar, uzmanların binlerce PowerShell komutunu ezberlememesiydi. Bunun yerine, PowerShell içindeki Yardım sistemini kullanma konusunda uzmanlaşıyorlar ve gerektiğinde komutları nasıl kullanacaklarını keşfetmelerine ve öğrenmelerine olanak tanıyorlar.

Yardım sisteminde uzmanlaşmak PowerShell'de başarının anahtarıdır.

PowerShell'in yaratıcısı Jeffrey Snover'ın benzer bir hikayeyi birçok kez paylaştığını duydum.

Keşfedilebilirlik

PowerShell'de derlenen komutlar cmdlet'ler olarak bilinir ve "CMD-let" olarak değil, "command-let" olarak telaffuz edilir. Cmdlet'lerin adlandırma kuralı, bunların kolayca keşfedilebilmesini sağlamak için tekil bir Fiil-İsim biçimini izler. Örneğin, Get-Process hangi işlemlerin çalıştığını belirleyen cmdlet'tir ve Get-Service hizmetlerin listesini almak için kullanılan cmdlet'tir. Komut dosyası cmdlet'leri olarak da bilinen işlevler ve takma adlar, bu kitabın ilerleyen kısımlarında ele alınacak diğer PowerShell komut türleridir. "PowerShell komutu" terimi, cmdlet, işlev veya takma ad olmasına bakılmaksızın PowerShell'deki herhangi bir komutu açıklar.

Ayrıca ping.exe ve ipconfig.exe gibi geleneksel komut satırı programları gibi işletim sistemi yerel komutlarını PowerShell'den çalıştırabilirsiniz.

PowerShell'deki üç temel cmdlet'ler

    Get-Help
    Get-Command
  • Get-Member (bölüm 3'te ele alınmıştır)

Bana sık sık şu soru soruluyor: "PowerShell'deki komutların ne olduğunu nasıl anlarsınız?". Hem Get-Help hem de Get-Command, PowerShell'deki komutları keşfetmeye ve anlamaya yönelik çok değerli kaynaklardır.

Get-Help

PowerShell'deki Yardım sistemi hakkında bilmeniz gereken ilk şey Get-Help cmdlet'inin nasıl kullanılacağıdır.

Get-Help, komutları bulduğunuzda nasıl kullanacağınızı öğrenmenize yardımcı olan çok amaçlı bir komuttur. Komutları bulmak için Get-Help komutunu da kullanabilirsiniz, ancak bu, Get-Command ile karşılaştırıldığında farklı ve daha dolaylı bir yöntemdir.

Komutları bulmak için Get-Help kullanıldığında, başlangıçta girişinize göre komut adları için joker karakter araması yapılır. Bu herhangi bir eşleşme bulamazsa sisteminizdeki tüm PowerShell yardım makalelerinde kapsamlı bir tam metin araması gerçekleştirir. Bu da herhangi bir sonuç bulamazsa, bir hata döndürür.

Get-Help cmdlet'inin yardım içeriğini görüntülemek için Get-Help'i nasıl kullanacağınız aşağıda açıklanmıştır.

Get-Help -Name Get-Help

PowerShell sürüm 3.0'dan itibaren yardım içeriği işletim sistemiyle önceden yüklenmiş olarak gönderilmez. Get-Help'i ilk kez çalıştırdığınızda, PowerShell yardım dosyalarını bilgisayarınıza indirmek isteyip istemediğinizi soran bir mesaj görüntülenir.

Y tuşuna basılarak Evet yanıtı verilmesi, Update-Help cmdlet'ini çalıştırarak yardım içeriğini indirir.

Do you want to run Update-Help?
The Update-Help cmdlet downloads the most current Help files for Windows
PowerShell modules, and installs them on your computer. For more information
about the Update-Help cmdlet, see
https:/go.microsoft.com/fwlink/?LinkId=210614.
[Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"):

Bu mesajı almazsanız yönetici olarak çalışan yükseltilmiş bir PowerShell oturumundan Güncelleme-Yardım komutunu çalıştırın.

Güncelleme tamamlandığında yardım makalesi görüntülenir.

Örneği bilgisayarınızda çalıştırmak için bir dakikanızı ayırın, çıktıyı inceleyin ve yardım sisteminin bilgileri nasıl düzenlediğini gözlemleyin.

  • İSİM
  • ÖZET
  • SÖZDİZİMİ
  • TANIM
  • Çıktıyı incelerken, yardım makalelerinin genellikle çok büyük miktarda bilgi içerdiğini ve varsayılan olarak gördüğünüz şeyin yardım makalesinin tamamı olmadığını unutmayın.

    Parametreler

    PowerShell'de bir komut çalıştırdığınızda komuta ek bilgi veya giriş sağlamanız gerekebilir. Parametreler, bir komutun davranışını değiştiren seçenekleri ve bağımsız değişkenleri belirtmenize olanak tanır. Her yardım makalesinin SÖZ DİZİMİ bölümünde komut için kullanılabilen parametreler özetlenir.

    Get-Help, yardım makalesinin tamamını veya bir komutun alt kümesini döndürmek için belirtebileceğiniz çeşitli parametrelere sahiptir. Get-Help için mevcut tüm parametreleri görüntülemek üzere, aşağıdaki örnekte gösterildiği gibi yardım makalesinin Sözdizimi bölümüne bakın.

    ...
    SYNTAX
        Get-Help [[-Name] <System.String>] [-Category {Alias | Cmdlet | Provider
        | General | FAQ | Glossary | HelpFile | ScriptCommand | Function |
        Filter | ExternalScript | All | DefaultHelp | Workflow | DscResource |
        Class | Configuration}] [-Component <System.String[]>] [-Full]
        [-Functionality <System.String[]>] [-Path <System.String>] [-Role
        <System.String[]>] [<CommonParameters>]
    
        Get-Help [[-Name] <System.String>] [-Category {Alias | Cmdlet | Provider
        | General | FAQ | Glossary | HelpFile | ScriptCommand | Function |
        Filter | ExternalScript | All | DefaultHelp | Workflow | DscResource |
        Class | Configuration}] [-Component <System.String[]>] -Detailed
        [-Functionality <System.String[]>] [-Path <System.String>] [-Role
        <System.String[]>] [<CommonParameters>]
    
        Get-Help [[-Name] <System.String>] [-Category {Alias | Cmdlet | Provider
        | General | FAQ | Glossary | HelpFile | ScriptCommand | Function |
        Filter | ExternalScript | All | DefaultHelp | Workflow | DscResource |
        Class | Configuration}] [-Component <System.String[]>] -Examples
        [-Functionality <System.String[]>] [-Path <System.String>] [-Role
        <System.String[]>] [<CommonParameters>]
    
        Get-Help [[-Name] <System.String>] [-Category {Alias | Cmdlet | Provider
        | General | FAQ | Glossary | HelpFile | ScriptCommand | Function |
        Filter | ExternalScript | All | DefaultHelp | Workflow | DscResource |
        Class | Configuration}] [-Component <System.String[]>] [-Functionality
        <System.String[]>] -Online [-Path <System.String>] [-Role
        <System.String[]>] [<CommonParameters>]
    
        Get-Help [[-Name] <System.String>] [-Category {Alias | Cmdlet | Provider
        | General | FAQ | Glossary | HelpFile | ScriptCommand | Function |
        Filter | ExternalScript | All | DefaultHelp | Workflow | DscResource |
        Class | Configuration}] [-Component <System.String[]>] [-Functionality
        <System.String[]>] -Parameter <System.String> [-Path <System.String>]
        [-Role <System.String[]>] [<CommonParameters>]
    
        Get-Help [[-Name] <System.String>] [-Category {Alias | Cmdlet | Provider
        | General | FAQ | Glossary | HelpFile | ScriptCommand | Function |
        Filter | ExternalScript | All | DefaultHelp | Workflow | DscResource |
        Class | Configuration}] [-Component <System.String[]>] [-Functionality
        <System.String[]>] [-Path <System.String>] [-Role <System.String[]>]
        -ShowWindow [<CommonParameters>]
    ...
    

    Parametre setleri

    Get-Help için SÖZ DİZİMİ bölümünü incelediğinizde, bilgilerin altı kez tekrarlandığına dikkat edin. Bu blokların her biri ayrı bir parametre kümesidir ve Get-Help cmdlet'inin altı farklı parametre kümesi içerdiğini gösterir. Daha yakından bakıldığında, her parametre setinin en az bir benzersiz parametre içerdiği ve bu parametre setini diğerlerinden farklı kıldığı ortaya çıkar.

    Parametre setleri birbirini dışlar. Yalnızca bir parametre kümesinde bulunan benzersiz bir parametreyi belirttiğinizde PowerShell sizi bu parametre kümesinde yer alan parametreleri kullanacak şekilde sınırlandırır. Örneğin, Get-Help'in Tam ve Ayrıntılı parametrelerini birlikte kullanamazsınız çünkü bunlar farklı parametre kümelerine aittir.

    Aşağıdaki parametrelerin her biri Get-Help cmdlet'i için farklı bir parametre kümesine aittir.

    • Tam dolu
    • Ayrıntılı
    • Örnekler
    • Çevrimiçi
    • Parametre
    • ShowWindow

    Komut sözdizimi

    PowerShell'de yeniyseniz, SÖZDİZİMİ bölümündeki (köşeli ve köşeli ayraçlarla karakterize edilen) şifreli bilgileri anlamak çok zor görünebilir. Ancak bu sözdizimi öğelerini öğrenmek, PowerShell konusunda uzmanlaşmak için çok önemlidir. PowerShell Yardım sistemini ne kadar sık kullanırsanız tüm nüansları hatırlamak o kadar kolay olur.

    Get-EventLog cmdlet'inin sözdizimini görüntüleyin.

    Get-Help Get-EventLog
    

    Aşağıdaki çıktı yardım makalesinin ilgili bölümünü göstermektedir.

    ...
    SYNTAX
        Get-EventLog [-LogName] <System.String> [[-InstanceId]
        <System.Int64[]>] [-After <System.DateTime>] [-AsBaseObject] [-Before
        <System.DateTime>] [-ComputerName <System.String[]>] [-EntryType {Error
        | Information | FailureAudit | SuccessAudit | Warning}] [-Index
        <System.Int32[]>] [-Message <System.String>] [-Newest <System.Int32>]
        [-Source <System.String[]>] [-UserName <System.String[]>]
        [<CommonParameters>]
    
        Get-EventLog [-AsString] [-ComputerName <System.String[]>] [-List]
        [<CommonParameters>]
    ...
    

    Sözdizimi bilgileri köşeli parantez çiftlerini ([]) içerir. Kullanımlarına bağlı olarak bu köşeli parantezler iki farklı amaca hizmet eder.

    • Köşeli parantez içindeki öğeler isteğe bağlıdır.
    • <string[]> gibi bir veri tipinin ardından gelen boş köşeli parantez seti, parametrenin bir dizi veya koleksiyon nesnesi olarak iletilen birden fazla değeri kabul edebileceğini gösterir.

    Konumsal parametreler

    Bazı cmdlet'ler konumsal parametreleri kabul edecek şekilde tasarlanmıştır. Konumsal parametreler, parametrenin adını belirtmeden bir değer sağlamanıza olanak tanır. Bir parametreyi konumsal olarak kullanırken, değerini komut satırında doğru konumda belirtmeniz gerekir. Bir parametrenin konum bilgilerini, komutun yardım makalesinin PARAMETRELER bölümünde bulabilirsiniz. Parametre adlarını açıkça belirttiğinizde parametreleri istediğiniz sırayla kullanabilirsiniz.

    Get-EventLog cmdlet'i için ilk parametre kümesindeki ilk parametre LogName'dir. GünlükAdı, konumsal bir parametre olduğunu belirtmek üzere köşeli parantez içine alınmıştır.

    Get-EventLog [-LogName] <System.String>
    

    LogName konumsal bir parametre olduğundan, bunu ada veya konuma göre belirtebilirsiniz. Parametre adının ardından gelen açılı ayraçlara göre LogName değeri tek bir dize olmalıdır. Hem parametre adını hem de veri türünü kapsayan köşeli parantezlerin bulunmaması, GünlükAdı'nın bu özel parametre kümesinde gerekli bir parametre olduğunu gösterir.

    Bu parametre kümesindeki ikinci parametre InstanceId'dir. Hem parametre adı hem de veri türü tamamen köşeli parantez içine alınmıştır; bu, InstanceId'in isteğe bağlı bir parametre olduğunu gösterir.

    [[-InstanceId] <System.Int64[]>]
    

    Ayrıca, InstanceId'in kendi köşeli parantez çifti vardır; bu, onun LogName parametresine benzer konumsal bir parametre olduğunu gösterir. Veri türünün ardından gelen boş köşeli parantez kümesi, InstanceId'in birden fazla değeri kabul edebileceğini belirtir.

    Parametreleri değiştir

    Değer gerektirmeyen bir parametreye anahtar parametresi denir. Parametre adını takip eden bir veri türü olmadığından anahtar parametrelerini kolayca tanımlayabilirsiniz. Bir anahtar parametresi belirttiğinizde değeri true olur. Bir anahtar parametresi belirtmediğinizde değeri false olur.

    İkinci parametre seti, bir anahtar parametresi olan Liste parametresini içerir. List parametresini belirttiğinizde, yerel bilgisayardaki olay günlüklerinin bir listesini döndürür.

    [-List]
    

    Sözdizimine basitleştirilmiş bir yaklaşım

    Düz İngilizce dışında, bazı komutlar için şifreli komut sözdizimiyle aynı bilgileri elde etmenin daha kullanıcı dostu bir yöntemi vardır. PowerShell, Tam parametresiyle Get-Help kullanıldığında yardım makalesinin tamamını döndürerek komutun kullanımının anlaşılmasını kolaylaştırır.

    Get-Help -Name Get-Help -Full
    

    Bilgisayarınızdaki örneği çalıştırmak için bir dakikanızı ayırın, çıktıyı gözden geçirin ve yardım sisteminin bilgileri nasıl düzenlediğini gözlemleyin.

    • İSİM
    • ÖZET
    • SÖZDİZİMİ
    • TANIM
    • PARAMETRELER
    • GİRİŞLER
    • ÇIKIŞLAR
    • NOTLAR
    • ÖRNEKLER
    • Get-Help cmdlet'iyle Full parametresini belirterek, çıktı birkaç ekstra bölüm içerir. Bu bölümler arasında PARAMETRELER genellikle her parametre için ayrıntılı bir açıklama sağlar. Ancak bu bilginin kapsamı, araştırdığınız belirli komuta bağlı olarak değişir.

      ...
          -Detailed <System.Management.Automation.SwitchParameter>
              Adds parameter descriptions and examples to the basic help display.
              This parameter is effective only when the help files are installed
              on the computer. It has no effect on displays of conceptual ( About_
              ) help.
      
              Required?                    true
              Position?                    named
              Default value                False
              Accept pipeline input?       False
              Accept wildcard characters?  false
      
          -Examples <System.Management.Automation.SwitchParameter>
              Displays only the name, synopsis, and examples. This parameter is
              effective only when the help files are installed on the computer. It
              has no effect on displays of conceptual ( About_ ) help.
      
              Required?                    true
              Position?                    named
              Default value                False
              Accept pipeline input?       False
              Accept wildcard characters?  false
      
          -Full <System.Management.Automation.SwitchParameter>
              Displays the entire help article for a cmdlet. Full includes
              parameter descriptions and attributes, examples, input and output
              object types, and additional notes.
      
              This parameter is effective only when the help files are installed
              on the computer. It has no effect on displays of conceptual ( About_
              ) help.
      
              Required?                    false
              Position?                    named
              Default value                False
              Accept pipeline input?       False
              Accept wildcard characters?  false
      ...
      

      Get-Help komutunun yardımını görüntülemek için önceki komutu çalıştırdığınızda, muhtemelen çıktının okunamayacak kadar hızlı kaydırıldığını fark etmişsinizdir.

      PowerShell konsolunu, Windows Terminalini veya VS Code'u kullanıyorsanız ve bir yardım makalesini görüntülemeniz gerekiyorsa help işlevi yararlı olabilir. Get-Help çıktısını more.com'a yönlendirerek her seferinde bir yardım içeriği sayfası görüntüler. Get-Help cmdlet'i yerine help işlevini kullanmanızı öneririm çünkü bu daha iyi bir kullanıcı deneyimi sağlar ve daha az yazma işlemi gerektirir.

      Not

      ISE, more.com kullanımını desteklemediğinden, help'i çalıştırmak Get-Help ile aynı şekilde çalışır.

      Aşağıdaki komutların her birini bilgisayarınızdaki PowerShell'de çalıştırın.

      Get-Help -Name Get-Help -Full
      help -Name Get-Help -Full
      help Get-Help -Full
      

      Önceki komutları çalıştırdığınızda çıktıda herhangi bir değişiklik gözlemlediniz mi?

      Önceki örnekte, ilk satır Get-Help cmdlet'ini kullanıyor, ikinci satır help işlevini kullanıyor ve üçüncü satır Ad'ı atlıyor help işlevini kullanırken parametreyi kullanın. Ad konumsal bir parametre olduğundan üçüncü örnek, parametrenin adını açıkça belirtmek yerine konumunun avantajından yararlanır.

      Aradaki fark, son iki komutun çıktılarını teker teker görüntülemesidir. help işlevini kullanırken, içeriğin sonraki sayfasını görüntülemek için Boşluk Çubuğu tuşuna veya çıkmak için Q tuşuna basın. PowerShell'de etkileşimli olarak çalışan herhangi bir komutu sonlandırmanız gerekirse Ctrl+C tuşlarına basın.

      Belirli bir parametreyle ilgili bilgileri hızla bulmak için Parametre parametresini kullanın. Bu yaklaşım, yardım makalesinin tamamı yerine yalnızca parametreye özgü bilgileri içeren içeriği döndürür. Bu, belirli bir parametre hakkında bilgi bulmanın en kolay yoludur.

      Aşağıdaki örnekte, Get-Help'in Ad parametresi için yardım makalesinden bilgi döndürmek üzere Parameter parametresiyle birlikte help işlevi kullanılmaktadır. .

      help Get-Help -Parameter Name
      

      Yardım bilgileri, Ad parametresinin konumsal olduğunu ve konumsal olarak kullanıldığında ilk konumda (sıfır konumu) belirtilmesi gerektiğini gösterir.

      -Name <System.String>
          Gets help about the specified command or concept. Enter the name of a
          cmdlet, function, provider, script, or workflow, such as `Get-Member`,
          a conceptual article name, such as `about_Objects`, or an alias, such
          as `ls`. Wildcard characters are permitted in cmdlet and provider
          names, but you can't use wildcard characters to find the names of
          function help and script help articles.
      
          To get help for a script that isn't located in a path that's listed in
          the `$env:Path` environment variable, type the script's path and file
          name.
      
          If you enter the exact name of a help article, `Get-Help` displays the
          article contents.
      
          If you enter a word or word pattern that appears in several help
          article titles, `Get-Help` displays a list of the matching titles.
      
          If you enter any text that doesn't match any help article titles,
          `Get-Help` displays a list of articles that include that text in their
          contents.
      
          The names of conceptual articles, such as `about_Objects`, must be
          entered in English, even in non-English versions of PowerShell.
      
          Required?                    false
          Position?                    0
          Default value                None
          Accept pipeline input?       True (ByPropertyName)
          Accept wildcard characters?  true
      

      Ad parametresi, parametre adının yanındaki <String> veri türü tarafından tanımlanan bir dize değeri bekler.

      Bir yardım makalesinin alt kümesini döndürmek için Get-Help ile belirtebileceğiniz başka parametreler de vardır. Nasıl çalıştıklarını görmek için bilgisayarınızda aşağıdaki komutları çalıştırın.

      Get-Help -Name Get-Command -Full
      Get-Help -Name Get-Command -Detailed
      Get-Help -Name Get-Command -Examples
      Get-Help -Name Get-Command -Online
      Get-Help -Name Get-Command -Parameter Noun
      Get-Help -Name Get-Command -ShowWindow
      

      Genellikle help komutunu Tam veya Çevrimiçi parametresiyle kullanırım. Yalnızca örneklerle ilgileniyorsanız Örnekler parametresini kullanın. Yalnızca belirli bir parametreyle ilgileniyorsanız Parametre parametresini kullanın.

      ShowWindow parametresini kullandığınızda, yardım içeriği ayrı bir aranabilir pencerede görüntülenir. Birden fazla monitörünüz varsa bu pencereyi farklı bir monitöre taşıyabilirsiniz. Ancak ShowWindow parametresinde, yardım makalesinin tamamının görüntülenmesini engelleyebilecek bilinen bir hata bulunmaktadır. ShowWindow parametresi ayrıca Grafik Kullanıcı Arayüzüne (GUI) sahip bir işletim sistemi gerektirir. Windows Server Core'da kullanmaya çalıştığınızda bir hata döndürür.

      İnternet erişiminiz varsa bunun yerine Çevrimiçi parametresini kullanabilirsiniz. Çevrimiçi parametresi, yardım makalesini varsayılan web tarayıcınızda açar. Çevrimiçi içerik en güncel içeriktir. Tarayıcı, yardım içeriğinde arama yapmanıza ve diğer ilgili yardım makalelerini görüntülemenize olanak tanır.

      Not

      Çevrimiçi parametresi Hakkında makaleler için desteklenmez.

      help Get-Command -Online
      

      Get-Help ile komut bulma

      Get-Help ile komutları bulmak için, Ad parametresinin değeri için yıldız işareti (*) joker karakterleriyle çevrelenmiş bir arama terimi belirtin. Aşağıdaki örnekte Ad parametresi konumsal olarak kullanılmaktadır.

      help *process*
      
      Name                              Category  Module                    Synops
      ----                              --------  ------                    ------
      Enter-PSHostProcess               Cmdlet    Microsoft.PowerShell.Core Con...
      Exit-PSHostProcess                Cmdlet    Microsoft.PowerShell.Core Clo...
      Get-PSHostProcessInfo             Cmdlet    Microsoft.PowerShell.Core Get...
      Debug-Process                     Cmdlet    Microsoft.PowerShell.M... Deb...
      Get-Process                       Cmdlet    Microsoft.PowerShell.M... Get...
      Start-Process                     Cmdlet    Microsoft.PowerShell.M... Sta...
      Stop-Process                      Cmdlet    Microsoft.PowerShell.M... Sto...
      Wait-Process                      Cmdlet    Microsoft.PowerShell.M... Wai...
      Invoke-LapsPolicyProcessing       Cmdlet    LAPS                      Inv...
      ConvertTo-ProcessMitigationPolicy Cmdlet    ProcessMitigations        Con...
      Get-ProcessMitigation             Cmdlet    ProcessMitigations        Get...
      Set-ProcessMitigation             Cmdlet    ProcessMitigations        Set...
      

      Bu senaryoda * joker karakterlerini eklemenize gerek yoktur. Get-Help sağladığınız değerle eşleşen bir komut bulamazsa, bu değer için tam metin araması yapar. Aşağıdaki örnek, işlem'in her bir ucunda * joker karakterinin belirtilmesiyle aynı sonuçları üretir.

      help process
      

      Değer içinde bir joker karakter belirttiğinizde, Get-Help yalnızca sağladığınız kalıpla eşleşen komutları arar. Tam metin araması yapmaz. Aşağıdaki komut herhangi bir sonuç döndürmez.

      help pr*cess
      

      PowerShell, kısa çizgi ile başlayan bir değeri tırnak içine almadan belirtirseniz, bunu bir parametre adı olarak yorumladığından hata oluşturur. Get-Help cmdlet'i için böyle bir parametre adı mevcut değil.

      help -process
      

      -process ile biten komutları aramaya çalışıyorsanız değerin başına bir * eklemeniz gerekir.

      help *-process
      

      Get-Help ile PowerShell komutlarını aradığınızda, çok spesifik olmaktansa belirsiz olmak daha iyidir.

      Daha önce process kelimesini arattığınızda, sonuçlar yalnızca adlarında process içeren komutları döndürüyordu. Ancak işlemler'i ararsanız komut adları için herhangi bir eşleşme bulamaz. Daha önce de belirtildiği gibi, yardım herhangi bir eşleşme bulamadığında, sisteminizdeki her yardım makalesinde kapsamlı bir tam metin araması yapar ve bu sonuçları döndürür. Bu tür bir arama genellikle sizinle alakalı olmayan bilgiler de dahil olmak üzere beklenenden daha fazla sonuç üretir.

      help processes
      
      Name                              Category  Module                    Synops
      ----                              --------  ------                    ------
      Disconnect-PSSession              Cmdlet    Microsoft.PowerShell.Core Dis...
      Enter-PSHostProcess               Cmdlet    Microsoft.PowerShell.Core Con...
      ForEach-Object                    Cmdlet    Microsoft.PowerShell.Core Per...
      Get-PSHostProcessInfo             Cmdlet    Microsoft.PowerShell.Core Get...
      Get-PSSessionConfiguration        Cmdlet    Microsoft.PowerShell.Core Get...
      New-PSSessionOption               Cmdlet    Microsoft.PowerShell.Core Cre...
      New-PSTransportOption             Cmdlet    Microsoft.PowerShell.Core Cre...
      Out-Host                          Cmdlet    Microsoft.PowerShell.Core Sen...
      Start-Job                         Cmdlet    Microsoft.PowerShell.Core Sta...
      Where-Object                      Cmdlet    Microsoft.PowerShell.Core Sel...
      Debug-Process                     Cmdlet    Microsoft.PowerShell.M... Deb...
      Get-Process                       Cmdlet    Microsoft.PowerShell.M... Get...
      Get-WmiObject                     Cmdlet    Microsoft.PowerShell.M... Get...
      Start-Process                     Cmdlet    Microsoft.PowerShell.M... Sta...
      Stop-Process                      Cmdlet    Microsoft.PowerShell.M... Sto...
      Wait-Process                      Cmdlet    Microsoft.PowerShell.M... Wai...
      Clear-Variable                    Cmdlet    Microsoft.PowerShell.U... Del...
      Convert-String                    Cmdlet    Microsoft.PowerShell.U... For...
      ConvertFrom-Csv                   Cmdlet    Microsoft.PowerShell.U... Con...
      ConvertFrom-Json                  Cmdlet    Microsoft.PowerShell.U... Con...
      ConvertTo-Html                    Cmdlet    Microsoft.PowerShell.U... Con...
      ConvertTo-Xml                     Cmdlet    Microsoft.PowerShell.U... Cre...
      Debug-Runspace                    Cmdlet    Microsoft.PowerShell.U... Sta...
      Export-Csv                        Cmdlet    Microsoft.PowerShell.U... Con...
      Export-FormatData                 Cmdlet    Microsoft.PowerShell.U... Sav...
      Format-List                       Cmdlet    Microsoft.PowerShell.U... For...
      Format-Table                      Cmdlet    Microsoft.PowerShell.U... For...
      Get-Unique                        Cmdlet    Microsoft.PowerShell.U... Ret...
      Group-Object                      Cmdlet    Microsoft.PowerShell.U... Gro...
      Import-Clixml                     Cmdlet    Microsoft.PowerShell.U... Imp...
      Import-Csv                        Cmdlet    Microsoft.PowerShell.U... Cre...
      Measure-Object                    Cmdlet    Microsoft.PowerShell.U... Cal...
      Out-File                          Cmdlet    Microsoft.PowerShell.U... Sen...
      Out-GridView                      Cmdlet    Microsoft.PowerShell.U... Sen...
      Select-Object                     Cmdlet    Microsoft.PowerShell.U... Sel...
      Set-Variable                      Cmdlet    Microsoft.PowerShell.U... Set...
      Sort-Object                       Cmdlet    Microsoft.PowerShell.U... Sor...
      Tee-Object                        Cmdlet    Microsoft.PowerShell.U... Sav...
      Trace-Command                     Cmdlet    Microsoft.PowerShell.U... Con...
      Write-Information                 Cmdlet    Microsoft.PowerShell.U... Spe...
      Export-BinaryMiLog                Cmdlet    CimCmdlets                Cre...
      Get-CimAssociatedInstance         Cmdlet    CimCmdlets                Ret...
      Get-CimInstance                   Cmdlet    CimCmdlets                Get...
      Import-BinaryMiLog                Cmdlet    CimCmdlets                Use...
      Invoke-CimMethod                  Cmdlet    CimCmdlets                Inv...
      New-CimInstance                   Cmdlet    CimCmdlets                Cre...
      Remove-CimInstance                Cmdlet    CimCmdlets                Rem...
      Set-CimInstance                   Cmdlet    CimCmdlets                Mod...
      Compress-Archive                  Function  Microsoft.PowerShell.A... Cre...
      Get-Counter                       Cmdlet    Microsoft.PowerShell.D... Get...
      Invoke-WSManAction                Cmdlet    Microsoft.WSMan.Manage... Inv...
      Remove-WSManInstance              Cmdlet    Microsoft.WSMan.Manage... Del...
      Get-WSManInstance                 Cmdlet    Microsoft.WSMan.Manage... Dis...
      New-WSManInstance                 Cmdlet    Microsoft.WSMan.Manage... Cre...
      Set-WSManInstance                 Cmdlet    Microsoft.WSMan.Manage... Mod...
      about_Arithmetic_Operators        HelpFile
      about_Arrays                      HelpFile
      about_Environment_Variables       HelpFile
      about_Execution_Policies          HelpFile
      about_Functions                   HelpFile
      about_Jobs                        HelpFile
      about_Logging                     HelpFile
      about_Methods                     HelpFile
      about_Objects                     HelpFile
      about_Pipelines                   HelpFile
      about_Preference_Variables        HelpFile
      about_Remote                      HelpFile
      about_Remote_Jobs                 HelpFile
      about_Session_Configuration_Files HelpFile
      about_Simplified_Syntax           HelpFile
      about_Switch                      HelpFile
      about_Variables                   HelpFile
      about_Variable_Provider           HelpFile
      about_Windows_Powershell_5.1      HelpFile
      about_WQL                         HelpFile
      about_WS-Management_Cmdlets       HelpFile
      about_Foreach-Parallel            HelpFile
      about_Parallel                    HelpFile
      about_Sequence                    HelpFile
      

      işlem'i aradığınızda 12 sonuç döndürdü. Ancak işlemler arandığında 78 sonuç elde edildi. Aramanız yalnızca bir eşleşme bulursa Get-Help, arama sonuçlarını listelemek yerine yardım içeriğini görüntüler.

      help *hotfix*
      
      NAME
          Get-HotFix
      
      SYNOPSIS
          Gets the hotfixes that are installed on local or remote computers.
      
      
      SYNTAX
          Get-HotFix [-ComputerName <System.String[]>] [-Credential
          <System.Management.Automation.PSCredential>] [-Description
          <System.String[]>] [<CommonParameters>]
      
          Get-HotFix [[-Id] <System.String[]>] [-ComputerName <System.String[]>]
          [-Credential <System.Management.Automation.PSCredential>]
          [<CommonParameters>]
      
      
      DESCRIPTION
          > This cmdlet is only available on the Windows platform. The
          `Get-Hotfix` cmdlet uses the Win32_QuickFixEngineering WMI class to
          list hotfixes that are installed on the local computer or specified
          remote computers.
      
      
      RELATED LINKS
          Online Version: https://learn.microsoft.com/powershell/module/microsoft.
          powershell.management/get-hotfix?view=powershell-5.1&WT.mc_id=ps-gethelp
          about_Arrays
          Add-Content
          Get-ComputerRestorePoint
          Get-Credential
          Win32_QuickFixEngineering class
      
      REMARKS
          To see the examples, type: "get-help Get-HotFix -examples".
          For more information, type: "get-help Get-HotFix -detailed".
          For technical information, type: "get-help Get-HotFix -full".
          For online help, type: "get-help Get-HotFix -online"
      

      Bu özellik yaygın olarak bilinmese de, Get-Help ile yardım makalelerinin eksik olduğu komutları da bulabilirsiniz. more işlevi, yardım makalesi olmayan komutlardan biridir. Yardım makaleleri içermeyen Get-Help komutlarını bulabileceğinizi doğrulamak için daha fazla bulmak üzere help işlevini kullanın.

      help *more*
      

      Arama yalnızca bir eşleşme buldu, dolayısıyla bir komutun yardım makalesi olmadığında gördüğünüz temel sözdizimi bilgilerini döndürdü.

      NAME
          more
      
      SYNTAX
          more [[-paths] <string[]>]
      
      ALIASES
          None
      
      REMARKS
          None
      

      PowerShell yardım sistemi aynı zamanda Hakkında kavramsal yardım makalelerini de içerir. Hakkında makalelerini almak için sisteminizdeki yardım içeriğini güncellemeniz gerekir. Daha fazla bilgi için bu bölümün Güncelleme yardımı kısmına bakın.

      Sisteminizdeki tüm Hakkında yardım makalelerinin bir listesini döndürmek için aşağıdaki komutu kullanın.

      help About_*
      

      Sonuçları tek bir Hakkında yardım makalesiyle sınırladığınızda, Get-Help bu makalenin içeriğini görüntüler.

      help about_Updatable_Help
      

      Yardım güncelleniyor

      Bu bölümün başlarında, Get-Help cmdlet'ini ilk kez çalıştırdığınızda bilgisayarınızdaki PowerShell yardım makalelerini güncellediniz. Yardım içeriğine ilişkin güncellemeleri almak için bilgisayarınızda Update-Help cmdlet'ini düzenli aralıklarla çalıştırmalısınız.

      Bu önemli

      Windows PowerShell 5.1'de, yükseltilmiş bir PowerShell oturumunda Update-Help'i yönetici olarak çalıştırmanız gerekir.

      Aşağıdaki örnekte Güncelleme-Yardım, bilgisayarınızda yüklü olan tüm modüller için PowerShell yardım içeriğini indirir. Yardım içeriğinin en son sürümünü indirdiğinizden emin olmak için Zorla parametresini kullanmalısınız.

      Update-Help -Force
      

      Aşağıdaki sonuçlarda gösterildiği gibi bir modül hata döndürdü. Hatalar nadir değildir ve genellikle modülün yazarı güncellenebilir yardımı doğru şekilde yapılandırmadığında ortaya çıkar.

      Update-Help : Failed to update Help for the module(s) 'BitsTransfer' with UI
      culture(s) {en-US} : Unable to retrieve the HelpInfo XML file for UI culture
      en-US. Make sure the HelpInfoUri property in the module manifest is valid or
      check your network connection and then try the command again.
      At line:1 char:1
      + Update-Help
      + ~~~~~~~~~~~
          + CategoryInfo          : ResourceUnavailable: (:) [Update-Help], Except
         ion
          + FullyQualifiedErrorId : UnableToRetrieveHelpInfoXml,Microsoft.PowerShe
         ll.Commands.UpdateHelpCommand
      

      Güncelleme-Yardım, yardım içeriğini indirmek için internet erişimi gerektirir. Bilgisayarınızın internet erişimi yoksa, güncellenmiş yardım içeriğini indirip kaydetmek için internet erişimi olan bir bilgisayarda Save-Help cmdlet'ini kullanın. Ardından, kaydedilen güncellenmiş yardım içeriğinin konumunu belirtmek için Update-Help'in SourcePath parametresini kullanın.

      Get-Command

      Get-Command, komutları bulmanıza yardımcı olan başka bir çok amaçlı komuttur. Get-Command'ı herhangi bir parametre olmadan çalıştırdığınızda, sisteminizdeki tüm PowerShell komutlarının bir listesini döndürür. Ayrıca, Get-Help'e benzer komut söz dizimi elde etmek için Get-Command'ı da kullanabilirsiniz.

      Get-Command sözdizimini nasıl belirlersiniz? Bu bölümün Get-Help bölümünde gösterildiği gibi Get-Command yardım makalesini görüntülemek için Get-Help'i kullanabilirsiniz. Herhangi bir komutun söz dizimini görüntülemek için Sözdizimi parametresiyle birlikte Get-Command'ı da kullanabilirsiniz. Bu kısayol, bir komutun yardım içeriğinde gezinmeden, nasıl kullanılacağını hızlı bir şekilde belirlemenize yardımcı olur.

      Get-Command -Name Get-Command -Syntax
      

      Get-Command'ı Sözdizimi parametresiyle birlikte kullanmak, Get gibi izin verilen belirli değerleri listelemeden, parametreleri ve bunların değer türlerini gösteren sözdiziminin daha kısa bir görünümünü sağlar -Yardım gösterilir.

      Get-Command [[-ArgumentList] <Object[]>] [-Verb <string[]>]
      [-Noun <string[]>] [-Module <string[]>]
      [-FullyQualifiedModule <ModuleSpecification[]>] [-TotalCount <int>]
      [-Syntax] [-ShowCommandInfo] [-All] [-ListImported]
      [-ParameterName <string[]>] [-ParameterType <PSTypeName[]>]
      [<CommonParameters>]
      
      Get-Command [[-Name] <string[]>] [[-ArgumentList] <Object[]>]
      [-Module <string[]>] [-FullyQualifiedModule <ModuleSpecification[]>]
      [-CommandType <CommandTypes>] [-TotalCount <int>] [-Syntax]
      [-ShowCommandInfo] [-All] [-ListImported] [-ParameterName <string[]>]
      [-ParameterType <PSTypeName[]>] [<CommonParameters>]
      

      Bir komutun nasıl kullanılacağı hakkında daha ayrıntılı bilgiye ihtiyacınız varsa Get-Help'i kullanın.

      help Get-Command -Full
      

      Get-Help'in SÖZDİZİMİ bölümü, parametreler için numaralandırılmış değerleri genişleterek daha kullanıcı dostu bir görünüm sağlar. Kullanabileceğiniz gerçek değerleri göstererek mevcut seçenekleri anlamanızı kolaylaştırır.

      ...
          Get-Command [[-Name] <System.String[]>] [[-ArgumentList]
          <System.Object[]>] [-All] [-CommandType {Alias | Function | Filter |
          Cmdlet | ExternalScript | Application | Script | Workflow |
          Configuration | All}] [-FullyQualifiedModule
          <Microsoft.PowerShell.Commands.ModuleSpecification[]>] [-ListImported]
          [-Module <System.String[]>] [-ParameterName <System.String[]>]
          [-ParameterType <System.Management.Automation.PSTypeName[]>]
          [-ShowCommandInfo] [-Syntax] [-TotalCount <System.Int32>]
          [<CommonParameters>]
      
          Get-Command [[-ArgumentList] <System.Object[]>] [-All]
          [-FullyQualifiedModule
          <Microsoft.PowerShell.Commands.ModuleSpecification[]>] [-ListImported]
          [-Module <System.String[]>] [-Noun <System.String[]>] [-ParameterName
          <System.String[]>] [-ParameterType
          <System.Management.Automation.PSTypeName[]>] [-ShowCommandInfo]
          [-Syntax] [-TotalCount <System.Int32>] [-Verb <System.String[]>]
          [<CommonParameters>]
      ...
      

      Get-Command yardımının PARAMETRELER bölümü, Ad, İsmin ve Fiilin parametreler joker karakterleri kabul eder.

      ...
          -Name <System.String[]>
              Specifies an array of names. This cmdlet gets only commands that
              have the specified name. Enter a name or name pattern. Wildcard
              characters are permitted.
      
              To get commands that have the same name, use the All parameter. When
              two commands have the same name, by default, `Get-Command` gets the
              command that runs when you type the command name.
      
              Required?                    false
              Position?                    0
              Default value                None
              Accept pipeline input?       True (ByPropertyName, ByValue)
              Accept wildcard characters?  true
      
          -Noun <System.String[]>
              Specifies an array of command nouns. This cmdlet gets commands,
              which include cmdlets, functions, and aliases, that have names that
              include the specified noun. Enter one or more nouns or noun
              patterns. Wildcard characters are permitted.
      
              Required?                    false
              Position?                    named
              Default value                None
              Accept pipeline input?       True (ByPropertyName)
              Accept wildcard characters?  true
          -Verb <System.String[]>
              Specifies an array of command verbs. This cmdlet gets commands,
              which include cmdlets, functions, and aliases, that have names that
              include the specified verb. Enter one or more verbs or verb
              patterns. Wildcard characters are permitted.
      
              Required?                    false
              Position?                    named
              Default value                None
              Accept pipeline input?       True (ByPropertyName)
              Accept wildcard characters?  true
      ...
      

      Aşağıdaki örnekte, Get-Command'ın Ad parametresi değeriyle birlikte * joker karakteri kullanılmaktadır.

      Get-Command -Name *service*
      

      Get-Command'ın Ad parametresiyle joker karakterleri kullandığınızda, aşağıdaki sonuçlarda gösterildiği gibi PowerShell komutlarını ve yerel komutları döndürür.

      CommandType     Name                                               Version
      -----------     ----                                               -------
      Function        Get-NetFirewallServiceFilter                       2.0.0.0
      Function        Set-NetFirewallServiceFilter                       2.0.0.0
      Cmdlet          Get-Service                                        3.1.0.0
      Cmdlet          New-Service                                        3.1.0.0
      Cmdlet          New-WebServiceProxy                                3.1.0.0
      Cmdlet          Restart-Service                                    3.1.0.0
      Cmdlet          Resume-Service                                     3.1.0.0
      Cmdlet          Set-Service                                        3.1.0.0
      Cmdlet          Start-Service                                      3.1.0.0
      Cmdlet          Stop-Service                                       3.1.0.0
      Cmdlet          Suspend-Service                                    3.1.0.0
      Application     SecurityHealthService.exe                          10.0.2...
      Application     SensorDataService.exe                              10.0.2...
      Application     services.exe                                       10.0.2...
      Application     services.msc                                       0.0.0.0
      Application     TieringEngineService.exe                           10.0.2...
      Application     Windows.WARP.JITService.exe                        10.0.2...
      

      CommandType parametresini kullanarak Get-Command sonuçlarını PowerShell komutlarıyla sınırlandırabilirsiniz.

      Get-Command -Name *service* -CommandType Cmdlet, Function, Alias, Script
      

      Yalnızca PowerShell komutlarında fiiller ve isimler bulunduğundan başka bir seçenek de Fiil veya İsim parametresini ya da her ikisini birden kullanmak olabilir.

      Aşağıdaki örnek, bilgisayarınızdaki işlemlerle çalışan komutları bulmak için Get-Command'ı kullanır. İsim parametresini kullanın ve değeri olarak İşlem'i belirtin.

      Get-Command -Noun Process
      
      CommandType     Name                                               Version
      -----------     ----                                               -------
      Cmdlet          Debug-Process                                      3.1.0.0
      Cmdlet          Get-Process                                        3.1.0.0
      Cmdlet          Start-Process                                      3.1.0.0
      Cmdlet          Stop-Process                                       3.1.0.0
      Cmdlet          Wait-Process                                       3.1.0.0
      

      Özet

      Bu bölümde Get-Help ve Get-Command ile komutları nasıl bulacağınızı öğrendiniz. Ayrıca komutları bulduğunuzda nasıl kullanacağınızı anlamak için yardım sistemini nasıl kullanacağınızı da öğrendiniz. Ayrıca, yeni yardım içeriği mevcut olduğunda bilgisayarınızdaki yardım sistemini nasıl güncelleyeceğinizi öğrendiniz.

      Gözden geçirmek

      1. Get-Service'in DisplayName parametresi konumsal mı?
      2. Get-Process cmdlet'inde kaç parametre kümesi bulunur?
      3. Olay günlükleriyle çalışmak için hangi PowerShell komutları mevcuttur?
      4. Bilgisayarınızda çalışan PowerShell işlemlerinin listesini döndürmek için PowerShell komutu nedir?
      5. Bilgisayarınızda depolanan PowerShell yardım içeriğini nasıl güncellersiniz?

      Referanslar

      Bu bölümde ele alınan kavramlar hakkında daha fazla bilgi edinmek için aşağıdaki PowerShell yardım makalelerini okuyun.

      • Get-Help
      • Get-Command
      • Update-Help
      • Save-Help
      • about_Updatable_Help
      • about_Command_Sözdizimi

      Sonraki adımlar

      Bir sonraki bölümde nesneler, özellikler, yöntemler ve Get-Member cmdlet'i hakkında bilgi edineceksiniz.

İlgili makaleler