Read-Host: PowerShell Komut Dosyalarınıza Girdi Almanın Harika Bir Yolu


Read-Host PowerShell cmdlet'ini kullanarak, komut dosyası kullanıcısından etkileşimli olarak giriş talebinde bulunabilirsiniz. Read-Host PowerShell cmdlet'ini nasıl kullanabileceğimize dair bazı gerçek dünya uygulamalarına bakalım.

Read-Host ile Giriş İstemi

Read-Host cmdlet'i bir PowerShell betiğinde iki işlevi gerçekleştirir; yürütmeyi duraklatır ve girdi alır. Bu kadar. Read-Host basit bir cmdlet'tir ancak komut dosyası kullanıcısından bilgi alınması gerektiğinde kullanışlıdır.

En temel haliyle, Read-Host cmdlet'i yalnızca Prompt parametresinin kullanılmasını gerektirir. Bu Prompt parametresi, komut dosyası kullanıcısına ne gireceğine dair bir tür gösterge vermenizi sağlar. Örneğin, komut dosyanız bir sunucu adı gerektiriyorsa, komut dosyası çalıştırıldığında kullanıcıdan bu adı girmesini istemek için Read-Host kullanmayı seçebilirsiniz.

Aşağıda, Prompt parametresini kullanarak PowerShell konsolunda Read-Host komutunu çalıştırdığınızda, PowerShell'in tüm yürütmeyi durdurduğunu ve kullanıcıya açıklayıcı bir mesaj vererek bilgi istemi mesajımı görüntülediğini görebilirsiniz. neyin peşinde olduğumuza gelince.

Bunu bir senaryoya dahil edelim. Bir kullanıcı komut isteminde bilgi girdiğinde, Read-Host bu bilgiyi kodunuza geri döndürür. Çıktıyı bir değişkene atayarak bu bilgiyi kolayca yakalayabilirsiniz. Belki bir sunucu adı istemek ve ardından bu sunucu adıyla bir şeyler yapmak isterim. Aksi takdirde, kullanıcıya bu sunucu adına gerçekten ama gerçekten ihtiyacım olduğunu bildiren bir uyarı göndermek isterim.

$serverName = Read-Host -Prompt 'Server name to process'
if ($serverName) {
    Write-Host "We can now use the server name [$serverName] in our code"
} else {
    Write-Warning -Message "No server name input."
}

Basit bir if/then yapısı kullanarak kullanıcımın bir sunucu adı girdiğinden emin olabilirim. Bunu yaptıklarında, onu yakalayabilir ve onunla bir şeyler yapabilirim, aksi takdirde bir uyarı mesajı gönderebilirim.

Şifreleri İstemek

Şifrelerinizi komut dosyalarınızda düz metin olarak saklamanın iyi bir fikir olmadığını bilmelisiniz. Aynı şekilde, şifrelerin hafızada düz metin olarak saklanması da asla iyi bir fikir değildir. Bu sorunu aşmak için PowerShell, şifrelenmiş basit bir dize olan güvenli dize adı verilen bir kavrama sahiptir.

Güvenli bir dize her türlü hassas bilgiyi içerebilir; şifre harika bir örnektir. Bunun Read-Host ile ne ilgisi var? Read-Host cmdlet'i, kullanıcının yalnızca çıktıyı güvenli bir dize olarak saklamasına değil, aynı zamanda sırrınızı meraklı gözlerden gizlemek için yazarken yıldız işareti göstermesine olanak tanıyan bir AsSecureString parametresine sahiptir. gözler!

Diyelim ki kimsenin bilmesini istemediğim derin, karanlık bir sırrım var ama bu şifreyi bir tür yazılıma aktarmam gerekiyor. Aşağıda AsSecureString kullanmadığımda beni takip ettiğinizi görebilirsiniz! Ancak AsSecureString kullanırsam, yazdığım her karakterin yerine bir yıldız işareti konulduğu ve çıktı düz metin dizesi yerine güvenli bir dize olarak kaydedildiği için sırrım güvende olur.

Read-Host belgelerine başvurmak için Microsoft Dokümanlarına bakın.

İlgili makaleler