我正在使用Microsoft Server 2008计算机.出于某种原因,命令"psexec"在这台1台机器上的PowerShell中无效.
当我尝试运行它时,我得到了这个:
PS C:\> psexec
The term 'psexec' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or
if a path was included, verify that the path is correct and try again.
At line:1 char:7
+ psexec <<<<
+ CategoryInfo : ObjectNotFound: (psexec:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
PS C:\>
Run Code Online (Sandbox Code Playgroud)
它正在运行powershell 2.0.我发现这一点:
PS C:\> $Host.Version
Major Minor Build Revision
----- ----- ----- --------
2 0 …Run Code Online (Sandbox Code Playgroud) 如果我运行一个成功的PSEXEC命令,它会说...
"cmd退出于workstation.domain,错误代码为0."
有什么方法可以防止这种情况并做类似的事情
psexec \\workstation.domain -u username -p password cmd /c "assoc.pdf= "
if %errorlevel%==0 (
echo Success!
) else (
REM display psexec error here.
)
Run Code Online (Sandbox Code Playgroud) 我正在使用PsExec对网络上的计算机进行远程碎片整理。这在我的C#代码中可以很好地工作,但是由于它还完成了许多其他任务,并且希望它连续运行,因此我将其转换为Windows服务。
当代码到达PsExec部分时,它以代码6退出,这似乎意味着“句柄无效”。我尝试输入具有足够特权的用户名和密码但没有成功,我还尝试添加-s来使用系统帐户这也没有帮助。
这是我设定PsExec争论的地方...
psexec.StartInfo.Arguments = @" \\" + machine + "/accepteula -s defrag.exe " + volume + " -f";
Run Code Online (Sandbox Code Playgroud)
我也尝试过...
psexec.StartInfo.Arguments = @" \\" + machine + "/accepteula defrag.exe " + volume + " -f";
psexec.StartInfo.Arguments = @" \\" + machine + "/accepteula defrag.exe " + volume + "-u myuser -p mypass -f";
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激!!但是似乎没有什么可以解决我的问题。
(注意,这个问题也发布在technet上)
如何在Windows中远程编辑文本文件?
我正在运行和管理许多Windows 7工作站和Windows Server 2012计算机.我希望能够在任何这些机器上远程编辑文本文件.我可以通过psexec或powershell远程连接到任何这些机器.我也可以通过rdp连接,但是对于工作站我宁愿不打开用户,除非我绝对不得不这样做.
例如,我们使用Salt管理状态配置.本地配置文件存储在C:\salt\conf.我希望能够动态编辑这些配置文件.
这个问题涉及同一主题,但没有一个答案特别令人满意.
一些可能的解决方案是:
PS C:\Users\Meredith> Invoke-Command -Session $ps -ScriptBlock {get-content c:/inetpub/myapp/web.config} > web.config
Run Code Online (Sandbox Code Playgroud)
编辑网络配置:
PS C:\Users\Meredith> get-content web.config | Invoke-Command -Session $ps -ScriptBlock {set-content c:/inetpub/myapp/web.config}
Run Code Online (Sandbox Code Playgroud)
最后两个选项是我现在使用的工作流程.正则表达式替换非常简单的更改,并复制到本地和编辑那里更复杂的.两者都不理想,但它们都有效.它只是感觉难以置信的老式.
我正在考虑将一个插件写入我选择的编辑器(vim)来执行远程提取和保存,以使我的工作流程更加顺畅.在我尝试之前,我只是想知道是否有任何我错过或误解的内容.
我通过连接到SSH的远程PHP脚本运行以下代码:
cmd /C start "" /MAX /b "C:\Windows\System32\notepad.exe"
Run Code Online (Sandbox Code Playgroud)
该过程确实启动,但它仍然在后台,并且无法在远程桌面上完全打开.有没有办法让它以交互方式工作(比如PSExec如何使用-i标志)?
编辑:
所以PHP连接到SSH ssh2_connect然后ssh2_exec以下列方式使用:
if (!($stream = ssh2_exec($con, $shcom ))) {
Run Code Online (Sandbox Code Playgroud)
$shcom传递给SSH的命令在哪里,例如:
$shcom = 'cmd.exe /C start "" /MAX "%SystemRoot%\System32\calc.exe"';
Run Code Online (Sandbox Code Playgroud)
我之前使用PSExec和PuTTY(请注意不是通过PHP脚本)通过以下方法在远程计算机上手动打开notepad.exe:
cd "C:\Program Files\PSExec\" & psexec \\localhost -i 2 -ds "C:\Windows\System32\notepad.exe"
Run Code Online (Sandbox Code Playgroud)
哪个成功地工作但是这也没有通过PHP正常运行.目前,CMD和PSExec都不能自动在前台启动交互式应用程序.
我在winserver2008桌面上有一个名为a.bat的批处理文件.
该批处理文件仅将SessionID(从环境变量)写入本地事件日志.
我想使用cmd远程执行它(否则会出现SessionName).
所以我试过了
c:\PsTools\psexec.exe \\<Server> -u test2 -p <Password> -i 2 cmd "c:\Users\test-2\Desktop\a"
Run Code Online (Sandbox Code Playgroud)
要么
c:\PsTools\psexec.exe \\<server> -u test2 -p <Password> -i 2 "cmd \"c:\Users\test-2\Desktop\a\"";exit
Run Code Online (Sandbox Code Playgroud)
所有这些只是打开远程机器上的终端但不执行批处理.
任何想法?
最好的祝福,
我试图通过PSExec在远程PC上运行一个批处理文件(在我刚刚写的'notepad'的批处理文件中).下面的psexec命令在我的笔记本电脑中运行,但无法在远程PC上执行任何操作.我甚至没有看到"记事本"在远程机器的进程列表上运行.
c:\Program Files (x86)\PSTools>psexec -u administrator -p force \\135.20.230.160 -s -d cmd.exe /c -c "C:\Amtra\bogus.bat"
PsExec v2.11 - Execute processes remotely
Copyright (C) 2001-2014 Mark Russinovich
Sysinternals - www.sysinternals.com
cmd.exe started on 135.24.237.167 with process ID 1520.
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮助我,我在这里出错了吗?
谢谢,
在本地运行PSEXEC时,我只在我的域中的单个Windows 8.1计算机上出现此问题.在我的域密码过期并更改之前,使用此命令在本地运行PSEXEC.
\\fs\storage\QA\Mason\psexec\PSExec.exe \\support02 /accepteula -u build -p password -e -s \\fs\storage\QA\Mason\psexec\Cambria_RI.bat
Run Code Online (Sandbox Code Playgroud)
现在,它产生了这个错误:
在SUPPORT02上与PsExec服务建立通信时出错:系统找不到指定的文件.
编辑1:似乎本地运行PSEXEC,本地目标(.bat)文件修复此问题.为什么我突然限制只使用本地文件?
EDIT2:执行与上面相同的命令,但使用不同的目标机器也可以.
我的意思是说:
如果我...
跑步runas /netonly /user:computername\username cmd
输入本地管理员帐户“用户名”的密码
然后输入psexec \\computername cmd
我现在有了一个工作 shell,可以在远程计算机上以本地管理员用户身份运行命令。
但是,尝试在没有runas... 的情况下运行此程序,而是使用用户名和密码参数来psexec返回访问被拒绝错误。
下面的例子:
psexec \\computername -u username -p password cmd
Access Denied
注:其他人似乎也有这个问题。我的精致问题:
-u和-p?我还尝试禁用我的计算机和目标计算机上的防火墙,并添加此处列出的注册表项。
psexec ×10
cmd ×3
windows ×3
powershell ×2
sysinternals ×2
batch-file ×1
delphi ×1
openssh ×1
php ×1
scripting ×1
text ×1
winrm ×1