Aracılığıyla paylaş


Bölüm 2 - Yardım sistemi

PowerShell'de yeterliliği değerlendirmek için tasarlanan bir denemede, yeni başlayanlar ve uzmanlar olmak üzere iki farklı BT uzmanı grubuna ilk olarak bir bilgisayara erişim olmadan yazılı bir sınav verildi. Şaşırtıcı bir şekilde, test puanları her iki grupta da karşılaştırılabilir becerileri gösteriyordu. Ardından ilkini yansıtan ancak tek bir önemli farkla sonraki bir test uygulandı: katılımcıların PowerShell ile donatılmış çevrimdışı bir bilgisayara erişimi vardı. Sonuçlar, bu kez iki grup arasında önemli bir beceri boşluğu olduğunu ortaya koydu.

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

Uzmanlar her zaman yanıtları bilmez, ancak yanıtları nasıl çözeceklerini bilirler.

İki testin sonuçlarında gözlemlenen sonuçlar, uzmanların binlerce PowerShell komutunu ezberlememelerinden kaynaklanıyordu. Bunun yerine, PowerShell'deki Yardım sistemini kullanma konusunda uzmandır ve gerektiğinde komutları bulmayı ve kullanmayı öğrenmelerini sağlar.

Yardım sistemiyle yetkin olmak, PowerShell ile başarının anahtarıdır.

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

Bulunabilirlik

PowerShell'de derlenen komutlar cmdlet'ler olarak bilinir; "command-let"olarak okunur, "CMD-let"olarak değil. Cmdlet'ler için adlandırma kuralı, kolayca bulunabilir olmalarını sağlamak için tekil 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. İşlevler, betik cmdlet'leri olarak da bilinir ve takma adlar, bu kitabın ilerleyen bölümlerinde ele alınan diğer PowerShell komut türleridir. "PowerShell komutu" terimi , cmdlet, işlev veya diğer addan bağımsız olarak PowerShell'deki tüm komutları açıklar.

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

PowerShell'deki üç çekirdek cmdlet'i

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

Sık sık soruldu: "PowerShell'de komutların ne olduğunu nasıl anlıyorsunuz?". Hem Get-Help hem de Get-Command, PowerShell'deki komutları bulmak ve anlamak için çok değerli kaynaklardır.

Yardım Al

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 komutdur. komutları bulmak için Get-Help de kullanabilirsiniz, ancak Get-Commandile karşılaştırıldığında farklı ve daha dolaylı bir şekilde.

komutları bulmak için Get-Help kullanırken, başlangıçta girişinize göre komut adları için joker karakter araması yapar. Bu herhangi bir eşleşme bulamazsa sisteminizdeki tüm PowerShell yardım makalelerinde kapsamlı bir tam metin araması yürütür. Eğer bu da hiçbir sonuç bulamazsa, bir hata döndürür.

Get-Help cmdlet'in yardım içeriğini görüntülemek için Get-Help kullanma burada anlatılır.

Get-Help -Name Get-Help

PowerShell sürüm 3.0'da başlayarak, yardım içeriği işletim sistemiyle önceden yüklenmez. Get-Help ilk kez çalıştırdığınızda, PowerShell yardım dosyalarını bilgisayarınıza indirmek isteyip istemediğinizi soran bir ileti görüntülenir.

'Y tuşuna basarak Evet yanıtını vermek, cmdlet'i yürütülür ve 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 iletiyi almazsanız, yönetici olarak çalışan yükseltilmiş bir PowerShell oturumundan Update-Help çalıştırın.

Güncelleştirme tamamlandıktan sonra yardım makalesi görüntülenir.

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

  • İSİM
  • ÖZET
  • SÖZDİZİMİ
  • AÇIKLAMA
  • İLGİLİ BAĞLANTILAR
  • AÇIKLAMALAR

Çıkışı gözden geçirirken, yardım makalelerinin genellikle çok fazla 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, komutuna 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 sağlar. Her yardım makalesinin SÖZ DIZIMİ bölümünde komut için kullanılabilir parametreler özetlenmiştir.

Get-Help, yardım makalesinin tamamını veya bir komutun alt kümesini döndürmek için belirtebileceğiniz çeşitli parametreler vardır. Get-Helpiçin tüm kullanılabilir parametreleri görüntülemek için, aşağıdaki örnekte gösterildiği gibi yardım makalesinin SÖZ DIZIMİ 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 kümeleri

