C#在日常运维中的应用:操作Windows防火墙

前言

由于疫情的持续肆虐,出行成了大问题。为了尽量减少风险,外地的办公室是能不过去就不过去。一般问题远程就解决了,但碰到系统因故障需重装的情况就比较麻烦,外地的同事并不是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; 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值