Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 7 如何在用户登录时以管理员身份在网络中的所有计算机上运行批处理文件?_Windows 7_Batch File_Windows Xp - Fatal编程技术网

Windows 7 如何在用户登录时以管理员身份在网络中的所有计算机上运行批处理文件?

Windows 7 如何在用户登录时以管理员身份在网络中的所有计算机上运行批处理文件?,windows-7,batch-file,windows-xp,Windows 7,Batch File,Windows Xp,我没有安装组策略来部署防火墙规则,因此在此期间,我希望能够运行批处理文件来更新我的防火墙,以允许Spiceworks在我的机器上执行扫描而不会出错。我有批处理文件来更改入站规则,但我不能在每台计算机上单独运行它们,这不太省时。那么,我怎样才能让这个批处理文件以管理员身份通过网络运行,而不让用户看到管理员密码呢?我在一些机器上运行XP,在其他机器上运行7 我已尽力编辑此问题,因为我是编程新手我知道没有一种方法可以在登录脚本中执行您想要的操作,但您可以使用以下命令从工作站一次完成所有操作: psex

我没有安装组策略来部署防火墙规则,因此在此期间,我希望能够运行批处理文件来更新我的防火墙,以允许Spiceworks在我的机器上执行扫描而不会出错。我有批处理文件来更改入站规则,但我不能在每台计算机上单独运行它们,这不太省时。那么,我怎样才能让这个批处理文件以管理员身份通过网络运行,而不让用户看到管理员密码呢?我在一些机器上运行XP,在其他机器上运行7


我已尽力编辑此问题,因为我是编程新手

我知道没有一种方法可以在登录脚本中执行您想要的操作,但您可以使用以下命令从工作站一次完成所有操作:

psexec -c -f -s -h /accepteula \\* "c:\path\to\your\batfile.bat" 
这将使用系统帐户对域中的所有计算机运行它,并在运行之前将批处理文件复制到每台计算机。如果像我一样,您有一个很大的域,并且您只想针对特定的OU运行它,那么下面是我为此编写的脚本

@echo off
setlocal enabledelayedexpansion

:: User Defined Variables
set FilterOU=TRUE
set OU=Environmental
if %FilterOU%==TRUE (
set qComp=wmic /NAMESPACE:\\root\directory\ldap PATH ds_computer Where "ds_distinguishedname like '%%%OU%%%'" get ds_name
) ELSE (
set qComp=wmic /NAMESPACE:\\root\directory\ldap PATH ds_computer get ds_name
) 

Echo.
Echo Getting list of computers.
Echo.
for /f "skip=1" %%c in ('%qComp%') do ( 
  For /f %%d in ("%%c") do (
    ping -n 1 %%d | find "TTL=">nul && set r="up"||set r="down"
    if /i !r!=="up" (
       psexec -c -f -s -h /accepteula \\%%d "C:\scripts\yourbatchfile.bat" 
    )  
  )
)
exit /b