için Get-Help bölümünü gözden geçirirken, bilgilerin altı kez yinelendiğini görebilirsiniz. Bu blokların her biri, Get-Help cmdlet'inin altı ayrı parametre kümesine sahip olduğunu gösteren tek bir parametre kümesidir. Daha yakından bir bakış, her parametre kümesinin en az bir benzersiz parametre içerdiğini ortaya çıkararak diğerlerinden farklı hale getirir.

Parametre kümeleri birbirini dışlar. Yalnızca bir parametre kümesinde bulunan benzersiz bir parametre belirttiğinizde, PowerShell sizi bu parametre kümesinin içinde yer alan parametreleri kullanmakla sınırlar. Örneğin, Tam ve Get-Help 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.

  • Tamamen dolu
  • Ayrıntılı
  • Örnekler
  • Çevrimiçi
  • Parametre
  • Pencereyi Göster

Komut söz dizimi

PowerShell'i yeni kullanıyorsanız, SÖZ DİZİMİ bölümünde, kare ve açılı ayraçlarla karakterize edilen gizemli bilgileri kavramak aşırı zordur. Ancak, bu söz dizimi öğelerini öğrenmek, PowerShell ile yetkin olmak için gereklidir. PowerShell Yardım sistemini ne kadar sık kullanırsanız, tüm nüansları hatırlamak o kadar kolay olur.

Get-EventLog cmdlet'in söz dizimini görüntüleyin.

Get-Help Get-EventLog

Aşağıdaki sonuçta yardım makalesinin ilgili bölümü gösterilmektedir.

...
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öz dizimi bilgileri köşeli ayraç çiftlerini içerir ([]). Kullanımlarına bağlı olarak, bu köşeli ayraçlar iki farklı amaca hizmet eder.

  • Köşeli parantez içine alınmış öğeler isteğe bağlıdır.
  • <string[]>gibi bir veri türünü izleyen boş köşeli ayraç kümesi, parametrenin dizi veya koleksiyon nesnesi olarak geçirilen birden çok değeri kabul ettiğini gösterir.

Konumsal parametreler

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

Get-EventLog cmdlet'i için, ilk parametre kümesindeki ilk parametre LogName. LogName köşeli ayraç içine alınır ve bunun konumsal bir parametre olduğunu gösterir.

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

LogName bir konum parametresi olduğu için, bunu ismi veya konumuna göre belirtebilirsiniz. Parametre adını izleyen 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 ayraçların olmaması, LogName bu parametre kümesi içinde 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 ayraç içine alınır ve InstanceId isteğe bağlı bir parametre olduğunu gösterir.

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

Ayrıca, InstanceId,LogName parametresine benzer bir konumsal parametre olduğunu belirten kendi köşeli ayraç çiftine sahiptir. Veri türünün ardından boş köşeli ayraç kümesi, InstanceId birden çok değeri kabul edebilir anlamına gelir.

Parametreleri değiştirme

Değer gerektirmeyen bir parametreye anahtar parametresi adı verilir. Parametre adından sonra veri türü olmadığından anahtar değişkenleri kolayca fark edebilirsiniz. Belirttiğiniz bir anahtar parametresinin değeri trueolur. Switch parametresi belirtmediğinizde, değeri falseolur.

İkinci parametre kümesi, anahtar değiştirme parametresi olan bir Liste parametresi içerir. Listesi parametresini belirttiğinizde, yerel bilgisayardaki olay günlüklerinin listesini döndürür.

[-List]

Söz dizimine basitleştirilmiş bir yaklaşım

Düz İngilizce dışında bazı komutlar için şifreli komut söz dizimi ile aynı bilgileri elde etmek için daha kullanıcı dostu bir yöntem vardır. PowerShell, Get-Help parametresiyle kullanırken tüm yardım makalesini döndürerek komutun kullanımını anlamayı kolaylaştırır.

Get-Help -Name Get-Help -Full

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

  • İSİM
  • ÖZET
  • SÖZDİZİMİ
  • AÇIKLAMA
  • PARAMETRE
  • GİRİŞ
  • ÇIKIŞ
  • NOTLAR
  • ÖRNEKLER
  • İLGİLİ BAĞLANTILAR

Tam parametresini Get-Help cmdlet'i ile belirttiğinizde, çıktı birkaç ek bölüm içerir. Bu bölümler arasında PARAMETERS genellikle her parametre için ayrıntılı bir açıklama sağlar. Ancak, bu bilgilerin 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, çıktının okunamayacak kadar hızlı kaydırılmış olduğunu fark etmişsinizdir.

