问题标签 [mstsc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1737 浏览

c# - 在未能使用网络级身份验证向远程桌面服务器提供正确凭据后防止登录尝试失败窗口

我正在使用“Microsoft 终端服务控件类型库”来建立与远程桌面服务器的连接。我正在寻找一种方法来阻止或抑制在连接到使用网络级身份验证 (NLA) 的远程桌面服务器时未能提供正确的用户名/密码组合时显示的“Windows 安全”提示。窗口看起来像这样:

在此处输入图像描述

我已经阅读并尝试了目前可以在网上找到的所有设置组合,但没有一个成功。以下是我在 stackoverlow 上发现的几个问题,它们讨论了这个确切的问题,据说可以解决,但答案对我不起作用:

AxMsRdpClient9 关闭登录对话框

AxMsRdpClient6NotSafeForScripting AllowPromptingForCredentials

这听起来可能很荒谬,但我的最终目标只是尝试连接到 rdp 服务器并故意输入无效的用户名/密码,然后在失败时断开连接。我不关心实际连接或显示任何东西。如果这很重要,我这样做是为了在远程服务器上的事件日志中触发失败的登录尝试,稍后另一个应用程序将使用该登录尝试。

下面的代码已经在事件日志中触发了一次失败的登录尝试,但我只是找不到阻止这个失败的登录框在客户端计算机上弹出的方法,我宁愿不求助于尝试关闭窗口之后的黑客攻击是打开。当远程桌面服务器配置为允许来自运行任何版本的远程桌面的计算机的连接(不太安全的选项)时,我没有同样的问题,因为弹出提示显然是 NLA 提供的额外安全性的一部分。

我已经为此控件尝试了许多不同的设置组合,以至于我的头都在旋转。这是一个示例,它以上述其他 stackoverflow 问题之一为模型:

据说它是应该阻止此弹出窗口的行,但如果将该值设置为或ocx.PromptForCredentials = False似乎没有什么不同。我几乎会通过可能实际工作的属性名称来假设,但同样,我设置该值并没有什么不同。我总是得到相同的弹出窗口。TrueFalseocx.PromptForCredsOnClient

在这一点上,我不知道自己做错了什么,但我的直觉告诉我,要使其正常工作,我需要将基础AxMsRdpClient6NotSafeForScripting对象实例化为其他类似的东西AxMsRdpClient9NotSafeForScripting,甚至AxMsTscAxNotSafeForScripting是当我将控件拖放到表单上时控件使用的默认类型. 但是,我已经尝试了一堆这些设置组合,并希望有人能对这种情况有所了解。

我还应该提到,我对使用 .Net 连接到远程桌面服务器的替代方法持开放态度,这些方法不涉及使用(Microsoft Terminal Services Control Type Library如果有的话)。如果它们确实存在,我没有太多运气找到它们,但如果我在搜索中遗漏了任何内容,请告诉我。

编辑:为确保您自己的服务器设置与我的相同或相似,只需满足两个要求:

  1. 远程桌面必须在 Vista 或更高版本的 Windows 上运行
  2. 远程桌面必须设置为使用 NLA。在 Win7 中,确切的选项文本是:“仅允许来自运行具有网络级身份验证的远程桌面的计算机的连接(更安全)”

那时我不在乎您在代码中更改了哪些选项,只要服务器在您尝试连接时记录失败的登录并且凭据框(或任何其他弹出窗口)永远不会出现在客户端。

似乎添加此代码所需的正确引用的最简单方法是将 COM 选项卡中的“Microsoft 终端服务控件”添加到您的工具箱,然后将“Microsoft RDP 客户端控件”拖放到表单上。更多信息在这里:http ://s.codeproject.com/Articles/43705/Remote-Desktop-using-C-NET

以下是 C# 中的相同代码,以防使这个问题更受欢迎:

0 投票
1 回答
991 浏览

windows - Windows 远程连接循环 MSTSC

我构建了一个程序,它将通过 Windows 连接到远程计算机列表。我遇到的唯一问题是,在它连接到远程桌面后,Windows 命令提示符处于“冻结状态”,直到我与远程断开连接。此时它将代码循环回您可以选择另一台机器的位置。

我希望它能够在不必断开连接的情况下循环回来,这样我就可以连接到多台机器。

这是我的代码:

它不会单步执行 cls clear 命令并返回到我的机器列表 ( goto :machinelist),直到我关闭我连接的服务器。

我尝试使用“&”来加入这两个命令,但没有奏效。

IEmstsc /v:"SERVERNAME" & goto :machinelist

如何在 mstsc 之后无需断开连接即可进入 cls 和 goto :machinelist?

0 投票
1 回答
308 浏览

windows - 从 HTA 运行时,bWaitOnReturn 对 mstsc.exe 没有影响

在 VBScript 中,该WScript.Shell.Run方法具有三个参数,其中第三个参数是一个布尔值,用于指定程序是否应该等待新生成的进程完成后再继续。

我无法让这种行为正常工作mstsc.exe(Windows 中的远程桌面连接程序)。

如果我将以下文件另存为test.vbs并使用 执行它cscript test.vbs,它会按预期工作。

但是,如果我尝试从 HTA 文件执行相同的代码,它就不能正常工作——相反,运行后的消息框会mstsc.exe立即出现,而不是等待。

知道为什么会发生这种情况以及如何解决吗?

编辑:我已经在 Windows 10 和 7 上对此进行了测试。

0 投票
1 回答
767 浏览

c# - 是什么导致来自 AxMSTSCLib 的 AxMsRdpClient9 中的 MsRdpClient_OnDisconnected 事件“发生内部错误”?

我有一个简单的 Windows 窗体应用程序,其中有一个 ActiveX 控件。那是 Microsoft RDP 客户端控件 - 版本 10。这是表单的构造函数

我从中得到的唯一一件事是订阅 MsRdpClient_OnDisconnected 事件时断开参数的“发生内部错误”:

我尝试订阅控件中的大多数事件,但我得到的唯一另一件事是 MsRdpClient_OnAuthenticationWarningDisplayed 事件调用,但它没有给我任何信息。

PS控件本身只是给出空白视图。当通过 mstsc 连接到 remtoe pc 时,一切都很好,凭据适合。有人对此有任何想法吗?

0 投票
1 回答
1662 浏览

c# - 没有用户名和密码的远程桌面连接

我想使用没有用户名和密码的 mstsc.exe 连接到远程机器。因为我想在没有用户名和密码的情况下连接它,所以它应该以锁定会话状态连接。

所以我想要这样的东西,

  1. 用户将输入 IP 地址并点击连接按钮。
  2. 机器应与锁定状态连接。

我已经尝试过下面的代码,但没有奏效。

用户有什么办法可以使用 C# 做到这一点?

谢谢

-Sanket

0 投票
1 回答
3692 浏览

console - RDP 控制台访问权限 (MSTSC /admin)

如何向不是管理员或域管理员的普通 RDP 用户授予控制台访问权限(通过 MSTSC.EXE /ADMIN)?我们正在使用在 Windows Server 2008 R2 上运行的负载平衡终端服务器场

我已将用户添加到新的 Active Directory 安全组。该组已被授予通过系统属性 > 远程 > 远程桌面用户中的 RDP 登录的访问权限。该组还通过组策略被列为允许通过远程桌面服务登录和允许本地登录,在 GPEDIT > 计算机配置 > 策略 > Windows 设置 > 安全设置 > 本地策略 > 用户权限分配下

尝试登录时,我们收到消息“请求的会话访问被拒绝”

任何想法如何去做?实际上只是想授予 1 个用户直接登录到任一 RDP 服务器的能力,使用 mstsc /admin,绕过负载平衡器。

寻求可能有用的相同能力的人的相关帖子:https ://social.technet.microsoft.com/Forums/windowsserver/en-US/7dcfb01d-734d-4f17-8afa-ca487d6949d6

谢谢大家!

0 投票
0 回答
67 浏览

rdp - 使用 WindowsIdentity 登录到远程桌面

是否有可能基于 WindowIdentity 而不是提供用户名和密码登录到 RemoteDesktop?

0 投票
0 回答
420 浏览

c# - C# WPF MSTSC Active X 控件在运行时不显示

我最近在网上搜索,试图找到有关如何在 WPF 中创建和运行 MSTSC RDP 会话的答案,最后得到了我需要的所有东西,创建了 AxMSTSCLib dll 并将其添加和 MSTSCLib dll 作为项目的参考。但在创建用户控件并添加 Windows 窗体主机后,运行应用程序不会显示 MSTSC Active X 控件。

如果我将 RDP 控件交换为 TextBlock 之类的东西,它会显示出来,所以我知道它与用户控件本身无关。加载用户控件时触发事件并执行以下操作;

但应用程序上实际上并没有出现任何内容。我已经用谷歌搜索并尝试更改代码中的位和鲍勃,但会引发一些错误,但 10 次中有 9 次控制不显示 MSTSC 会话。

更新 1: 我尝试移动 rdp.CreateControl() 行,以防控件被创建到早期,现在我收到错误:“'System.Windows.Forms.AxHost.InvalidActiveXStateException'发生在 AxMSTSCLib.dll”

0 投票
0 回答
132 浏览

c# - AxMsRdpClient9 - 如何确定服务器端 API 支持

某些 AxMsRdpClient9NotSafeForScripting API 只能根据它所连接的服务器的版本进行操作。例如,除非服务器是 2012R2 或更高版本,否则不能使用“UpdateSessionDisplaySettings”。

有没有办法确定服务器的操作系统(或其他技术),以便我们知道可以使用哪些 API?

谢谢,

0 投票
1 回答
879 浏览

sql-server - PSExec 在远程机器的 SQL 服务器中执行 sql 脚本

如何创建批处理文件以连接到远程桌面并启动 Microsoft Sql 服务器并运行一些脚本。我尝试创建一个批处理文件以连接到使用

但我无法通过用户名和密码任何人都可以就此提出建议。

编辑

上面的一个将我连接到远程机器并打印它的 IP 详细信息。

现在我正在尝试执行位于远程机器 D:\ 中的 SQL 脚本,以在远程机器的 Microsoft SQL 服务器(连接)中执行。那可能吗。