Posted in

Powershell ile Kullanıcı Bilgileri Nasıl Şifrelenir?

powershell parola sifrelemek
powershell parola sifrelemek

Powershell otomasyonlarımızda doğrudan kullanıcı şifreleri yazılması diğer sunucu kullanıcıları tarafından görülebileceğinden güvenli değildir. Bu nedenle script içeriğine yazılan şifrelerin encrypt edilmesi önemli.

powershell parola sifrelemek
Kullanıcı bilgilerini şifrelemek

Kullanıcı Bilgileri Nasıl Şifrelenir ?

Kullanıcı bilgilerini şifrelemek için Get-Credential komutu ile PSCredential objesi oluşturup çıktıyı bir değişkene atıyoruz.

$MyCredential = Get-Credential

$MyCredential değişkenini ekrana yazdırdığınızda kullanıcı adını görebiliyorken şifre bilgisi “SecureString” tipinde saklandığı için ekranda “System.Security.SecureString” uyarısı görünecektir.

Powershell Get Credential
Kullanıcı Bilgileri Nasıl Şifrelenir?

Kullanıcı bilgilerini bir değişkene atadık. Şimdi bu bilgileri Export-CliXml komutu ile export edelim.

$MyCredential | Export-CliXml -Path 'C:\credential.cred'

“-path” komutundan sonra tırnak içerisinde bilgilerin export edileceği dosya yolunu belirtmeniz gerekmektedir.

Kullanıcı bilgilerini export ettğimize göre şimdi bu bilgileri powershell scriptlerinde nasıl kullanabileceğimizi görelim.

Öncelikle “Import-Clixml” komutu ile cred dosyamızı import edip bir değişkene atıyoruz.

$getcredential  = Import-Clixml -Path 'C:\credential.cred'

Cred dosyamızı import ettikten sonra aşağıdaki şekilde kullanıcı ve şifre bilgilerini kullanabilirsiniz.

// Kullanıcı adını $username değişkenine atayalım.
$username = $getcredential.UserName

// Parola bilgisini $password değişkenine atayalım. 
$password = $getcredential.GetNetworkCredential().password 

Örnek kullanımı;

// Şifrelenmiş kullanıcı bilgilerini import edldi.
$getcredential  = Import-Clixml -Path 'C:\credential.cred'

//Şifrelediğimiz kullanıcı bilgilerini $Credential değişkenine atandı.
$Credential = New-Object System.Management.Automation.PSCredential ($credentials.UserName, $credentials.Password)

//Şifrelediğimiz kullanıcı bilgileri ile cmd.exe çalıştırır.
Start-Process cmd.exe -Credential $Credential

Unutmadan, Şifrelediğiniz kullanıcı bilgileri sadece şifreleme yaparken kullandığınız hesabınız ile çözebilirsiniz. Yani resul kullanıcı ile şifrelenen kullanıcı bilgileri farklı bir kullanıcı ile çözülememektedir.

10 thoughts on “Powershell ile Kullanıcı Bilgileri Nasıl Şifrelenir?

  1. Ben de aynı yöntemi kullanarak birden fazla script’te kimlik bilgilerini güvenli bir şekilde sakladım. Export‑CliXml ile oluşturduğum .cred dosyasını bir versiyon kontrol sistemine eklemiyorum ve sadece ihtiyacım olduğunda Import‑Clixml ile çekiyorum. Bu sayede hem güvenlik hem de bakım kolaylığı sağladım. Özellikle New‑Object System.Management.Automation.PSCredential ile credential nesnesi oluşturup Start‑Process’e geçmek, otomasyon adımlarını sorunsuz çalıştırmamı sağladı.

  2. Ben de aynı yöntemi kullanarak birden fazla script’te kimlik bilgilerini güvenli bir şekilde yönetiyorum. Get‑Credential ile oluşturduğum PSCredential nesnesini Export‑CliXml ile dosyaya kaydedip, farklı ortamlarda Import‑Clixml ile tekrar yükleyebiliyorum. Özellikle CI/CD pipeline’larında bu yaklaşım, şifrelerin açıkta kalmasını önleyip, otomasyonun sorunsuz çalışmasını sağladı.

  3. Ben de benzer bir senaryoda, kullanıcı adı ve şifreyi Get‑Credential ile alıp Export‑CliXml ile dosyaya kaydettim. Özellikle birden fazla sunucuya aynı kimlik bilgileriyle bağlanmam gerektiğinde, bu .cred dosyasını Import‑Clixml ile çekip New‑Object System.Management.Automation.PSCredential ile kullanmak zaman kazandırdı. Ayrıca, script’i bir scheduled task içinde çalıştırdığımda, şifrelerin SecureString olarak saklanması sayesinde kimse plaintext göremediği için güvenlik de sağlandı.

  4. Ben de aynı yöntemi kullanarak birden fazla scriptte kimlik bilgilerini güvenli bir şekilde yönetiyorum. Get-Credential ile PSCredential oluşturup Export‑CliXml ile dosyaya kaydetmek, özellikle farklı ortamlarda aynı hesabı kullanırken büyük kolaylık sağladı. Import‑Clixml ile geri yükleyip New‑Object System.Management.Automation.PSCredential ile cmd.exe’yi credential ile başlatmak, manuel şifre girişi ihtiyacını ortadan kaldırdı ve otomasyon sürecimi hızlandırdı.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir