我是一名企业管理员(高级网络工程师),但我的团队不管理 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
我知道这一切都太奇怪了,不可能是真的。
- 我刚刚使用我的域管理员帐户正常登录到终端服务器。
- 我双击了脚本
- 它运行得非常完美。
这并不能回答我昨天遇到的麻烦和我所看到的问题,但是,我已经完成了我的主要目标,即正常双击脚本并使其按预期执行并获得预期的结果。
从昨天到今天我没有做任何改变。
我猜是“只是其中之一……”