如何以pipe理员身份在本地networking上运行batch file? (Vista的)

我有几个batch file,必须以pipe理员身份运行。 我可以这样做,如果他们在我的机器上,但是当我把他们放在networking上,然后尝试以pipe理员身份运行它们时,命令提示符显示没有输出和结束,显然没有执行任何代码。 当我正常运行networkingbatch file时,我至less得到了一堆错误消息,告诉我访问被拒绝。

任何想法如何解决这个问题?

我通过快捷方式执行这些batch file,并且快捷方式不使用UNCpath。 我也configuration了以pipe理员身份运行的快捷方式。

networking驱动器映射存在于每个用户会话中,所以当您的快捷方式在pipe理员的安全上下文中运行时,不存在驱动器映射。

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

我猜测驱动器映射? 快捷方式不保存自己的凭据,这不在他们的能力范围内。 如果您的networking位于某个域上,那么您可以使快捷键使用runas / noprofile / user:Administrator {Shortcut}每次都会提示您input密码,但会确保以pipe理员身份运行。

另一个select是使用psexec \ {电脑} -s -c {batch file}将batch file复制到远程计算机,并作为系统帐户执行它。 您必须在远程计算机上拥有pipe理员权限才能使用psexec,或者您可以指定执行此操作的用户/密码。

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

Cooper在serverfault回答了我的问题:

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

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

我不完全确定你在问什么。

然而:

runas / user:mymachine \ administrator cmd

通常情况下,你想这样做(如果你不是一个pipe理员)。您可能还需要确保您指定:

runas / user:mydomain \ mydomainadmin cmd

因为本地pipe理员可能对您试图访问的资源没有权限。

我也想到了你的batch file可能不会像\\server\path\filename.txt这样的UNC名称,他们可能只是想要drive:\path\filename.txt 。 您将需要确保他们不假定任何path信息将以一种特定的格式。

您也可以尝试创buildbatch file的快捷方式,然后勾选快捷方式(属性 – 高级)的“以pipe理员身份运行”选项并运行它们,如果可能的话。 它的作品,但我build议使用'runas',而不是…

正如前面的回答和上面的评论中提到的,我已经把这个问题放在serverfault上。 在这里迁移它也简单地创build了一个副本。 如果有人阅读,有删除问题的能力,请删除这个问题。