Batch file 批处理文件从哪个服务器执行?

Batch file 批处理文件从哪个服务器执行?,batch-file,scheduled-tasks,remote-server,Batch File,Scheduled Tasks,Remote Server,是否有一种方法可以让批处理文件确定触发它的服务器的IP/名称,即当它在单独的服务器上执行到触发执行的服务器上时 我最初的想法是添加一行netstat-a>>WhoDunnit.txt,这样我就可以在脚本调用后立即看到所有连接,然后仔细查看,希望连接仍然打开;但在这里询问是否有更复杂的解决方案 背景 我们最近发现一个部署脚本在每周凌晨2点运行,没有人知道原因。 脚本的命令意味着它只会影响运行它的服务器,因此它必须在本地执行。 脚本的主机服务器在其计划任务中未定义任何内容/我们在此计算机上看不到任何

是否有一种方法可以让批处理文件确定触发它的服务器的IP/名称,即当它在单独的服务器上执行到触发执行的服务器上时

我最初的想法是添加一行netstat-a>>WhoDunnit.txt,这样我就可以在脚本调用后立即看到所有连接,然后仔细查看,希望连接仍然打开;但在这里询问是否有更复杂的解决方案

背景

我们最近发现一个部署脚本在每周凌晨2点运行,没有人知道原因。 脚本的命令意味着它只会影响运行它的服务器,因此它必须在本地执行。 脚本的主机服务器在其计划任务中未定义任何内容/我们在此计算机上看不到任何触发此脚本的内容。 因此,必须从定义了调度的其他服务器调用脚本,但调用方式应确保脚本在主机服务器上执行,而不是在触发服务器上执行。 如果我能找到调用脚本的服务器,我就能找到时间表并禁用它。
包含以下内容的批处理文件

echo %~dpnx0
一开始

C:\Users\User>"\\127.0.0.1\C$\users\user\cmdline.bat"
返回

C:\Users\User>echo \\127.0.0.1\C$\Users\User\cmdline.bat
\\127.0.0.1\C$\Users\User\cmdline.bat

现在,我将打开进程审核并等待它启动。

您无法更改脚本,因为您无法确定正在执行的脚本是本地脚本还是每次执行时都部署了脚本。最好检查windows事件日志。您能否询问每台服务器上的任务计划程序并搜索脚本名称?如果名称不唯一,那么如果任务不是关键任务,请重命名脚本,在从每个服务器获取任务计划程序列表后,搜索错误。谢谢@MCND。我很有信心这是主机上的脚本,而不是副本,因为我们在同一目录中看到了日志文件。一旦我修改脚本来报告调用的用户,我们就能够确定,因为只有修改后的脚本才能生成新的输出;遗憾的是,我们没有那么复杂的东西,所以写一些东西来查询我们服务器的所有事件日志/任务调度器将是一项非常艰巨的任务。SCHTASKS/query/?将向您展示查询任何机器上的任务的语法,并使用服务器列表进行简单循环,可以在文件中获取列表。