پاورشل برای برنامهنویسان
@programming_tipsدرسنامه: Credential Management (Get-Credential)
این درسنامه به مدیریت اعتبارنامهها و اطلاعات ورود در PowerShell میپردازد و تمرکز آن روی فرمان Get-Credential است. برنامهنویسان و مدیران سیستم گاهی نیاز دارند که به سرویسها، پایگاه دادهها یا سرورهای راه دور وصل شوند و برای این کار باید اطلاعات کاربری (نام کاربری و رمز عبور) را امن نگه دارند. Get-Credential یکی از روشهای استاندارد PowerShell برای دریافت و ذخیره این اطلاعات به شکل امن است.
۱. مفهوم Credential
در واقع Credential به معنای اطلاعات ورود شامل نام کاربری و رمز عبور است. PowerShell امکان نگهداری این اطلاعات به صورت امن در متغیرها یا انتقال آنها به دستورات دیگر را فراهم میکند. این کار به ویژه برای اسکریپتهایی که نیاز به دسترسی به سرویسهای راه دور دارند حیاتی است.
۲. استفاده از Get-Credential
فرمان Get-Credential یک پنجرهی دیالوگ باز میکند که از کاربر میخواهد نام کاربری و رمز عبور خود را وارد کند. نتیجه این دستور یک شیء Credential از نوع PSCredential است.
مثال:
$cred = Get-Credential
بعد از اجرای این دستور، یک پنجره ظاهر میشود و از شما میخواهد اطلاعات کاربری را وارد کنید. پس از تایید، اطلاعات به متغیر $cred ذخیره میشود و میتوان آن را به سایر دستورات منتقل کرد.
۳. استفاده از Credential در دستورات دیگر
اکثر دستورات PowerShell که با سرور یا سرویسهای راه دور کار میکنند، امکان دریافت Credential دارند. به عنوان مثال اتصال به سرور راه دور با Invoke-Command:
Invoke-Command -ComputerName Server01 -Credential $cred -ScriptBlock {
Get-Process
}
در این مثال، $cred اطلاعات ورود را به دستور میدهد و اتصال امن برقرار میشود.
همچنین میتوان از Credential برای اتصال به سرویسهای آنلاین، پایگاه دادهها یا ابزارهای مدیریت ابری استفاده کرد.
۴. نکات امنیتی
- رمز عبور به صورت امن ذخیره میشود و در متغیر
$credبه شکل قابل خواندن متن ساده نیست. - هرگز Credential را به صورت متن ساده در اسکریپتها ننویسید. اگر نیاز به ذخیره طولانی مدت دارید، از ذخیرهسازی رمزنگاری شده یا ابزارهای مدیریت امن استفاده کنید.
- استفاده از
Get-Credentialبه برنامهنویس امکان میدهد اسکریپتها را با اطلاعات ورود متفاوت و امن روی سیستمهای مختلف اجرا کند.
۵. نمونه استفاده عملی
فرض کنید میخواهید با PowerShell به یک سرور راه دور متصل شوید و فرآیندهای آن را بررسی کنید:
# دریافت Credential
$cred = Get-Credential
# اجرای دستور روی سرور راه دور
Invoke-Command -ComputerName Server01 -Credential $cred -ScriptBlock {
Get-Service
}
این روش امن، ساده و استاندارد است و امکان استفاده مجدد از Credential را در چندین دستور فراهم میکند.
جمعبندی
پس Get-Credential ابزار قدرتمند PowerShell برای دریافت و مدیریت امن اطلاعات ورود است. با استفاده از آن، میتوان اسکریپتها را بدون افشای رمز عبور نوشت و عملیات مدیریت سیستم یا اتصال به سرویسهای راه دور را به شکل امن و حرفهای انجام داد. رعایت نکات امنیتی و عدم ذخیره Credential به صورت متن ساده، از ملزومات برنامهنویسی امن با PowerShell است.