我能否使用组策略部署batch file以pipe理员身份运行?

我创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。