Принимать подключения к удаленному рабочему столу в Windows 7 Home Premium

43679
palswim

Windows 7 Home Premium не поддерживает входящие подключения к удаленному рабочему столу по умолчанию (т. Е. В качестве сервера служб терминалов).

Но существуют ли способы включения удаленного рабочего стола (сервера) с помощью параметра реестра или исправления Microsoft?

Подобный вопрос существует для Windows Vista Home Premium.

12

2 ответа на вопрос

10
Vadzim

RDP Wrapper - намного более превосходное решение, чем патчеры dll.

Преимущества:

  • поддерживает Windows Vista, 7, 8, 10
  • не модифицирует системные dll
  • не будет конфликтовать с будущими обновлениями Windows
  • можно использовать для автоматической установки
  • имеет встроенный fSingleSessionPerUserпереключатель
  • перезагрузка не требуется
  • не влияет на зарегистрированных пользователей

Я даже смог установить его через активную сессию RDP. Он на мгновение потерял связь, а затем снова подключился.

Для Windows 7, чтобы иметь возможность удаленного входа в систему как пользователь ** без прав администратора **, после того, как я установил RDPWrap, мне нужно было следовать указаниям [этого ответа] (https://superuser.com/a/ 719819) для предоставления пользователю права удаленного рабочего стола. This isn't my real name 6 лет назад 1
4
palswim

Вы можете включить удаленный рабочий стол (службы терминалов) на компьютере Windows Home Premium. Он включает в себя перезапись вашего файла \ Windows \ System32 \ termrv.dll взломанной версией (или исправление / взлом его на месте), которую вы можете найти в различных поисковых системах.

Я не могу найти точный сайт, где я нашел свой патч, но существуют другие сайты, с патчером или версией DLL для обновления . Также для SP1 вам может понадобиться другой файл. (Извините, я не могу защитить от Link Rot, но эти ссылки содержат исполняемые файлы / файлы DLL для загрузки.)

Мое обновление пришло с пакетным скриптом, который может помочь с поиском точных файлов, которые я использовал:

@ECHO OFF  SETLOCAL ENABLEDELAYEDEXPANSION  SET WINVER=Windows 7 Build 7601 SET SET_PRODUCTNAME="Windows 7" SET SET_CURRENTBUILD="7601" SET SET_CSDBUILDNUMBER="1130" SET SET_VERSION=%SET_CURRENTBUILD%.%SET_CSDBUILDNUMBER%  TITLE Concurrent Remote Desktop Sessions %WINVER%  :SHOWHELP IF /I *%1 == *-? GOTO PRINTHELP IF /I *%1 == *help GOTO PRINTHELP GOTO PERMISSIONCHK  :PRINTHELP ECHO This script enables concurrent remote desktop sessions ECHO for %WINVER% ECHO. ECHO This script must be run as an Administrator. ECHO To open an elevated command prompt with Administrator privileges ECHO press WinKey, typ cmd, and hit Ctrl+Shift+Enter. ECHO. ECHO. ECHO Available commandline switches: ECHO. ECHO -? Show this help. ECHO help Same as -?. ECHO multi Enable multiple sessions per user. ECHO blank Enable remote logon for user accounts that are not password protected. ECHO. GOTO END  :PERMISSIONCHK REM Note: Mikinho, Updated admin right checks to a more appropiate method  SET HasAdminRights=0 FOR /F %%i IN ('WHOAMI /PRIV /NH') DO ( IF "%%i"=="SeTakeOwnershipPrivilege" SET HasAdminRights=1 )  IF NOT %HasAdminRights%==1 ( ECHO. ECHO This script must be run as an Administrator. ECHO. ECHO Use switch -? to show help. ECHO. GOTO END )  :VERSIONCHECK REM Note: Mikinho, Improved checks...  FOR /F "tokens=3*" %%A IN ('REG QUERY "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName ^| FIND "ProductName"') DO SET PRODUCTNAME=%%A %%B REM IF /I NOT "%PRODUCTNAME%" == %SET_PRODUCTNAME% GOTO UNSUPPORTED  FOR /F "tokens=3" %%A IN ('REG QUERY "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "EditionID"') DO SET EDITIONID=%%A IF /I NOT "%EDITIONID%" == "Ultimate" IF /I NOT "%EDITIONID%" == "Enterprise" IF /I NOT "%EDITIONID%" == "Professional" IF /I NOT "%EDITIONID%" == "HomePremium" GOTO UNSUPPORTED  FOR /F "tokens=3" %%A IN ('REG QUERY "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "CurrentBuild"') DO SET CURRENTBUILD=%%A IF /I NOT "%CURRENTBUILD%" == %SET_CURRENTBUILD% GOTO UNSUPPORTED  FOR /F "tokens=3" %%A IN ('REG QUERY "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "CSDBuildNumber"') DO SET CSDBUILDNUMBER=%%A IF /I NOT "%CSDBUILDNUMBER%" == %SET_CSDBUILDNUMBER% GOTO UNSUPPORTED  GOTO START  :UNSUPPORTED ECHO. ECHO Your operating system is not supported. ECHO Only for %WINVER% GOTO END  :START CLS IF /I EXIST %SystemRoot%\SysWOW64 (SET ARCH=64) ELSE (SET ARCH=32)  :DETECTARGUMENTS SET SINGLESESSION=1 SET BLANK=1 IF /I *%1 == *MULTI SET SINGLESESSION=0 IF /I *%2 == *MULTI SET SINGLESESSION=0 IF /I *%1 == *BLANK SET BLANK=0 IF /I *%2 == *BLANK SET BLANK=0  :SETSOURCEFOLDER REM This will get the folder the batch file was launched from since the current REM directory will change if launched from a network share SET SOURCEFOLDER=%~dp0 ECHO Source Folder is %SOURCEFOLDER%, Windows is %ARCH%-bit ECHO.  :TAKEOWNERSHIP ECHO Taking ownership of %SystemRoot%\System32\termsrv.dll takeown /a /f %SystemRoot%\System32\termsrv.dll ECHO Granting Administrators rights ICACLS %SystemRoot%\System32\termsrv.dll /Grant "%USERNAME%":F ICACLS %SystemRoot%\System32\termsrv.dll /Grant Administrators:F  :STOPTERMINALSERVICES ECHO Stopping Remote Desktop Services REM Update: Mikinho, changed to TermService for globalization NET stop TermService /y  :BACKUPTERMSRVDLL IF /I EXIST %SystemRoot%\System32\termsrv.dll.%SET_VERSION%.bak GOTO PATCHED COPY "%SystemRoot%\System32\termsrv.dll" "%SystemRoot%\System32\*.*.%SET_VERSION%.bak"  :COPYTERMSRVDLL  IF /I NOT EXIST "%SOURCEFOLDER%%ARCH%_termsrv.dll" ( ECHO. ECHO The %ARCH% version of termsrv.dll is not present ECHO. ECHO Use switch -? to show help. ECHO. GOTO END )  ECHO Copying "%SOURCEFOLDER%%ARCH%_termsrv.dll" to "%SystemRoot%\System32\termsrv.dll" COPY /Y "%SOURCEFOLDER%%ARCH%_termsrv.dll" "%SystemRoot%\System32\termsrv.dll"  GOTO IMPORTREGKEYS  :PATCHED ECHO ###################################### ECHO # Patched Already ,Config Editing... # ECHO ######################################  :IMPORTREGKEYS ECHO Enabling RDP REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f  :HOMEPREMIUM IF /I "%EDITIONID%" == "HomePremium" ( NETSH advfirewall firewall delete rule name="Remote Desktop (TCP-In)" NETSH advfirewall firewall add rule name="Remote Desktop (TCP-In)" program=System profile=public,private,domain dir=in localport=3389 protocol=tcp action=allow description="Inbound rule for the Remote Desktop service to allow RDP traffic. [TCP 3389]" COPY /Y "%SOURCEFOLDER%%ARCH%_rdpclip.exe" "%SystemRoot%\system32\rdpclip.exe" )  :SETSINGLESESSIONSETTING ECHO Setting fSingleSessionPerUser to %SINGLESESSION% REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fSingleSessionPerUser /t REG_DWORD /d %SINGLESESSION% /f  :SETBLANKPASSWORDPOLICY ECHO Setting LimitBlankPasswordUser to %BLANK% REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Lsa" /v LimitBlankPasswordUse /t REG_DWORD /d %BLANK% /f  :CONFIGUREFIREWALL ECHO Configuring Remote Desktop in Windows Firewall NETSH advfirewall firewall set rule group="remote desktop" new enable=Yes  :STARTTERMINALSERVICES ECHO Starting Remote Desktop Services REM Update: Mikinho, changed from "Remote Desktop Services" for globalization NET START TermService  :PAUSE5SECONDS ECHO Pausing 5 seconds to give service time to start listening CHOICE /n /c y /d y /t 5 > nul  :CHECKIFSERVICELISTENING ECHO Checking if Service is listening on port 3389 SUBST NETSTAT -a | find /i "3389" IF ERRORLEVEL 1 GOTO SERVICENOTLISTENING  :SERVICEISLISTENING ECHO Service is listening ECHO Done GOTO END  :SERVICENOTLISTENING ECHO Service is not listening  :CONTINUE ECHO Done  :END  ENDLOCAL  PAUSE  EXIT /B 
Я [ответил на этот вопрос для Windows Vista Home Premium] (http://superuser.com/a/680536/45163), прежде чем понял, что ОП спрашивает о Vista вместо 7. palswim 10 лет назад 2