如何以管理员身份在本地网络上运行批处理文件?(Vista)

如何以管理员身份在本地网络上运行批处理文件?(Vista)

我有几个批处理文件必须以管理员身份运行。如果它们在我的计算机上,我可以这样做,但是当我将它们放在网络上,然后尝试以管理员身份运行它们时,命令提示符只是不显示任何输出并完成,显然没有执行任何代码。当我正常运行网络批处理文件时,我至少会收到一堆错误消息,告诉我访问被拒绝。

有什么想法可以解决此问题吗?

我通过快捷方式执行这些批处理文件,快捷方式不使用 UNC 路径。我还将快捷方式配置为以管理员身份运行。

答案1

每个用户会话都存在网络驱动器映射,因此当您的快捷方式在管理员的安全上下文中运行时,不存在驱动器映射。

尝试通过 UNC 调用快捷方式中的批处理脚本,而不是引用驱动器号。

答案2

我猜驱动器被映射了?快捷方式本身不保存凭据,这不属于它们的功能。如果您的网络位于域中,那么您可以使快捷方式使用 runas /noprofile /user:Administrator {Shortcut} 每次都会提示您输入密码,但会确保它以管理员身份运行。

另一个选项是使用 psexec \{computer} -s -c {batch file},它将把批处理文件复制到远程计算机,并以系统帐户身份执行它。您必须在远程计算机上拥有管理权限才能使用 psexec,或者您可以指定拥有该权限的用户/密码。

更多信息:runas:http://technet.microsoft.com/en-us/library/bb490994.aspx psexec:http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx

答案3

serverfault 上的 Cooper 回答了我的问题:

网络驱动器映射是按会话保存的,因此当您的快捷方式在管理员的安全上下文中运行时,不存在驱动器映射(除非管理员有当前会话,通过另一个运行方式,或通过当前远程桌面会话)。

尝试通过 UNC 调用快捷方式中的批处理脚本,而不是引用驱动器号。

答案4

您还可以尝试创建批处理文件的快捷方式,然后勾选快捷方式的“以管理员身份运行”选项(属性-高级),然后运行它们(如果可能的话)。这有效,但我建议改用“runas”...

相关内容