نحوه تغییر رمز در سرورهای ویندوزی

برای تغییر رمز عبور در سرور ویندوزی، اگر هنوز به سرور دسترسی دارید ساده‌ترین راه این است که داخل جلسه ریموت کلیدهای Ctrl+Alt+End را بزنید و Change a password را انتخاب کنید. برای عوض کردن رمز یک کاربر دیگر هم کافی است در Command Prompt یا PowerShell با دسترسی Administrator دستور net user <username> * را اجرا کنید. اما اگر رمز را فراموش کرده‌اید و اصلاً وارد ویندوز نمی‌شوید، از راه دور کاری از پیش نمی‌رود و باید از سرویس‌دهنده بخواهید دسترسی سطح کنسول در اختیارتان بگذارد؛ در ادامه هر سه حالت را جدا توضیح می‌دهیم.

قبل از شروع: این روش‌ها برای چه سرویسی است؟

مطلب پیش رو درباره سرورهای ویندوزی است؛ یعنی سرور مجازی یا سرور اختصاصی که خودتان با Remote Desktop به آن وصل می‌شوید و حساب Administrator در اختیارتان است. اگر سرویس شما هاست ویندوز ایران است و نه سرور، هیچ‌کدام از این مسیرها را نخواهید دید و رمز از داخل کنترل‌پنل میزبانی (Plesk) عوض می‌شود.

یک نکته درباره نسخه ویندوز: آموزش اصلی این صفحه برای ویندوز سرور ۲۰۰۸ نوشته شده بود. پشتیبانی امنیتی ۲۰۰۸ و ۲۰۰۸ R2 در سال ۲۰۲۰ و ۲۰۱۲ و ۲۰۱۲ R2 در سال ۲۰۲۳ تمام شده و این نسخه‌ها دیگر وصله امنیتی نمی‌گیرند. مسیرهای گرافیکی در نسخه‌های امروزی (۲۰۱۹، ۲۰۲۲ و ۲۰۲۵) تقریباً همان است، ولی اگر هنوز روی نسخه‌های قدیمی مانده‌اید، ارتقای سیستم‌عامل از تغییر رمز واجب‌تر است.

روش اول: تغییر رمز خودتان از داخل جلسه ریموت

داخل یک جلسه Remote Desktop، ترکیب Ctrl+Alt+Del به کامپیوتر خودتان اعمال می‌شود نه به سرور. معادل آن در جلسه ریموت Ctrl+Alt+End است. بعد از زدن این کلیدها صفحه امنیتی ویندوز باز می‌شود و گزینه Change a password را می‌بینید؛ رمز فعلی و سپس رمز جدید را دو بار وارد کنید.

اگر کلاینت شما این ترکیب کلید را به سرور نمی‌فرستد (مثلاً از یک کلاینت وب یا لپ‌تاپ بدون کلید End استفاده می‌کنید)، اجرای این دستور در PowerShell همان صفحه را باز می‌کند:

(New-Object -ComObject Shell.Application).WindowsSecurity()

چون این مسیر رمز قدیمی را می‌پرسد، ویندوز آن را «تغییر رمز» حساب می‌کند و دسترسی به فایل‌های رمزنگاری‌شده با EFS و رمزهای ذخیره‌شده در Credential Manager دست‌نخورده می‌ماند.

روش دوم: از مسیر Computer Management

برای عوض کردن رمز کاربری غیر از خودتان، مثلاً حسابی که روی یک سرور مجازی ابری ایران برای همکارتان ساخته‌اید، از کنسول مدیریت استفاده کنید. سریع‌ترین راه، زدن Win+R و اجرای compmgmt.msc است (یا مستقیم lusrmgr.msc). در نسخه‌های قدیمی‌تر همین ابزار از مسیر Start و سپس Administrative Tools در دسترس بود:

در پنجره باز شده به Local Users and Groups و سپس زیرشاخه Users بروید:

روی کاربر Administrator کلیک راست کنید و Set Password و سپس Proceed را بزنید. هشداری که ویندوز نشان می‌دهد تشریفاتی نیست: چون رمز قدیمی پرسیده نمی‌شود، فایل‌های رمزنگاری‌شده با EFS، گواهی‌های شخصی و رمزهای ذخیره‌شده آن کاربر از دسترس خارج می‌شوند. تا وقتی رمز قدیمی را دارید، روش اول امن‌تر است. روی Domain Controller هم اصلاً شاخه Local Users and Groups وجود ندارد و باید از dsa.msc یعنی Active Directory Users and Computers استفاده کنید.

روش سوم: تغییر رمز با خط فرمان

یک Command Prompt یا PowerShell را با Run as administrator باز کنید و بنویسید:

net user Administrator *

ستاره باعث می‌شود ویندوز رمز جدید را به‌صورت مخفی بپرسد. رمز را در خود دستور ننویسید؛ حالتی مثل net user Administrator MyPass123 رمز را در تاریخچه فرمان و لاگ‌ها باقی می‌گذارد. معادل امروزی و بهتر آن در PowerShell این است:

Set-LocalUser -Name "Administrator" -Password (Read-Host -AsSecureString "New password")

برای دیدن فهرست کاربران محلی از Get-LocalUser و برای بررسی نتیجه از net user Administrator استفاده کنید؛ مقدار Password last set باید تاریخ و ساعت همین حالا را نشان بدهد. آزمون واقعی اما این است که یک جلسه ریموت تازه باز کنید و با رمز جدید وارد شوید، پیش از آنکه جلسه فعلی را ببندید. روی سروری که تنها راه رسیدن به آن ریموت دسکتاپ است، همین احتیاط ساده تفاوت میان یک تغییر بی‌دردسر و ماندن پشت در سرور است.

