Batch file 使用批处理完全连接到远程桌面

Batch file 使用批处理完全连接到远程桌面,batch-file,remote-desktop,Batch File,Remote Desktop,我想做一个简单的程序来帮助连接到远程桌面,这是我现在得到的: @echo off echo Connect Program echo Enter IP of computer: set /p ip= echo Enter Username set /p user= echo Enter Pass set /p pass= 现在,我只需要填充变量%ip%,%user%,%pass%的代码。 有什么简单的方法可以做到这一点吗?远程桌面连接(mstsc.exe)不允许您从命令行提供凭

我想做一个简单的程序来帮助连接到远程桌面,这是我现在得到的:

 @echo off
 echo Connect Program
 echo Enter IP of computer:
 set /p ip=
 echo Enter Username
 set /p user=
 echo Enter Pass
 set /p pass=
现在,我只需要填充变量%ip%,%user%,%pass%的代码。 有什么简单的方法可以做到这一点吗?

远程桌面连接(mstsc.exe)不允许您从命令行提供凭据。从命令提示符运行
mstsc/?
,显示可用的开关:

MSTSC[/v:][/admin][/f[ullscreen][/w:/h:][/public][/span][/multimon][/edit“connection file”][/restrictedAdmin][/prompt][/shadow:[/control][/noconsentpromt]]

“连接文件”--指定连接的.RDP文件的名称

/v:--指定要连接到的远程计算机

/admin--将您连接到用于管理服务器的会话

/f——以全屏模式启动远程桌面

/w:--指定远程桌面窗口的宽度

/h:--指定远程桌面窗口的高度

/公共--以公共模式运行远程桌面

/span—将远程桌面的宽度和高度与本地虚拟桌面匹配,如有必要,跨多个监视器。要跨越监视器,监视器必须排列成矩形

/multimon--将远程桌面服务会话监视器布局配置为与当前客户端配置相同

/编辑--打开指定的.RDP连接文件进行编辑

/restrictedAdmin--以受限管理模式将您连接到远程PC或服务器。在此模式下,凭据将不会发送到远程PC或服务器,如果您连接到已被破坏的PC,则远程PC或服务器可以保护您。但是,从远程PC建立的连接可能无法通过其他PC和服务器的身份验证,这可能会影响应用程序的功能和兼容性。他/管理员

/prompt--在连接到远程PC或服务器时提示您输入凭据

/shadow:--指定要查看的会话ID

/控制——允许控制会话

/noConsentPrompt--允许在未经用户同意的情况下进行阴影处理

这表明启动时请求用户凭据的唯一方法是将它们预先存储在.RDP文件中,或者在运行时使用
/prompt
远程桌面连接(mstsc.exe)提示用户不允许从命令行提供凭据。从命令提示符运行
mstsc/?
,显示可用的开关:

MSTSC[/v:][/admin][/f[ullscreen][/w:/h:][/public][/span][/multimon][/edit“connection file”][/restrictedAdmin][/prompt][/shadow:[/control][/noconsentpromt]]

“连接文件”--指定连接的.RDP文件的名称

/v:--指定要连接到的远程计算机

/admin--将您连接到用于管理服务器的会话

/f——以全屏模式启动远程桌面

/w:--指定远程桌面窗口的宽度

/h:--指定远程桌面窗口的高度

/公共--以公共模式运行远程桌面

/span—将远程桌面的宽度和高度与本地虚拟桌面匹配,如有必要,跨多个监视器。要跨越监视器,监视器必须排列成矩形

/multimon--将远程桌面服务会话监视器布局配置为与当前客户端配置相同

/编辑--打开指定的.RDP连接文件进行编辑

/restrictedAdmin--以受限管理模式将您连接到远程PC或服务器。在此模式下,凭据将不会发送到远程PC或服务器,如果您连接到已被破坏的PC,则远程PC或服务器可以保护您。但是,从远程PC建立的连接可能无法通过其他PC和服务器的身份验证,这可能会影响应用程序的功能和兼容性。他/管理员

/prompt--在连接到远程PC或服务器时提示您输入凭据

/shadow:--指定要查看的会话ID

/控制——允许控制会话

/noConsentPrompt--允许在未经用户同意的情况下进行阴影处理


这表明在启动时请求用户凭据的唯一方法是提前将它们存储在.RDP文件中,或者在运行时使用
/prompt

提示用户。以下是我的推导。首先,创建登录凭据的条目。其次,建立RDP连接。第三,删除包含凭据的条目。到目前为止,我一直在Win7和Win10上使用这个

我从密码管理器调用这个脚本,密码管理器将参数传递给脚本

用法示例:

rdp.bat "my.host.name.de" "port" "username" "password"
rdp.bat

:: RDP connection without password prompt ------------
:: %1 = hostname
:: %2 = port
:: %3 = username
:: %4 = password
:: ---------------------------------------------------
cmdkey /add:"%~1" /user:"%~3" /pass:"%~4"
start /wait mstsc /v:"%~1:%~2"
cmdkey /delete:"%~1"
注意: 如果在RDP会话结束之前关闭了后台运行的脚本,则包含登录凭据的条目将不会被删除。只有当你知道自己在做什么时才使用这种方法请勿在公共计算机上使用此选项,因为您的登录信息可能会被公开


以下是我从中得出的结论。首先,创建登录凭据的条目。其次,建立RDP连接。第三,删除包含凭据的条目。到目前为止,我一直在Win7和Win10上使用这个

我从密码管理器调用这个脚本,密码管理器将参数传递给脚本

用法示例:

rdp.bat "my.host.name.de" "port" "username" "password"
rdp.bat

:: RDP connection without password prompt ------------
:: %1 = hostname
:: %2 = port
:: %3 = username
:: %4 = password
:: ---------------------------------------------------
cmdkey /add:"%~1" /user:"%~3" /pass:"%~4"
start /wait mstsc /v:"%~1:%~2"
cmdkey /delete:"%~1"
注意: 如果在RDP ses之前关闭了后台运行的脚本