草庐IT

windows - netsh 并阻止访问除一个 WLAN 以外的所有 WLAN

coder 2024-06-12 原文

目前,我正在使用这个:

netsh wlan add filter permission=block ssid="WLAN1" networktype=infrastructure

隐藏特定的 WLAN SSID,使其不显示在系统托盘中。由于通常有不止一个可用,我决定将它们全部放在一个 *.bat 文件中,就像这样

@echo off
netsh wlan add filter permission=block ssid="WLAN1" networktype=infrastructure
netsh wlan add filter permission=block ssid="WLAN2" networktype=infrastructure
netsh wlan add filter permission=block ssid="AnotherWLAN" networktype=infrastructure
etc

只需单击一下即可全部屏蔽。

但是,这只会在被阻止的 WLAN 具有那些预定义的 SSID 时隐藏它们。如果他们改变了他们的 SSID,他们会再次出现,我必须改变我的文件。如果有几个,这不是问题,但通常会超过 20 个。

我想做什么

有没有办法让我使用 netsh 和 if、for 或 while 循环来阻止除了我选择的一个 SSID 以外的所有内容?例如,在(损坏的)伪代码中

    SET myWLAN = Home                // e.g. home WLAN SSID = Home
    if (! SSID == myWLAN) {
       loop through the available SSID, and block them via netsh
    }

或者,您会建议我只选择:

netsh wlan add filter permission=denyall networktype=infrastructure

然后为我家的无线局域网创建一个特殊的白名单过滤器

netsh wlan delete filter permission=block ssid="myWLAN SSID" networktype=infrastructure

我对这一切还很陌生,所以我们非常欢迎任何帮助。

最佳答案

@ECHO OFF
SETLOCAL

SET "allow=WLAN1"