وادار کردن کاربر به تغییر رمز در ورود بعدی

وقتی رمزی را برای همکار یا مشتری تعیین می‌کنید، بهتر است در اولین ورود مجبور به تغییر آن شود:

net user Administrator /logonpasswordchg:yes

این دستور روی حسابی که گزینه «رمز هرگز منقضی نشود» برایش فعال است بی‌اثر می‌ماند. پس اول آن را خاموش کنید:

Set-LocalUser -Name "Administrator" -PasswordNeverExpires $false

در آموزش‌های قدیمی برای همین کار از wmic استفاده می‌شد؛ این ابزار در ویندوزهای امروزی منسوخ اعلام شده و در حال حذف است، بنابراین به همان cmdlet بالا تکیه کنید.

https://blog.onlineserver.ir/wp-content/uploads/2021/01/تغییر-رمز-در-ویندوزسرور-12-2.mp4

ویدئوی بالا همین مراحل را به‌صورت تصویری روی ویندوز سرور ۲۰۱۲ نشان می‌دهد. ظاهر منوها در نسخه‌های جدیدتر کمی فرق دارد، اما نام گزینه‌ها و ترتیب کارها تغییری نکرده است.

اگر رمز را فراموش کرده‌اید و پشت در مانده‌اید

اینجا باید صریح بود: وقتی رمز Administrator را ندارید، هیچ راهی برای بازنشانی آن از طریق خود Remote Desktop وجود ندارد. تنها مسیرها اینها هستند و همگی به دسترسی سطح کنسول نیاز دارند:

  • کنسول تصویری سرور مجازی: کنسول مجازی‌ساز (چیزی شبیه VNC) مثل نشستن پای مانیتور فیزیکی سرور است و صفحه ورود ویندوز را نشان می‌دهد. اگر چنین گزینه‌ای در پنل کاربری‌تان نمی‌بینید، آن را با تیکت از پشتیبانی بخواهید. جای این گزینه و بقیه ابزارهایی که در پنل کاربری در اختیارتان است، در راهنمای مدیریت سرور مجازی ایران از پنل کاربری نشان داده شده است.
  • دسترسی کنسولی روی سرور فیزیکی: روی سرور اختصاصی کار باید از راه کنسول سخت‌افزار پیش برود تا بتوان سرور را با رسانه نصب یا محیط ریکاوری بالا آورد. اینکه این دسترسی چگونه و با چه شرایطی در اختیارتان قرار می‌گیرد به دیتاسنتر و سرویس بستگی دارد، پس اول از پشتیبانی بپرسید.
  • نصب مجدد یا اتصال دیسک به سرور دیگر: آخرین گزینه است و برای برداشتن نسخه پشتیبان از داده‌ها به کار می‌رود.

اگر دیسک با BitLocker رمزنگاری شده باشد، بدون کلید بازیابی حتی این مسیرها هم به جایی نمی‌رسند. در عمل باید یک تیکت به پشتیبانی بزنید؛ چون این کار دسترسی کامل به داده‌ها می‌دهد، سرویس‌دهنده‌های جدی پیش از انجام آن هویت مالک سرویس را احراز می‌کنند و همین درست است.

سیاست رمز و بستن در ورودی

سیاست رمز محلی در secpol.msc و زیر Account Policies تنظیم می‌شود: حداقل طول، الزام پیچیدگی و تعداد رمزهای به‌خاطر سپرده‌شده. بخش Account Lockout Policy از همه مهم‌تر است، چون با تعیین سقف برای تلاش‌های ناموفق حمله حدس رمز را عملاً بی‌اثر می‌کند. راهنماهای امنیتی امروز هم به‌جای تعویض اجباری دوره‌ای، روی طولانی‌تر بودن رمز و تغییر فوری در صورت مشکوک شدن تأکید می‌کنند.

مهم‌تر از هر رمزی: پورت 3389 نباید برای کل اینترنت باز باشد. سروری که RDP آن روی کل اینترنت باز باشد پیوسته هدف اسکن و تلاش خودکار برای ورود است و ردپای این تلاش‌ها در Event Viewer با رویداد 4625 پیدا است. دسترسی را در Windows Firewall به آی‌پی‌های مشخص محدود کنید یا RDP را پشت VPN یا RD Gateway ببرید و مطمئن شوید Network Level Authentication فعال است؛ صرفاً عوض کردن شماره پورت اسکنرها را متوقف نمی‌کند. اگر زمان یا دانش کافی برای این تنظیمات را ندارید، سپردن مدیریت سرور به یک سرویس مدیریت‌شده منطقی‌تر از رها کردن سرور با تنظیمات پیش‌فرض است.

خطاهای رایج بعد از تغییر رمز

پیام Access is denied تقریباً همیشه یعنی پنجره فرمان را با دسترسی Administrator باز نکرده‌اید، و رد شدن رمز جدید معمولاً به سیاست پیچیدگی یا حداقل طول برمی‌گردد. نکته‌ای که زیاد فراموش می‌شود هم این است: سرویس‌های ویندوز یا Scheduled Taskهایی که با همان حساب اجرا می‌شوند بعد از تغییر رمز از کار می‌افتند؛ رمز جدید را در services.msc و زبانه Log On هر سرویس به‌روز کنید. رمز ذخیره‌شده در کلاینت Remote Desktop خودتان را هم پاک کنید تا با اطلاعات قدیمی تلاش نکند و حساب را قفل نکند.

ارسال نظر