我创build了一个批处理脚本,它将通过修改这个位置的hosts文件阻止Facebook C:\windows\system32\drivers\etc\hosts
这是batch file的内容:
@echo off echo 127.0.0.1 www.facebook.com >> C:\windows\system32\drivers\etc\hosts exit
我已经在我的本地机器上testing了这个batch file,但它的工作原理,只有当我以pipe理员身份运行时,它才会起作用。
是否可以将此batch file部署到我的networking上的所有计算机上,使用组策略以pipe理员身份运行?
我正在使用Windows Server 2012。
是的,您可以通过将在本地系统上下文中运行的组策略来部署batch file。 这样做的一个非常常见的方式是计算机启动脚本。 (而不是用户login脚本。)
此外,这可能是阻止Facebook可以想象的最糟糕的方式。

从http://technet.microsoft.com/en-us/library/cc770556.aspx
启动脚本在本地系统帐户下运行,并且具有与在本地系统帐户下运行相关的全部权限。
本地系统帐户本质上比pipe理员更强大。
您可能想要将其更改为:
0.0.0.0 www.facebook.com
如果使用环回地址,则必须等待超时,除非有本地Web服务器。
我知道这是一个旧的post,但是什么。 我不确定反对者有什么问题。 将令人反感的域指向本地环回地址似乎是阻止访问的完美方式。 它将阻止DNS返回Facebook站点的真实地址,如果用户不是本地pipe理员,即使他们知道主机文件,他们可能不会这样做,他们也没有权限改变它。
我用你的方法看到的问题是,如果你运行的话,你将无限期地一遍又一遍地将同一行添加到主机文件中。
如果你要这样做,你应该有一个脚本来查找文件中的那一行,只有当它不存在时才附加它(如果它没有说明你想要的,可能会编辑它) )。
最后,如果脚本需要networking访问,则作为本地SYSTEM帐户运行将不起作用,除非您授予AD“域计算机”组足够的权限并准备进行一些debugging。