我似乎无法让psexec
命令在远程 Windows 7 企业工作站上运行。
我正在尝试执行以下命令:
psexec.exe \\172.16.165.157 -u jc -p testing123 -c -f -i cmd.exe
但我一直收到错误:
PsExec v1.94 - Execute processes remotely
Copyright (C) 2001-2008 Mark Russinovich
Sysinternals - www.sysinternals.com
Error copying C:\WINDOWS\system32\cmd.exe to remote system:
Access is denied.
我正在尝试从运行 Windows XP Professional 的机器上执行该命令。
答案1
我使用-d
参数作为解决方法。但这意味着我无法从远程启动的进程中获取返回代码。
这是一种解决方法,但并不理想。
答案2
如果您尝试执行某些操作以在远程系统上生成 UAC 提示,则需要使用以下命令:
-h 如果目标系统是 Vista 或更高版本,则进程 如果可用,请使用帐户的提升令牌运行。
将 cmd.exe 从 WinXP 计算机的 system32 目录复制到 Win7 计算机的 system32 目录是一个非常糟糕的示例。请小心。如此不尊重系统文件是不明智的,尤其是在跨操作系统版本或体系结构的情况下。
当您使用 psexec 时,请指定不在远程系统上的 c:\windows\ 层次结构中的完整路径。
答案3
假设机器“172.16.165.157”上有一个用户账户“jc”,密码为“testing123”,并且该账户在那里具有“管理员”权限?
如果答案是“否”,那么这就是你的问题。
您也不想将“CMD.EXE”复制到远程计算机。它已经在那里了。您不需要在 PSEXEC 命令行上使用“-c”标志。
答案4
我想到三件事......
- 确保在目标上激活 admin$ 共享
- 即使您在 psexec 的参数中传递了管理员用户,您仍然需要以管理员身份在源上运行 psexec 命令本身。
- 在最近的 psexec 上有一个 -h 开关可以解决 Vista 及以上版本机器上的问题,尽管我还没有测试过它。