日韩欧美国产精品免费一二-日韩欧美国产精品亚洲二区-日韩欧美国产精品专区-日韩欧美国产另-日韩欧美国产免费看-日韩欧美国产免费看清风阁

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

C#強制開啟Windows系統遠程桌面服務,取消僅允許運行使用網絡級別身份驗證(NLA)的遠程桌面的計算機連接限制

admin
2025年3月7日 12:14 本文熱度 1041

以下是實現強制開啟Windows 遠程桌面服務并禁用網絡級別身份驗證(NLA)的C#代碼示例:

using System;

using Microsoft.Win32;

using System.ServiceProcess;

using System.Diagnostics;

using System.Security.Principal;


class EnableRemoteDesktop

{

    static void Main(string[] args)

    {

        if (!IsAdministrator())

        {

            Console.WriteLine("請以管理員權限運行此程序。");

            return;

        }


        try

        {

            ConfigureTermService();

            EnableRdpThroughRegistry();

            DisableNlaThroughRegistry();

            RestartTermService();

            

            Console.WriteLine("遠程桌面已成功啟用,NLA限制已取消!");

        }

        catch (Exception ex)

        {

            Console.WriteLine($"操作失敗: {ex.Message}");

        }

    }


    static bool IsAdministrator()

    {

        var identity = WindowsIdentity.GetCurrent();

        var principal = new WindowsPrincipal(identity);

        return principal.IsInRole(WindowsBuiltInRole.Administrator);

    }


    static void ConfigureTermService()

    {

        try

        {

            // 設置服務為自動啟動

            ProcessStartInfo scConfig = new ProcessStartInfo

            {

                FileName = "sc",

                Arguments = "config TermService start= auto",

                UseShellExecute = false,

                CreateNoWindow = true

            };

            Process.Start(scConfig)?.WaitForExit();


            // 確保服務運行

            using (ServiceController service = new ServiceController("TermService"))

            {

                if (service.Status != ServiceControllerStatus.Running)

                {

                    service.Start();

                    service.WaitForStatus(ServiceControllerStatus.Running, TimeSpan.FromSeconds(30));

                }

            }

        }

        catch (Exception ex)

        {

            throw new Exception($"配置遠程桌面服務失敗: {ex.Message}");

        }

    }


    static void EnableRdpThroughRegistry()

    {

        try

        {

            using (RegistryKey key = Registry.LocalMachine.OpenSubKey(

                @"SYSTEM\CurrentControlSet\Control\Terminal Server", true))

            {

                key?.SetValue("fDenyTSConnections", 0, RegistryValueKind.DWord);

            }

        }

        catch (Exception ex)

        {

            throw new Exception($"修改注冊表啟用RDP失敗: {ex.Message}");

        }

    }


    static void DisableNlaThroughRegistry()

    {

        try

        {

            using (RegistryKey rdpKey = Registry.LocalMachine.OpenSubKey(

                @"SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp", true))

            {

                rdpKey?.SetValue("UserAuthentication", 0, RegistryValueKind.DWord);

            }

        }

        catch (Exception ex)

        {

            throw new Exception($"禁用NLA失敗: {ex.Message}");

        }

    }


    static void RestartTermService()

    {

        try

        {

            using (ServiceController service = new ServiceController("TermService"))

            {

                if (service.Status == ServiceControllerStatus.Running)

                {

                    service.Stop();

                    service.WaitForStatus(ServiceControllerStatus.Stopped, TimeSpan.FromSeconds(30));

                }

                service.Start();

                service.WaitForStatus(ServiceControllerStatus.Running, TimeSpan.FromSeconds(30));

            }

        }

        catch (Exception ex)

        {

            throw new Exception($"重啟服務失敗: {ex.Message}");

        }

    }

}

使用說明:

  1. 以管理員身份運行:

    • 在Visual Studio中創建項目時,需在app.manifest中添加管理員權限請求:

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
  1. 關鍵操作說明:

    • fDenyTSConnections設為0啟用遠程桌面

    • UserAuthentication設為0禁用NLA

    • 服務配置: 將TermService服務設置為自動啟動并確保運行狀態

    • 注冊表修改:

    • 服務重啟: 確保注冊表修改生效

  2. 附加建議(可選):

// 添加防火墻規則(如果需要)

static void AddFirewallRule()

{

    try

    {

        ProcessStartInfo firewall = new ProcessStartInfo

        {

            FileName = "netsh",

            Arguments = "advfirewall firewall add rule name=\"Remote Desktop\" dir=in protocol=TCP localport=3389 action=allow",

            UseShellExecute = false,

            CreateNoWindow = true

        };

        Process.Start(firewall)?.WaitForExit();

    }

    catch (Exception ex)

    {

        Console.WriteLine($"防火墻規則添加失敗: {ex.Message}");

    }

}

注意事項:

  • 修改注冊表前建議備份

  • 禁用NLA會降低安全性,建議僅在可信網絡環境中使用

  • 部分服務器版本可能需要額外配置

  • 確保3389端口在防火墻中開放(代碼中已提供示例)

  • ?

相關文檔:

C#強制關閉Windows Server系統服務器遠程桌面服務方法[3]
  http://29680.oa22.cn


該文章在 2025/3/7 16:56:06 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 国产精品一区二区播放在线 | 欧美a级影院 | 欧美高清免费一 | 欧美性色黄大片www喷水 | 中文字幕一区二区三区乱码 | 经典日韩中文字幕综合网 | 成人午夜免费视频 | 大伊香蕉精品一区视 | 亚洲欧美中文字幕在线观看 | 日韩亚洲欧洲精品婷婷涩 | 日韩男女激情视频在线观看 | 色碰视频 | 99re5在线精品视频热线 | 56prom精品视频在放免费 | 最新国产一区二区三区在线 | 中文字幕精品二区 | 国产精品大白天新婚身材 | 欧美在线 | 国产精品成熟老女人视频 | 国产女精 | 亚美影视免费在线观看 | 国产成a人亚洲精品无 | 国语对白露脸在线播放 | 国产精品一品道加勒比 | 亚洲一级大片 | 九九国产| 精品欧美视频第二页在线观看 | 中文字幕高清在线免费播放 | 亚洲熟女www一区二区三区 | 午夜三级中文在线观看 | 国产精品香蕉在线观看 | 亚洲综合精品一区二区三区 | 亚洲va一区动漫 | 日韩经典欧美一区二区三区 | 亚洲人成网址在线观看 | 国产一级a毛一级a看免费视 | 三级精品 | 97香蕉国产免视频网站 | 亚洲桃色 | 91丝袜精品诱惑在线观看 | 国产欧美日韩综合精品一区二区三 |