PowerShell konsolu, Windows Terminali veya VS Code 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'e yönlendirir, her seferinde bir sayfa yardım içeriği gösterir. Daha iyi bir kullanıcı deneyimi sağladığından ve daha az yazıldığı için help cmdlet'i yerine Get-Help işlevini kullanmanızı öneririz.

Uyarı

ISE, more.comkullanılmasını desteklemez, bu nedenle help çalıştırmak Get-Helpile aynı şekilde çalışır.

Aşağıdaki komutların her birini bilgisayarınızda 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 çıkışta herhangi bir varyasyon gözlemlediniz mi?

Önceki örnekte ilk satır Get-Help cmdlet'ini, ikinci satır help işlevini, üçüncü satır ise işlevini kullanırken help parametresini atlar. Name konumsal bir parametre olduğundan, üçüncü örnek parametrenin adını açıkça belirtme yerine konumundan yararlanır.

Aradaki fark, son iki komutun çıktısını sayfa sayfa görüntülemesidir. help işlevini kullanırken, sonraki içerik sayfasını görüntülemek için Ara Çubuğu veya çıkmak için Q basın. PowerShell'de etkileşimli olarak çalışan herhangi bir komutu sonlandırmanız gerekiyorsa, Ctrl+Ctuşlarına basın.

Belirli bir parametre hakkındaki 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, help işlevi, Parameter parametresiyle, için Get-Help parametresinin yardım makalesindeki bilgileri döndürmek amacıyla kullanılmaktadır.

help Get-Help -Parameter Name

Yardım bilgileri, Name 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 birkaç parametre daha 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

help <command name>'ı genellikle Tam veya Online parametresiyle kullanıyorum. Yalnızca örneklerle ilgileniyorsanız Örnekleri 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 çok monitörünüz varsa bu pencereyi farklı bir monitöre taşıyabilirsiniz. Ancak ShowWindow parametresi, yardım makalesinin tamamını görüntülemesini engelleyebilecek bilinen bir hataya sahiptir. ShowWindow parametresi, Grafik Kullanıcı Arabirimi (GUI) içeren bir işletim sistemi de gerektirir. Windows Server Core'da kullanmayı denediğinizde bir hata döndürür.

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

Uyarı

Online parametresi Hakkında makalelerde desteklenmez.

help Get-Command -Online

Get-Help ile komutları bulma

Get-Helpkomutlarını bulmak için, * parametresinin değeri için, yıldız işareti () joker karakterleriyle çevrili bir arama terimi kullanarak arama yapın. 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 eklemeniz gerekmez. 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, *her ucundaki process joker karakterini belirtmekle aynı sonuçları üretir.

help process

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

help pr*cess

PowerShell, bir parametre adı olarak yorumladığı için tırnak içine almadan kısa çizgiyle başlayan bir değer belirtirseniz bir hata oluşturur. Get-Help cmdlet'i için böyle bir parametre adı yok.

help -process

-processile biten komutları aramayı denerseniz, değerin başına bir * eklemeniz gerekir.

help *-process

Get-Helpile PowerShell komutlarını aradığınızda, çok özel olmak yerine belirsiz olmak daha iyidir.

Daha önce process aradığınızda, sonuçlar yalnızca adında process bulunan komutları döndürdü. Ancak processesiçin arama yaparsanız, komut adları için hiçbir eşleşme bulamaz. Daha önce belirtildiği gibi, yardım hiçbir eşleşme bulamadıysa sisteminizdeki her yardım makalesinde kapsamlı bir tam metin araması yapar ve bu sonuçları döndürür. Bu tür aramalar genellikle sizinle ilgili 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

processaradığınızda 12 sonuç döndürdü. Ancak, processesararken 78 sonuç üretmiş. 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-Helpile ilgili yardım makalelerinin eksik olduğu komutları da bulabilirsiniz. more işlevi, yardım makalesi olmayan komutlardan biridir. Get-Help etiketini içeren ve yardım makalelerini içermeyen komutları bulabilmek için, help'yi bulmak amacıyla more işlevini kullanın.

help *more*

Aramada yalnızca bir eşleşme bulunduğundan, bir komutun yardım makalesi olmadığında gördüğünüz temel söz dizimi bilgilerini döndürdü.

NAME
    more

SYNTAX
    more [[-paths] <string[]>]

ALIASES
    None

REMARKS
    None

PowerShell yardım sistemi ayrıca kavramsal Hakkında yardım makaleleri içerir. Hakkında makalelerini almak için sisteminizdeki yardım içeriğini güncelleştirmeniz gerekir. Daha fazla bilgi için bu bölümün Güncelleştirme yardımı bölümüne bakın.

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