FOR /f "tokens=3*" %%a IN ('netsh wlan show all^|findstr /i /b /L /c:"SSID "') DO (
 IF "%%b" neq "%allow%" ECHO(netsh wlan add filter permission=block ssid="%%b" networktype=infrastructure
)

GOTO :EOF

此批处理搜索 netsh wlan show all 输出以 /b 开始 /i 而不管大小写 /L 文字 /c: 这个常量字符串。

使用包含空格的默认定界符使用标记 3*(该行的其余部分)执行标记化,因此过滤的典型 SSID 行将是

SSID 5 : WLAN2

token 1 是 SSID,2 是 5,3 是 :,4 是 WLAN2

由于第一个指定的 token 是 3,因此该 token 分配给 %%a,下一个 token 分配给 %%b .

然后如果 %%b 中的 token 与 allowed 字符串不匹配,则阻止它(好吧,命令只是 echo用于调试 - 将 echo(netsh 更改为 netsh 以激活。

如果你要使用

set "allow=%~1" instead of `...WLAN1` then you could run<br>

这批 WLAN4

阻止除 WLAN4 之外的所有内容。

关于windows - netsh 并阻止访问除一个 WLAN 以外的所有 WLAN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36303540/

有关windows - netsh 并阻止访问除一个 WLAN 以外的所有 WLAN的更多相关文章

  1. ruby - 为什么我可以在 Ruby 中使用 Object#send 访问私有(private)/ protected 方法? - 2

    类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc

  2. ruby - 在 Ruby 程序执行时阻止 Windows 7 PC 进入休眠状态 - 2

    我需要在客户计算机上运行Ruby应用程序。通常需要几天才能完成(复制大备份文件)。问题是如果启用sleep,它会中断应用程序。否则,计算机将持续运行数周,直到我下次访问为止。有什么方法可以防止执行期间休眠并让Windows在执行后休眠吗?欢迎任何疯狂的想法;-) 最佳答案 Here建议使用SetThreadExecutionStateWinAPI函数,使应用程序能够通知系统它正在使用中,从而防止系统在应用程序运行时进入休眠状态或关闭显示。像这样的东西:require'Win32API'ES_AWAYMODE_REQUIRED=0x0

  3. ruby - 如何以所有可能的方式将字符串拆分为长度最多为 3 的连续子字符串? - 2

    我试图获取一个长度在1到10之间的字符串,并输出将字符串分解为大小为1、2或3的连续子字符串的所有可能方式。例如:输入:123456将整数分割成单个字符,然后继续查找组合。该代码将返回以下所有数组。[1,2,3,4,5,6][12,3,4,5,6][1,23,4,5,6][1,2,34,5,6][1,2,3,45,6][1,2,3,4,56][12,34,5,6][12,3,45,6][12,3,4,56][1,23,45,6][1,2,34,56][1,23,4,56][12,34,56][123,4,5,6][1,234,5,6][1,2,345,6][1,2,3,456][123

  4. ruby - 使用 Vim Rails,您可以创建一个新的迁移文件并一次性打开它吗? - 2

    使用带有Rails插件的vim,您可以创建一个迁移文件,然后一次性打开该文件吗?textmate也可以这样吗? 最佳答案 你可以使用rails.vim然后做类似的事情::Rgeneratemigratonadd_foo_to_bar插件将打开迁移生成的文件,这正是您想要的。我不能代表textmate。 关于ruby-使用VimRails,您可以创建一个新的迁移文件并一次性打开它吗?,我们在StackOverflow上找到一个类似的问题: https://sta

  5. ruby-on-rails - Rails - 一个 View 中的多个模型 - 2

    我需要从一个View访问多个模型。以前,我的links_controller仅用于提供以不同方式排序的链接资源。现在我想包括一个部分(我假设)显示按分数排序的顶级用户(@users=User.all.sort_by(&:score))我知道我可以将此代码插入每个链接操作并从View访问它,但这似乎不是“ruby方式”,我将需要在不久的将来访问更多模型。这可能会变得很脏,是否有针对这种情况的任何技术?注意事项:我认为我的应用程序正朝着单一格式和动态页面内容的方向发展,本质上是一个典型的网络应用程序。我知道before_filter但考虑到我希望应用程序进入的方向,这似乎很麻烦。最终从任何

  6. ruby-on-rails - 渲染另一个 Controller 的 View - 2

    我想要做的是有2个不同的Controller,client和test_client。客户端Controller已经构建,我想创建一个test_clientController,我可以使用它来玩弄客户端的UI并根据需要进行调整。我主要是想绕过我在客户端中内置的验证及其对加载数据的管理Controller的依赖。所以我希望test_clientController加载示例数据集,然后呈现客户端Controller的索引View,以便我可以调整客户端UI。就是这样。我在test_clients索引方法中试过这个:classTestClientdefindexrender:template=>

  7. ruby-on-rails - 在混合/模块中覆盖模型的属性访问器 - 2

    我有一个包含模块的模型。我想在模块中覆盖模型的访问器方法。例如:classBlah这显然行不通。有什么想法可以实现吗? 最佳答案 您的代码看起来是正确的。我们正在毫无困难地使用这个确切的模式。如果我没记错的话,Rails使用#method_missing作为属性setter,因此您的模块将优先,阻止ActiveRecord的setter。如果您正在使用ActiveSupport::Concern(参见thisblogpost),那么您的实例方法需要进入一个特殊的模块:classBlah

  8. ruby - 续集在添加关联时访问many_to_many连接表 - 2

    我正在使用Sequel构建一个愿望list系统。我有一个wishlists和itemstable和一个items_wishlists连接表(该名称是续集选择的名称)。items_wishlists表还有一个用于facebookid的额外列(因此我可以存储opengraph操作),这是一个NOTNULL列。我还有Wishlist和Item具有续集many_to_many关联的模型已建立。Wishlist类也有:selectmany_to_many关联的选项设置为select:[:items.*,:items_wishlists__facebook_action_id].有没有一种方法可以

  9. ruby-on-rails - 如果 Object::try 被发送到一个 nil 对象,为什么它会起作用? - 2

    如果您尝试在Ruby中的nil对象上调用方法,则会出现NoMethodError异常并显示消息:"undefinedmethod‘...’fornil:NilClass"然而,有一个tryRails中的方法,如果它被发送到一个nil对象,它只返回nil:require'rubygems'require'active_support/all'nil.try(:nonexisting_method)#noNoMethodErrorexceptionanymore那么try如何在内部工作以防止该异常? 最佳答案 像Ruby中的所有其他对象

  10. ruby - 为什么 SecureRandom.uuid 创建一个唯一的字符串? - 2

    关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭8年前。Improvethisquestion为什么SecureRandom.uuid创建一个唯一的字符串?SecureRandom.uuid#=>"35cb4e30-54e1-49f9-b5ce-4134799eb2c0"SecureRandom.uuid方法创建的字符串从不重复?

随机推荐