Windows 7 Home Premiumは、デフォルトで(つまり、ターミナルサービスサーバーとして)着信リモートデスクトップ接続をサポートしていません。
しかし、レジストリ設定またはMicrosoftホットフィックスを介してリモートデスクトップ(サーバー)を有効にする方法はありますか?
同様の質問 がWindows Vista Home Premiumに存在します。
RDPラッパー は、dllパッチャーよりもはるかに優れたソリューションです。
利点:
fSingleSessionPerUser
トグルアクティブなRDPセッションを介してインストールすることもできました。少しの間リンクを失い、その後再接続しました。
Windows Home Premiumマシンでリモートデスクトップ(ターミナルサービス)を有効にできます。\Windows\System32\termsrv.dllファイルをハッキングされたバージョンで上書きする(またはパッチを適用/ハッキングする)ことで、さまざまな検索エンジンから見つけることができます。
パッチを見つけた正確なサイトは見つかりませんが、 patcher または DLL to update のバージョン。また、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