Akzeptieren Sie Remote Desktop-Verbindungen in Windows 7 Home Premium

43777
palswim

Eingehende Remote Desktop-Verbindungen werden von Windows 7 Home Premium standardmäßig nicht unterstützt (z. B. als Terminal Services Server).

Gibt es Möglichkeiten, Remote Desktop (Server) über eine Registrierungseinstellung oder einen Microsoft Hotfix zu aktivieren?

Eine ähnliche Frage besteht für Windows Vista Home Premium.

12

2 Antworten auf die Frage

10
Vadzim

RDP-Wrapper ist eine weitaus bessere Lösung als DLL-Patcher.

Vorteile:

  • unterstützt Windows Vista, 7, 8, 10
  • ändert keine System-DLLs
  • kollidiert nicht mit zukünftigen Windows-Updates
  • kann für die unbeaufsichtigte Installation verwendet werden
  • hat eingebauten fSingleSessionPerUserToggle
  • Kein Neustart erforderlich
  • wirkt sich nicht auf aktuell angemeldete Benutzer aus

Ich konnte es sogar über eine aktive rdp-Sitzung installieren. Es verlor nur die Verbindung für einen Moment und wurde dann wieder verbunden.

Um sich unter Windows 7 remote als ** Nicht-Administrator ** -Nutzer anmelden zu können, musste ich nach der Installation von RDPWrap den Anweisungen in [dieser Antwort] folgen (https://superuser.com/a/). 719819), um dem Benutzer das Remotedesktopprivileg zu erteilen. This isn't my real name vor 6 Jahren 1
4
palswim

Sie können Remote Desktop (Terminal Services) auf einem Windows Home Premium-Computer aktivieren. Dazu müssen Sie Ihre \ Windows \ System32 \ termsrv.dll-Datei mit einer gehackten Version überschreiben (oder sie vor Ort patchen / hacken), die Sie bei verschiedenen Suchmaschinen finden können.

Ich kann die genaue Site, an der ich meinen Patch gefunden habe, nicht finden, aber andere Sites sind entweder mit einem Patcher oder einer zu aktualisierenden Version der DLL vorhanden . Für SP1 benötigen Sie möglicherweise eine andere Datei. (Leider kann ich mich nicht gegen Link Rot schützen, aber diese Links enthalten ausführbare Dateien / DLL-Dateien zum Herunterladen.)

Mein Update enthielt ein Batch-Skript, das bei der Suche nach den exakt verwendeten Dateien helfen kann:

@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 
Ich [beantwortete diese Frage für Windows Vista Home Premium] (http://superuser.com/a/680536/45163), bevor ich begriff, dass das OP nicht nach 7, sondern nach Vista gefragt wurde. palswim vor 10 Jahren 2