我遇到了问题,互联网似乎没有解决方案,所以也许有人可以提供帮助。
我正在尝试使用PsExec在远程计算机上启动命令行提示符,但我不断收到“访问被拒绝”错误。我的本地和远程计算机都运行Windows 7企业版(本地:x64,远程x86),我正在使用PsExec 1.98。我使用以下命令:
psexec \\remote -u domain\user -p password -i -d cmd.exe
我还尝试过其他命令(例如使用-s,-h等),它似乎没什么区别。我可以从本地访问远程机器的admin $共享。事件查看器告诉我远程计算机上发生了登录(和注销)。
此外,PsExec在Windows目录中创建PSEXESVC.EXE,但不会删除它! 有趣的是,相同的命令在Win-7-Professional(x64)上运行得很好,并且它在反向时也可以正常工作(即从远程机器执行以在本地启动cmd时)。在远程计算机上停用防病毒和防火墙并没有什么区别。我无法在本地停用它,但我怀疑错误是由那里引起的。
有没有人有任何想法?
答案 0 :(得分:9)
有点晚了,我知道,但我一直试图解决这个问题。事实证明它与安全级别/用户访问级别有关。
我试图在本地PC上从命令提示符运行psexec,并通过右键单击并选择“以管理员身份运行”启动命令提示符。然后我运行目标远程服务器的psexec命令并为-u参数指定域管理员帐户。
但是,我的本地帐户只对本地计算机具有管理权限,而不是远程计算机,选择“以管理员身份运行”并不意味着“以域管理员身份运行”! (显然,呃!)。
所以,实际上,正在发生的事情是它试图将我的主命令作为远程域管理员运行,但psexec部分作为我的(非管理员)域用户帐户运行 - 这不是在服务器上拥有适当的权限。
解决方案:使用runas命令,而不是像上面那样启动命令提示符。
例如:开始 - >运行 - > runas / user:domain \ administrator cmd
然后运行你的psexec命令,你将不需要-u标志
或者,在正常的命令提示符下,您可以这样做:
runas / user:domain \ administrator“psexec \\ remote cmd”
答案 1 :(得分:3)
所以底线是你应该使用你发送呼叫的机器本地的管理员帐户启动对远程服务器的psexec调用。
最好还是在你的psexec字符串之前插入它,现在用双引号
runas / user:“”
这样psexec会运行,但使用本地管理员帐户,无需使用本地管理员帐户登录
答案 2 :(得分:3)
对我有用的唯一方法是设置网络凭据:
cmdkey /list:%DOMAIN% | find "%DOMAIN_USER%" >NUL || cmdkey /add:%DOMAIN% /user:%DOMAIN%\%DOMAIN_USER% /pass:%DOMAIN_USER_PWD% >>%LOGFILE% 2>>&1
使用本地共享和其他权限无法实现Runas。
答案 3 :(得分:2)
我知道这已经很晚了,但是因为这是我在Google上的第一次搜索,我将会回复。
通过大量研究,我发现你需要在系统名称之前输入用户名和密码,而不是:
psexec \\ remote -u domain \ user -p password -i -d cmd.exe
这样做:
psexec -u domain \ user -p password -i -d \\ remote cmd.exe
答案 4 :(得分:1)
我想从服务器共享(我正在处理的PC,我以域管理员身份登录)远程安装一个程序" RemotePC"。
PsExec使用" local"在RemotePC上工作程序(本地到#34; RemotePC"),如cmd.exe:
PsExec.exe \\ RemotePC cmd.exe
最初,我的完整命令看起来像这样:
PsExec.exe \\ RemotePC" \\ server \ sharename \ program to program \ setup.exe" / s / v" / qn IP_SERVER = 192.168.1.10 PORT = 112 INSTALLDIR = \"%ProgramFiles(x86)%\ path \ \" "
但是服务器共享的设置没有启动。 错误讯息:
PsExec无法在RemotePC上启动\\ server \ sharename \ path到program \ setup.exe
访问被拒绝
我尝试了我在此处以及其他网站上提供的大部分解决方案,例如添加PsExec -u administrator -p password
和使用cmd.exe /c
,但它没有效果。
最后我发现了一个工作命令(/s
在commandline
附近有额外的引号做了诀窍):
PsExec.exe \\ RemotePC -u administrator -p AdminPassword cmd.exe / s / c"命令行"
完整的工作命令如下所示:
PsExec.exe \\ RemotePC -u administrator -p AdminPassword cmd.exe / s / c" " \\ server \ sharename \ program to program \ setup.exe" / s / v" / qn IP_SERVER = 192.168.1.10 PORT = 112 INSTALLDIR = \"%ProgramFiles(x86)%\ path \ \" " "