برای فعال کردن remot desktop در حالت عادی از سروری که میخایم remot بزنیم (سرور مقصد) به control panel رفته system کلیک بعد تب remot ، یا در run تایپ میکنیم sysdm.cpl بعد در پنجره system properties به تب Remot و گزینه Allow remot connections to this computer را فعال می کنیم
حالا باید پورت 3389 را باز کنیم ، این پورت با نوشتن یک rule یا enable کردن rule که به صورت پیش فرض در Firewall وجود دارد را باز میکنیم ، در RUN تایپ میکنیم Wf.msc وبه قسمت Inbound Rules رفته و گزینه (Remot desktop usermod (TCPin را فعال می کنیم .حالا پورت 3389 باز شد.
یا firewall غیر فعال کنیم ، حالا میتونیم به سرور مورد نظر Remot بزنیم ، اما یه زمانی پیش میاد که ما به سروری که قصد ریموت زدن به آن را داریم دسترسی فیزیکی نداریم ، مثلا این سرور در طبقه مثلا 5 هست و ما در طبقه اول هستیم و کسی هم در اون طبقه نیست یا و یا کاربرنمی تونه تنظیمات رو انجام بده و ما هم نمی خواهیم تا طبقه 5 بریم و پشت اون سرور بریم و فعالش کنیم چون اگه تا اونجا بریم دیگه نیازی به remot زدن نیست ، خوب حالا با استفاده از مراحل زیر میتونیم پشت سیستم خودمون به راحتی Remot desktop رو روی سرور مورد نظر فعال کنیم . برای این کار کافیه کنسول services رو باز کنیم با استفاده از Run و تایپ services.msc بعد از منوی Action گزینه connect to another computer رومیزنیم و ip سیستم مقصد رو میزنیم و به services اون سرور وصل میشم
خوب حالا ما به services سرور مورد نظر وصل شدیم.حالا سرویس windows Firewall اون رو disable میکنیم
حالا کنسول رجیستری رو هم با استفاده از Run و تایپ Regedit اجرا میکنیم ، از منوی File گزینه connect network registry رو انتخاب و ip سرور مقصد را وارد میکنیم(computer name) کلاینت هم میشود استفاده کرد که راحت تر است
مقدار کلید fDenyTSConnections را مشخص میکنیم اگر 1 باشد یعنی غیر فعال است اگر 0 باشد فعال .پس مقدارش رو به 0 تبدیل می کنیم .حالا به همین راحتی میتونیم به سرور مورد نظر Remot بزنیم . Run و تایپ می کنیم MSTSC و ip اون سرور رو وارد میکنیم و وصل میشیم
شاید نیاز به پاک سازی Active Directory یا حذف کاربران بلا استفاده از آن را داشته باشید. برای اینکار هم نرم افزار وجود داره و هم میتونی از دستورات خود Active directory استفاده کنی که من توصیه میکنم از دستور DSQuery استفاده کنی که همونجور که از اسمش مشخصه برای Query گرفتن از Active Directory هست :
C:\> dsquery user -inactive 4
C:\> dsquery user -inactive 4 | dsmod user -disabled yes
pipe خروجی دستور فعلی رو میده به دستور بعدی.
این قضیه متاسفانه احتمالات زیادی میشه داد برای قطع شدنش از کابل و سوییچ تو مسیر میشه تا اینکه تراست بین دامینها (اگه شامل بشه) باید اینا تست بشن یکی یکی و درست بشن ولی برای حل سریع مشکل برا اینکه کاربران صداشون در نیاد
نرم افزار رو بریزین و درایوها رو ادد کنین تو هر ریستارت درایوها رو از نو مپ میکنه و فرصتی برای شما فراهم میکنه که مشکل شبکه تون رو حل کنید.
در حال حاضر مایکروسافت با ارائه آپدیت KB4471218 این مشکل را در ویندوز 10 نسخه 1809 برطرف کرده است.این رو نصب کنید اگه ندارید .
راه دوم
این فایل رو با پسوند ps1 در مسیر C:\MS ذخیره کنید.(MapDrives.ps1)
$i=3 while($True){ $error.clear() $MappedDrives = Get-SmbMapping |where -property Status -Value Unavailable -EQ | select LocalPath,RemotePath foreach( $MappedDrive in $MappedDrives) { try { New-SmbMapping -LocalPath $MappedDrive.LocalPath -RemotePath $MappedDrive.RemotePath -Persistent $True } catch { Write-Host "Shared folder connection error: $MappedDrive.RemotePath to drive $MappedDrive.LocalPath" } } $i = $i - 1 if($error.Count -eq 0 -Or $i -eq 0) {break} Start-Sleep -Seconds 30 }
این فایل هم بصورت یک اسکریپت در استارت آپ بزارید
PowerShell -Command "Set-ExecutionPolicy -Scope CurrentUser Unrestricted" >> "%TEMP%\StartupLog.txt" 2>&1 PowerShell -File "%SystemDrive%\PS\MapDrives.ps1" >> "%TEMP%\StartupLog.txt" 2>&1
این اسکریپت رو هم در Schedule Task میشه اجرا کرد.