.bat
脚本将会话发送到控制台。如果我在虚拟机上手动运行包含以下内容的
.bat
文件,我就可以让它工作:
%windir%\System32\tscon.exe 0 /dest:console
但是,当使用 psexec 或 paexec 调用相同的
.bat
时:
c:\>psexec.exe \\virtualmachine -u domain\username -p password -h cmd /c
c:\user\atest\desktop\test.bat
我的访问被拒绝:
无法将 sessionID 0 连接到会话名称控制台,错误代码 5 错误 [5]:访问被拒绝。 C:\windows\system32 scon.exe 退出于 错误代码为 1 的虚拟机。或者,我尝试过(相同的结果):
C:\>PsExec.exe \\virtualmachine -u domain\username -p password -h
C:\windows\system32\tscon.exe 0 /dest:console
我不确定我哪里出错了,因为这开始
iexplore.exe
很好:
C:\>PsExec.exe \\virtualmachine -u domain\username -p password -h "c:\program files\internet explorer\iexplore.exe"
我进行了大量搜索,发现没有任何东西可以多次使用(如果它确实有效的话)。然后我偶然发现了这个,当我运行这个 power shell 命令时,我的问题就解决了。到目前为止,它工作得很好,而且更好,但您不必知道会话 ID 或名称,也不必在文本或批处理文件中传递密码。
@powershell -NoProfile -ExecutionPolicy unrestricted -Command "$sessionid=((quser $env:USERNAME | select -Skip 1) -split '\s+')[2]; tscon $sessionid /dest:console" 2> 解锁错误。日志
只需将脚本复制到文本文件中,将其重命名为 some.cmd,然后在主机桌面上创建它的快捷方式,然后转到属性并选择高级并以管理员身份运行。简单的。适用于win7专业版。我在这里找到了脚本
https://steamcommunity.com/groups/homestream/discussions/0/617335934139051123/?ctp=5解决方案:我做了很多工作,终于知道问题出在密码上。即密码长度不应大于13个字符。但在本例中密码 = 20 个字符。
后来我将密码更改为****(12个字符),问题就解决了。
远程到站:
psexec \\station cmd
tasklist | findstr -i logonui
如果存在
logonui.exe
,则已锁定。
解锁:tscon <id> /dest:console /password:<password>
id
必须是正确的会话 ID。
要找到它,您可以使用tasklist
并查找会话名称为“RDP”的进程(特别是
RDP-TCP#1
)。您还可以使用 qwinsta
,它将列出会话及其 ID。再次寻找“RDP”。
password
必须是用户的密码。如果您不知道,则无法解锁。
如果成功,则运行tasklist | findstr -i logonui
应该没有结果(同时仍通过
psexec
连接)。使用 exit
退出
psexec
并确认您仍处于连接状态。