Merhaba, IT uzmanları olarak gün içersinde devamlı Powershell kullanmaktayız. Özellike sistemler üzerinde yetkilere ihtiyacımız olduğunda credentials işlemlerini çokça yapmaktayız. Bu işlemleri yaparken parolaları cleartext olarak girmek büyük sıkıntı yaratabiliyor. Böyle durumlarda powershell kullanarak parolalarınızı güvenli olarak saklayabilirsiniz.
İlk olarak bir parolanın nasıl güvenli olarak saklanabileceğini sonrasında örnek uygulama üzerinden powershell ile bir Exchange sunucusuna erişip exchange komutlarını nasıl kullanabileceğimizi inceleyeceğiz.
İlk olarak aşağıdaki komut ile şifremizi güvenli olarak şifreleyip saklıyoruz.
Read-Host -Assecurestring | Convertfrom-Securestring | Out-File C:\parola\pw.txt
Aşağıda görüldüğü gibi pw.txt içerisinde şifre güvenli olarak depolandı.
Bu aşamadan sonra artık parolamı tekrar decrypt edip kullanıcı adım ile parolamı $Credential değişkenine aktarıyorum.
$pw = Get-Content C:\parola\pw.txt | Convertto-Securestring
$Credential = New-Object -Typename System.Management.Automation.Pscredential -Argumentlist user@lab.local, $pw
Evet artık hazırım ve senaryomu uygulayabilirim. Yapmak istediğim uzak bir ortamda organizasyon içersindeki Excange sunucuya powershell ile bağlanıp Exchange komutlarını işletmek.
Aşağıdaki kod bloğu istediklerimizi yapıyor. Sırayla inceleyelim.
$pw = Get-Content C:\Scripts\cred\pw.txt | Convertto-Securestring # Depoladığım parolamı okuyorum.
$Credential = New-Object -Typename System.Management.Automation.Pscredential -Argumentlist user@lab.local, $pw # Kullanıcı adım ile parolamı "$Credential" değişkenine atıyorum.
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://mbx1.lab.local/powershell -Authentication Kerberos -Credential $Credential # Bu kod bloğu ile powershell üzerinden Exchange sunucusuna session açıyorum.
Import-PSSession | Exchange komutların impor ediyorum.
İşlemlerimi bitirdikten sonra Session’ı kapatmayı unutmuyorum.
Remove-PSSession $Session
Tüm kod bloğu
$pw = Get-Content C:\Scripts\cred\pw.txt | Convertto-Securestring
$Credential = New-Object -Typename System.Management.Automation.Pscredential -Argumentlist user@lab.local, $pw
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://mbx1.lab.local/powershell -Authentication Kerberos -Credential $Credential
Import-PSSession $Session
Tüm işlemler sonunda parolamı güvenli olarak sakladım sonrasında okudum ve Exchange bağlantım için kullandım, sizlerde farklı senaryolarda bu yöntemi kullanıp güvenlik katmanına bir halka daha ekleyebilirsiz.
Sağlıcakla kalın, keyifli okumalar.