精华内容
下载资源
问答
  • windows防火墙错误
    2022-02-22 11:22:15

    前言

    由于疫情的持续肆虐,出行成了大问题。为了尽量减少风险,外地的办公室是能不过去就不过去。一般问题远程就解决了,但碰到系统因故障需重装的情况就比较麻烦,外地的同事并不是IT专业的,在电话指导+Word文档指引下安装完系统,后续仍有一些重复的操作如开启远程桌面、设置默认账号密码及变更防火墙设置(以放开远程桌面连接)等,虽亦可以写份Word文档说明操作步骤,但总感觉这些操作可以通过程序来实现,同时考虑到在远程桌面开通后,仍有一些标准的安全设置需要重复设置,遂用C#写了两个小工具来自动化这些操作。其中主要用到以下这些功能,分享一下。

    在此前,我们已通过另一个Console小工具配合Powershell脚本开通了远程桌面,接下来我们可以通过C#来进行防火墙的基本设置。主要通过WindowsFirewallHelper(参考https://github.com/falahati/WindowsFirewallHelper)来操作Windows防火墙。

    /// <summary>
    /// 建立自定义程序规则
    /// </summary>
    /// <param name="newAppRuleName ">规则名称</param>
    /// <param name="appExeFileName">程序可执行文件完整路径及名称</param>
    private void CreateApplicationRule(string newAppRuleName, string appExeFileName)
    {
    	var rule = FirewallManager.Instance.Rules.Where(r =>
    	r.Direction == FirewallDirection.Outbound && //搜索出站规则
    	r.Name.Equals(newAppRuleName)
    	).FirstOrDefault();
    
    	if (rule == null) // 指定的规则不存在
    	{
    		try
    		{
    			rule = FirewallManager.Instance.CreateApplicationRule(
    				FirewallProfiles.Domain | FirewallProfiles.Private | FirewallProfiles.Public, // 生效的配置文件
    				newAppRuleName,
    				FirewallAction.Block, // 阻止
    				appExeFileName,
    				FirewallProtocol.TCP //协议
    				);
    
    			rule.Direction = FirewallDirection.Outbound; //方向:出站
    
    			FirewallManager.Instance.Rules.Add(rule);
    
    			// todo: 输出成功建立规则信息
    		}
    		catch (Exception ex)
    		{
    			// todo: 输出错误信息
    		}
    	}
    	else
    	{
    		// todo: 输出规则已存在信息			
    	}
    }
    
    /// <summary>
    /// 建立自定义端口规则
    /// </summary>
    /// <param name="newPortRuleName">规则名称</param>
    /// <param name="portNumber">端口:例如3389</param>
    /// <param name="firewallAction">动作:FirewallAction.Allow 或 FirewallAction.Block</param>
    /// <param name="firewallDirection">方向:FirewallDirection.Inbound 或 FirewallDirection.Outbound</param>
    private void CreatePortRule(string newPortRuleName, ushort portNumber, FirewallAction firewallAction, FirewallDirection firewallDirection)
    {
    	//搜索规则
    	var rule = FirewallManager.Instance.Rules.Where(r =>
    	r.Direction == firewallDirection && 
    	r.Name.Equals(newPortRuleName)
    	).FirstOrDefault();
    
    	if (rule == null) // 指定的规则不存在
    	{
    		try
    		{
    			rule = FirewallManager.Instance.CreatePortRule(
    				FirewallProfiles.Domain | FirewallProfiles.Private | FirewallProfiles.Public, // 生效的配置文件
    				newPortRuleName,
    				firewallAction, // 运作:允许或阻止
    				portNumber,
    				FirewallProtocol.TCP //协议
    				);
    
    			rule.Direction = firewallDirection; //方向
    
    			FirewallManager.Instance.Rules.Add(rule);
    
    			// todo: 输出成功建立规则信息
    		}
    		catch (Exception ex)
    		{
    			// todo: 输出错误信息
    		}
    	}
    	else
    	{
    		// todo: 输出规则已存在信息			
    	}
    }
    
    // 定义允许的IP地址列表
    private	IAddress[] TargetIPAddress = new IAddress[]
    {
    	SingleIP.Parse("192.168.11.248"),
    	SingleIP.Parse("192.168.10.248")
    };
    
    /// <summary>
    /// 更新自定义规则
    /// </summary>
    /// <param name="targetRuleName">规则名称</param>
    /// <param name="firewallDirection">入站或出站规则</param>
    /// <param name="allowedIPAddress">允许的IP地址</param>
    private void UpdateRule(string targetRuleName, FirewallDirection firewallDirection, IAddress[] allowedIPAddress)
    {
    	// 搜索目标规则
    	var rule = FirewallManager.Instance.Rules.Where(r =>
    	r.Direction == firewallDirection &&
    	r.Name.Equals(targetRuleName)
    	).FirstOrDefault();
    
    	if (rule != null)
    	{
    		try
    		{
    			rule.RemoteAddresses = allowedIPAddress;
    			// todo: 输出成功更新信息
    		}
    		catch (Exception ex)
    		{
    			// todo: 输出出错信息
    		}
    	}
    	else
    	{
    		// todo: 输出规则不存在信息
    	}
    }
    
    /// <summary>
    /// 删除(入站或出站)规则
    /// https://github.com/falahati/WindowsFirewallHelper 使用的是 SingleOrDefault
    /// 但是,如碰巧有两条同名规则时会报提示:Sequence Contains More Than One Matching Element 
    /// </summary>
    /// <param name="targetRuleName">规则名称</param>
    private void RemoveRule(string targetRuleName)
    {
    	var rule2Remove = FirewallManager.Instance.Rules.FirstOrDefault (r => r.Name == targetRuleName); 
    
    	if (rule2Remove!= null)
    	{
    		try
    		{
    			FirewallManager.Instance.Rules.Remove(rule2Remove);
    			// todo: 输出成功删除信息
    		}
    		catch (Exception ex)
    		{
    			// todo: 输出出错信息
    		}
    	}
    	else
    	{
    		// todo: 输出规则不存在信息
    	}
    }
    
    /*
    * 禁用或启用规则
    * WindowsFirewallHelper并没有提供禁用或启用规则的方法(或许是没有找到?),只能通过迂回的方式(运行advfirewall firewall set 命令)以达到目的。
    */
    
    /// <summary>
    /// 修改规则
    /// </summary>
    /// <param name="targetRuleName">规则名称</param>
    /// <param name="actionFlag">bool: True or False</param>
    private void ModifyRule(string targetRuleName, bool actionFlag)
    {
    	string cmd = "/C netsh advfirewall firewall set rule name=\"" + targetRuleName + "\" new enable=" + (actionFlag ? "yes" : "no");
    	RunCMD(cmd);
    }
    
    /// <summary>
    /// 运行命令行程序
    /// </summary>
    /// <param name="argument">命令行参数</param>
    private static void RunCMD(string argument)
    {
    	Process process = new Process();
    	ProcessStartInfo startInfo = new ProcessStartInfo();
    	startInfo.WindowStyle = ProcessWindowStyle.Hidden; // 隐藏运行时窗口
    	startInfo.FileName = @"C:\Windows\System32\cmd.exe";
    	startInfo.Arguments = argument;
    	process.StartInfo = startInfo;
    	process.Start();			
    }
    
    
    更多相关内容
  • 我的是Windows企业版系统,电脑是dellG3 3590。我已经尝试过百度搜索,用过的方法:1、启用了系统内置的超级管理员,进入了系统内置的超级管理员账户,也还是报同样的错误,2、注册表中修改这三个目录的权限,全部...
  • windows防火墙不能启动错误5

    千次阅读 2021-07-30 00:46:51
    Windows防火墙不能启动错误5的解决方法:1、原因是 NT Service/MpsSvc 帐户不具备相关注册表项的权限,则会发生此情况。下面我们获取相关注册表权限,在开始菜单输入regedit,进入注册表:找到下面三项,全部赋...

    有的用户因为之前的原因关闭了防火墙,又因为某些原因需要打开防火墙,却提示防火墙不能启动,错误代码5。下面让学习啦小编为大家整理一些关于这个问题的解决答案,希望能帮到大家。

    dbdb15189cf0557e986e079fc5571377.png

    Windows防火墙不能启动错误5的解决方法:

    1、原因是 NT Service/MpsSvc 帐户不具备相关注册表项的权限,则会发生此情况。

    下面我们获取相关注册表权限,在开始菜单输入regedit,进入注册表:

    找到下面三项,全部赋予NT Service/MpsSvc 帐户完全控制权限:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Epoch

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Defaults\FirewallPolicy

    如果没有NT Service/MpsSvc 帐户这个账户,则右键---权限---添加NT Service/MpsSvc 帐户,然后在到服务中,启用Windows Firewall服务。

    这样防火墙就可以开启了

    展开全文
  • 错误代码表示防火墙服务被禁用了。 当你再次发生上述错误的时候,我建议跟着下面的步骤检查: 1开始 >运行 >输入 services.msc 检查防火墙服务服务状态是否为启动 启动类型是否配置为自动 2 开始 >...

    错误代码表示防火墙服务被禁用了。

    当你再次发生上述错误的时候,我建议跟着下面的步骤检查:

    1开始 >运行 >输入 services.msc    检查防火墙服务服务状态是否为启动 启动类型是否配置为自动

     

    2 开始 >运行>输入 msconfig  检查下图中windows firewall是否有勾选。

    如果上述两项操作都正常,还是出现问题。

    请问你是否在服务器上安装了三方的软件?

    这里有有一个与你情况相似的主题,你可以参考

    防火墙管理单元无法加载,错误代码:0x6D9 - Microsoft Community

    展开全文
  • windows防火墙启动不了,错误代码13

    千次阅读 2020-03-31 16:51:16
    或者 尝试联系WindowsDefender防火墙服务时发生错误。请确保该服务正在运行,然后重试你的请求。 解决://www.digisaster.com/?p=268 开始运行 regedit 计算机 \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\...

    或者 尝试联系WindowsDefender防火墙服务时发生错误。请确保该服务正在运行,然后重试你的请求。
    解决://www.digisaster.com/?p=268
    开始运行 regedit
    运行
    计算机
    \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters
    注册表
    删除注册表FirewallPolicy下面的所有项,但是不删除FirewallPolicy这个,
    然后,命令行(admin)中输入:netsh advfirewall set allprofiles state on

    之后重启载打开防火墙界面点击使用推荐设置即可打开防火墙

    展开全文
  • 一、准备更改防火墙设置时,出现windows防火墙无法更改某些设置,错误代码0x80070422。 二、运行输入services.msc。 三、打开服务列表,找到“windows firewall”服务项。 四、右键属性,启动类型改...
  • 事情是这样的,本人不小心手欠按到了破解器上面的“一键禁止Windows defenders”的按钮,导致我的防火墙整个被禁止掉了,进“服务”页面里面也无法开启。 具体的表现有如下: Windows Defender防火墙未使用推荐的...
  • 自动诊断并修复windows防火墙服务问题工具是一款可以修复如Windows无法启动Windows防火墙服务0x5、缺少BFE服务或Windows远程协助没有运行等问题的工具,操作简单,非常好用。。相关软件软件大小版本说明下载地址自动...
  • 单击此处可以修复Windows错误并提高系统性能您可能会发现此问题,当您尝试打开Windows防火墙时,会说服务未运行。然后,当您尝试启动Windows防火墙服务时,您将收到此错误消息Windows无法启动本地计算机上的Windows...
  • 大家都知道防火墙的重要性,最近有用户遇反馈打开高级安全windows防火墙管理单元时出错,提示高级防火墙无法加载,请重新启动正在管理的计算机上的windows防火墙服务,错误代码0×6D9,怎么回事呢?出现打开高级安全...
  • 之前不知道什么原因关闭了win7防火墙,然后一直没启用,今天手机要更新点软件...有人说在服务中,启用Windows Firewall服务,但我服务中启动Windows Firewall服务提示 特定服务错误代码5, 然后进入防火墙中的高级设...
  • window防火墙无法更改某些设置,错误代码是0x80070422的解决方法: 1.键盘上按win+r(其中win一半为键盘上的微软符号)打开运行窗口,输入services.msc; 2.在打开的服务窗口中找到Window Firewall的服务,双击...
  • Windows 从命令行启用/禁用防火墙

    千次阅读 2021-12-21 13:12:38
    可以使用netsh命令从命令行启用/禁用 Windows 防火墙Windows 10 / Windows 8/ Windows 7 / Server 2008 /Vista: 让我们看看netsh advfirewall在这些 Windows 版本上配置防火墙的语法。3 个网络(域、专用、...
  • windows 2008系统防火墙无法启动提示 错误1068:依赖服务或组无法启动‘’ 首先通过系统日志发现是 BFE服务无法启动 然后把BFE服务启动后,再启动windows防火墙就可以起来了
  • win10系统防火墙无法启动怎么办?很多win7系统升级的win10系统的用户都会遇见防火墙无法正常启动的问题,因为win7系统的更新的防火墙我们一般是不怎么使用的,所有都会将其关闭。升级到win10系统之后防火墙也是在...
  • Windows防火墙是系统配置的防毒功能,Win7系统下开启防火墙可以有效地防止病毒入侵,但有用户反映Win7系统下开启防火墙的时候提示“打开高级安全Windows防火墙管理单元时出错,错误代码0x6D9。”这是怎么回事?Win7...
  • 启用IPsec与Windows防火墙审核事件
  • 我如何配置python/flask公开访问与Windows防火墙这一切都在WINDOWS -一切工作正常,我们已经在公司内部没有问题测试,现在我们正在尝试使用的应用程序在现实世界中 - 我们已经得到了我们的IT部门给我们一个面向公众...
  • 在windows 7操作系统中,有用户反应无法打开系统防火墙的情况,提示:Windows防火墙无法更改某些设置 错误代码0x80070422 的情况该怎么办呢?出现该错误代码是由于防火墙相应关联服务未开启导致的,下面小编给...
  • 此外,防火墙服务关闭后,其他计算机是否可以ping通这台服务器?如果可以ping通的话,我们可以通过抓包来分析。请注意,在每次捕获netmon之前清除DNS缓存。如何清除缓存:打开DNS控制台,右键单击服务器,然后单击...
  • Windows10的用户在自己的电脑系统中出现防火墙无法正常打开的问题,感觉自己的电脑会处于危险的状态,那么遇到这个情况该如何解决和打开防火墙呢?下面深度技术系统小编就把具体的解决方法分享给大家。   修复...
  • 问题: 打开windows防火墙管理单元时出错:代码0x6d9” 解决方法: 下一步-->下一步-->完成。 转载于:https://www.cnblogs.com/zouke1220/p/7676806.html...
  • win7系统提示“防火墙无法更改某些设置,错误代码0x8007437”,这该怎么办呢?下面脚本之家的小编就带来win7系统提示防火墙无法更改某些设置错误代码0x8007437的原因及四种解决方法,一起来看看吧。故障原因分析:1...
  • windows防火墙无法启动0x8007042c解决办法因为有一天发现wmi provider host这个进程严重占用cpu,在网上搜说是防火墙的问题,当时修改了一下注册表的某个键,果然cpu下去了,但是后来发现edge、搜索框、内置的app都...
  • 点击windows 7控制面板中防火墙的“推荐配置”没有反应 2.打开“服务”,无法启动windows firewall,并报错 3.打开“事件查看器”,选择“Windows 日志”-“系统”,找到最近发生的错误,其事件ID为7024,日志内容为...
  • 如果您关闭了 Windows防火墙,请采取适当的附加措施以帮助保护您的系统。我们建议,为了使您的系统更加安全,应只有在尝试了其它所有的办法而别无选择的情况下才关闭Windows 防火墙。Windows 防火墙是Windows XP ...
  • 1.依次点击“控制面板→系统和安全→Windows防火墙”,发现服务器防火墙未开放,选择开启防火墙或者使用运营商提供的服务器控制台来开放端口,点击左侧菜单中的“高级设置”,打开下图所示窗口: 2.鼠标右键点击...
  • 具有Windows PowerShell的具有高级安全性管理的Windows防火墙 2016年8月31日 23分钟阅读 适用于:Windows Server 2012,Windows 8 具有Windows PowerShell的具有高级安全性的Windows防火墙管理指南提供了基本的...
  • 我的情况是,win10升win11,导致windows安全中心无法正常打开,以至于关闭不了windows defender和防火墙,导致我的激活软件已安装就被删除,我还关闭不了它。 由此,我就想通过windows terminal下载一个完整版的...
  • win键+R键,输入“services.msc”找到“windows fillwall”双击,启动类型选“自动”,然后点击”服务状态”下面的启动

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 82,451
精华内容 32,980
关键字:

windows防火墙错误