此問題可能表示終端機伺服器上的另一個應用程式與遠端桌面通訊協定 (RDP) 使用相同的 TCP 連接埠。指派給 RDP 的預設連接埠是 3389。
若要解決此問題,請判斷哪個應用程式與 RDP 使用相同的連接埠。如果您無法變更該應用程式的連接埠指派,請透過編輯登錄,變更指派給 RDP 的連接埠。編輯登錄之後,您必須重新啟動終端機服務。重新啟動終端機服務之後,您應該確認 RDP 連接埠是否已經正確變更。
若要執行上述工作,請參閱下列各節。
判斷哪個應用程式與 RDP 使用相同的連接埠
您可以執行 netstat 工具來判斷終端機伺服器上是否有另一個應用程式正在使用連接埠 3389 (或指派的 RDP 連接埠)。
若要使用 netstat:
在終端機伺服器上,依序按一下 [開始] 和 [執行]、輸入 cmd,然後按一下 [確定]。
在命令提示字元下,輸入 netstat -a -o,然後按 ENTER。
尋找具有 Listening 狀態之 TCP 連接埠 3389 (或指派的 RDP 連接埠) 的項目。這就表示另一個應用程式正在使用這個連接埠。使用該連接埠之處理程序或服務的 PID (處理程序識別碼) 會顯示在 [PID] 欄位底下。
若要判斷哪個應用程式正在使用連接埠 3389 (或指派的 RDP 連接埠),請使用 tasklist 命令列工具搭配 netstat 工具所提供的 PID 資訊。
在終端機伺服器上,依序按一下 [開始] 和 [執行]、輸入 cmd,然後按一下 [確定]。
輸入 tasklist /svc,然後按 ENTER。
尋找與此連接埠相關聯之 PID 號碼的項目 (根據 netstat 輸出)。與該 PID 相關聯的服務或處理程序將會顯示在右側。
變更指派給 RDP 的連接埠
您應該判斷此應用程式是否能夠使用不同的連接埠。如果您無法變更此應用程式的連接埠,就必須變更指派給 RDP 的連接埠。
重要事項:Microsoft 不建議您變更指派給 RDP 的連接埠。
如果您必須變更指派給 RDP 的連接埠,就必須編輯登錄。
若要執行此程序,您必須擁有本機 Administrators 群組的成員資格,或者您必須已經被委派適當的權限。
若要變更指派給 RDP 的連接埠:
注意:不正確地編輯登錄可能會對系統造成嚴重損害。在變更登錄前,您應先備份所有重要的資料。
在終端機伺服器上,開啟 [登錄編輯程式]。若要開啟 [登錄編輯程式],請依序按一下 [開始] 和 [執行]、輸入 regedit,然後按一下 [確定]。
如果出現 [使用者帳戶控制] 對話方塊,請確認它所顯示的動作就是您所需的動作,然後按一下 [繼續]。
找到並按一下以下的登錄子機碼:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations
附註:RDP-TCP 是預設連線名稱。若要在終端機伺服器上變更特定連線的連接埠,請選取 WinStations 機碼底下的連線。
在右窗格中,按兩下 PortNumber 登錄項目。
在 [數值資料] 方塊中,輸入您想要指派給 RDP 的連接埠號碼。PortNumber 會輸入成十六進位值。
按一下 [確定] 儲存變更,然後關閉 [登錄編輯程式]。
重新啟動終端機服務
若要讓 RDP 連接埠指派變更生效,請停止並啟動終端機服務。
若要執行此程序,您必須擁有本機 Administrators 群組的成員資格,或者您必須已經被委派適當的權限。
若要停止並啟動終端機服務:
在終端機伺服器上,開啟 [服務] 嵌入式管理單元。若要開啟 [服務] 嵌入式管理單元,請按一下 [開始]、指向 [系統管理工具],然後按一下 [服務]。
如果出現 [使用者帳戶控制] 對話方塊,請確認它所顯示的動作就是您所需的動作,然後按一下 [繼續]。
在 [服務] 窗格中,以滑鼠右鍵按一下 [終端機服務],然後按一下 [重新啟動]。
如果出現有關重新啟動其他服務的提示,請按一下 [是]。
確認終端機服務的 [狀態] 欄位顯示 [已啟動]。
確認 RDP 連接埠是否已變更
若要確認 RDP 連接埠指派是否已變更,請使用 netstat 工具。
若要使用 netstat:
在終端機伺服器上,依序按一下 [開始] 和 [執行]、輸入 cmd,然後按一下 [確定]。
在命令提示字元下,輸入 netstat -a,然後按 ENTER。
尋找您指派給 RDP 之連接埠號碼的項目。此連接埠應該會顯示在清單中,而且具有 Listening 狀態。
重要事項:根據預設,遠端桌面連線和終端機伺服器 Web 用戶端會使用連接埠 3389 來連線到終端機伺服器。如果您變更了終端機伺服器的 RDP 連接埠,就必須修改遠端桌面連線和終端機伺服器 Web 用戶端所使用的連接埠。相關資訊,請參閱下列 Microsoft 知識庫文件編號:
Target | Microsoft.Windows.Server.2008.TerminalServicesRole.Service.TerminalServer | ||
Category | EventCollection | ||
Enabled | True | ||
Event_ID | 1036 | ||
Event Source | Microsoft-Windows-TerminalServices-RemoteConnectionManager | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Remotable | True | ||
Alert Message |
| ||
Event Log | System |
ID | Module Type | TypeId | RunAs |
---|---|---|---|
DS | DataSource | Microsoft.Windows.EventProvider | Default |
Alert | WriteAction | System.Health.GenerateAlert | Default |
<Rule ID="Microsoft.Windows.Server.2008.TerminalServicesRole.Service.TerminalServer.EventCollection.1036" Enabled="onStandardMonitoring" Target="Microsoft.Windows.Server.2008.TerminalServicesRole.Service.TerminalServer" ConfirmDelivery="true" Remotable="true" Priority="Normal" DiscardLevel="100">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="DS" TypeID="Windows!Microsoft.Windows.EventProvider">
<ComputerName>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<LogName>System</LogName>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">1036</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Microsoft-Windows-TerminalServices-RemoteConnectionManager</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="Alert" TypeID="SystemHealth!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>2</Severity>
<AlertName/>
<AlertDescription/>
<AlertOwner/>
<AlertMessageId>$MPElement[Name="Microsoft.Windows.Server.2008.TerminalServicesRole.Service.TerminalServer.EventCollection.1036.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue>$Data/LoggingComputer$</SuppressionValue>
</Suppression>
<Custom1/>
<Custom2/>
<Custom3/>
<Custom4/>
<Custom5/>
<Custom6/>
<Custom7/>
<Custom8/>
<Custom9/>
<Custom10/>
</WriteAction>
</WriteActions>
</Rule>