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.

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.

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.

işime yaradı teşekkürler.
Rica ederim hocam.
Sade ve basit anlaşılır anlatım olmuş eyw
Eyvallah hocam.
Güzel bir paylaşım olmuş, işime yaradı. Teşekkür ederim.
Rica ederim hocam.
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ı.
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ı.
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ı.
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ı.