Acceptez les connexions de bureau à distance dans Windows 7 Home Premium

Windows 7 Home Premium ne supporte pas les connexions entrantes de bureau à distance par défaut (c'est-à-dire comme un serveur de services Terminal Server).

Mais, existe-t-il des moyens d'activer Remote Desktop (serveur) via un paramètre de registre ou un correctif Microsoft?

Une question similaire existe pour Windows Vista Home Premium.

RDP Wrapper est une solution beaucoup plus supérieure que les correcteurs DLL.

Avantages:

  • Prend en charge Windows Vista, 7, 8, 10
  • Ne modifie pas les dll du système
  • N'interrompra pas avec les futures mises à jour de Windows
  • Peut être utilisé pour une installation sans surveillance
  • A fSingleSessionPerUser bascule fSingleSessionPerUser
  • Aucun redémarrage requis
  • N'affecte pas les utilisateurs actuellement connectés

J'ai même pu l'installer via la session rdp active. Il a juste perdu le lien pour un moment, puis a été reconecté à nouveau.

Vous pouvez activer Remote Desktop (Terminal Services) sur une machine Windows Home Premium. Cela implique d'écraser votre fichier \ Windows \ System32 \ termsrv.dll avec une version piratée (ou la mise en place ou le piratage sur place), que vous pouvez trouver à partir de différents moteurs de recherche.

Je ne trouve pas le site exact où j'ai trouvé mon correctif, mais d'autres sites existent, avec un correctif ou une version de la DLL à mettre à jour . De plus, pour SP1, vous pourriez avoir besoin d'un fichier différent. (Désolé, je ne peux pas protéger contre Link Rot , mais ces liens contiennent des fichiers exécutables / DLL à télécharger.)

Ma mise à jour est accompagnée d'un script de lot, qui peut aider à localiser les fichiers exacts que j'ai utilisés:

 @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 /cy /dy /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