help About_*

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

help about_Updatable_Help

Yardım güncelleştiriliyor

Bu bölümün önceki bölümlerinde, Get-Help cmdlet'ini ilk kez çalıştırdığınızda bilgisayarınızdaki PowerShell yardım makalelerini güncelleştirmiştiniz. Yardım içeriğine yönelik güncelleştirmeleri almak için bilgisayarınızda Update-Help cmdlet'ini düzenli aralıklarla çalıştırmanız gerekir.

Önemli

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

Aşağıdaki örnekte, Update-Help bilgisayarınızda yüklü 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 kullanmanız gerekir.

Update-Help -Force

Aşağıdaki sonuçlarda gösterildiği gibi modül bir hata döndürdü. Hatalar yaygın değildir ve genellikle modülün yazarı güncelleştirilebilir yardımı doğru yapılandırmadığında oluşur.

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

Update-Help, yardım içeriğini indirmek için İnternet erişimi gerektirir. Bilgisayarınızda İnternet erişimi yoksa, güncelleştirilmiş yardım içeriğini indirmek ve kaydetmek için İnternet erişimi olan bir bilgisayarda Save-Help cmdlet'ini kullanın. Ardından, kaydedilen güncelleştirilmiş yardım içeriğinin konumunu belirtmek için Update-Help parametresini kullanın.

Get-Command

Get-Command, komutları bulmanıza yardımcı olan başka bir çok amaçlı komutdur. Get-Command parametresiz çalıştırdığınızda, sisteminizdeki tüm PowerShell komutlarının listesini döndürür. Get-Commandbenzer komut söz dizimlerini almak için Get-Help de kullanabilirsiniz.

Get-Commandsöz dizimini nasıl belirlersiniz? bu bölümün Get-Help bölümünde gösterildiği gibi Get-Commandyardım makalesini görüntülemek için kullanabilirsiniz. Herhangi bir komutun söz dizimini görüntülemek için Get-CommandSözdizimi parametresiyle de kullanabilirsiniz. Bu kısayol, yardım içeriğinde gezinmeden bir komutun nasıl kullanılacağını hızla belirlemenize yardımcı olur.

Get-Command -Name Get-Command -Syntax

Get-Command parametresiyle kullanılması, Get-Help gibi izin verilebilen değerleri listelemeden parametreleri ve bunların değer türlerini gösteren söz diziminin daha kısa bir görünümünü sağlar.

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>]

Komut kullanma hakkında daha ayrıntılı bilgilere ihtiyacınız varsa Get-Helpkullanın.

help Get-Command -Full

Get-Help bölümü, parametreler için numaralandırılmış değerleri genişleterek daha kullanıcı dostu bir görüntü sağlar. Kullanabileceğiniz gerçek değerleri gösterir ve kullanılabilir seçenekleri daha kolay anlayabilirsiniz.

...
    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>]
...

yardımının Get-Command bölümü, Adı, İsimve Fiil parametrelerinin joker karakterleri kabul ettiğini gösterir.

...
    -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, *için Name parametresinin değeriyle birlikte Get-Command joker karakteri kullanılır.

Get-Command -Name *service*

Get-Command parametresiyle joker karakterler 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...

Get-Command parametresini kullanarak sonuçlarını PowerShell komutlarına sınırlayabilirsiniz.

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

Bir diğer seçenek de Fiili veya İsim parametresini kullanmak ya da yalnızca PowerShell komutlarında fiiller ve isimler olduğundan her ikisi de olabilir.

Aşağıdaki örnek, bilgisayarınızda işlemlerle çalışan komutları bulmak için Get-Command kullanır. İsim parametresini kullanın ve değeri olarak Process 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-Commandkomutlarını bulmayı öğrendiniz. Ayrıca, komutları bulduğunuzda nasıl kullanacağınızı anlamak için yardım sistemini kullanmayı da öğrendiniz. Ayrıca, yeni yardım içeriği kullanılabilir olduğunda bilgisayarınızdaki yardım sistemini nasıl güncelleştirebilirsiniz?

Eleştiri

  1. Get-Service parametresi konumsal mı?
  2. Get-Process cmdlet'inde kaç parametre kümesi var?
  3. Olay günlükleriyle çalışmak için hangi PowerShell komutları var?
  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üncelleştirirsiniz?

Kaynaklar

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

Sonraki adımlar

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