如何以特定用户身份自动运行批处理文件(不是计划任务,不是重复)

如何以特定用户身份自动运行批处理文件(不是计划任务,不是重复)

我是一名企业管理员(高级网络工程师),但我的团队不管理 Active Directory,因此我对策略以及要完成我想要实现的目标需要做什么有点不熟悉,甚至当遇到我的困境时,AD 管理员也会让我失望。

我有一个命令,我正试图把它转换成一个脚本,但它却给我带来了一些非常奇怪的行为,我需要帮助来解决它。

首先要说的是:

  • 从我的本地工作站,我可以通过按住 Shift 键并单击以我的域管理员用户身份运行来打开命令窗口,并且该命令可以正常工作。
  • 从我的本地工作站,如果我将此命令放入脚本中,然后按住 Shift 键并单击以作为我的域管理员用户运行该脚本,则该脚本/命令可以正常工作(只要我授予我的域管理员帐户权限)。
  • 在我想要运行此脚本的目标机器上,我已确认另一个域管理员可以成功执行该命令。
  • 如果我使用域管理员帐户登录时在此目标计算机上启动命令提示符,则该命令失败(并且作为脚本失败)。

在你建议一些我已经尝试过或者不会给我带来好处的事情之前:

  • runas不是一个选项,因为这个脚本不应该是交互式的并且提示输入密码。
  • 由于密码/安全/审计策略,该/savecred参数不是一个选项。run as

我已经实现了基本的功能,但是很混乱:

基本命令如下:

\\server\share\unlock.exe . username

我可以成功执行此命令而无需按 Shift 键或进行任何runas无意义的操作的唯一方法是输入此命令C:\Users\Username\Desktop\unlock.bat,然后从我的本地计算机创建一个包含以下内容的单独批处理文件:

psexec \\targetmachine -u domainadmin -p domainpassword "C:\Users\Username\Desktop\unlock.bat"

问题和可能的理论:

  • 如果我在目标计算机上双击该批处理文件,它不应该以我登录的域管理员帐户的用户名运行吗?
  • 是否有可能由于我的域管理员是目标机器上的管理员,所以当我运行此命令时,它会尝试以本地管理员身份运行?
  • 每次我在这台机器上打开命令提示符时,它都会自动显示管理员提示符。我可能需要一个未提升权限的提示符吗?如果是,当它自动启动管理员提示符时,我该如何获取一个?

其他详情

  • 这是一个运行 Windows 2008 R2 的终端服务器,有几个不同的用户访问它,所以我不想修改 cmd.exe 每次启动的方式或任何行为。
  • 我意识到如果我将其作为计划任务运行,我可以指定一个用户,但是现在,我只想从该服务器将其作为独立脚本或命令运行,而无需按住 Shift 键单击。

我的主要目标是能够登录到该服务器并简单地双击批处理文件(并且能够从命令提示符执行),同时以我的域管理员帐户登录,应该能够执行此操作。

答案1

我知道这一切都太奇怪了,不可能是真的。

  • 我刚刚使用我的域管理员帐户正常登录到终端服务器。
  • 我双击了脚本
  • 它运行得非常完美。

这并不能回答我昨天遇到的麻烦和我所看到的问题,但是,我已经完成了我的主要目标,即正常双击脚本并使其按预期执行并获得预期的结果。

从昨天到今天我没有做任何改变。

我猜是“只是其中之一……”

相关内容