Remote Desktop File Format
2016-03-15 10:04
260 查看
转自:http://engrmosaic.uncc.edu/mosaic-anywhere/remote-desktop-file-format
The new Terminal Services client (version 2600 and newer, 5.1.2600.x) introduces quite a few new capabilities. A major client-side convenience is that connection settings can be saved in an RDP file which can then be easily edited, copied, and distributed.
Unfortunately, the parameters are not nearly as well documented as the ActiveX control parameters yet; this will presumably change before the .NET server release.
You can install it on any true 32-bit Windows OS except Windows XP and .NET - they already come with their own version.
The simplest way to do it initially, though, is to run the mstsc client, configure basic settings you want, then choose "Save As..." on the General tab. You can then open the resulting file in Notepad and work with it.
For example, here are two lines which tell MSTSC to establish a 1024x768 desktop when it connects:
desktopheight:i:768
desktopwidth:i:1024
The first element in each line is the parameter name. Immediately following it, after the first colon, is the parameter type; as far as I can tell, there are only 3 types of values -
i (integer) This is used for numeric values such as the desktop resolutions above. All of the "on-off" values are integers; this may be to allow future expansion of value types, since some - such as audio redirection and keyboard hooking - actually have multiple values.
s (string) Almost everything which is not a pure integer. This includes paths and server names
b (binary) apparently only used for hashed password storage
RDP File Parameters
Below is a table listing all of the parameters I have encountered so far. I list the parameter name, type, an example value, and then include notes on usage where possible.
This is an example RDP connection file. It starts maximized for its desktop size (800x600); color depth is 16-bit; it will attempt to automatically start connecting to 192.168.1.12 on launch; and so on...
screen mode id:i:1
desktopwidth:i:800
desktopheight:i:600
session bpp:i:16
auto connect:i:1
full address:s:192.168.1.12
compression:i:1
keyboardhook:i:2
audiomode:i:2
redirectdrives:i:0
redirectprinters:i:0
redirectcomports:i:0
redirectsmartcards:i:0
displayconnectionbar:i:1
username:s:Administrator
domain:s:AKA
alternate shell:s:
shell working directory:s:
disable wallpaper:i:1
disable full window drag:i:1
disable menu anims:i:1
disable themes:i:1
bitmapcachepersistenable:i:1
The new Terminal Services client (version 2600 and newer, 5.1.2600.x) introduces quite a few new capabilities. A major client-side convenience is that connection settings can be saved in an RDP file which can then be easily edited, copied, and distributed.
Unfortunately, the parameters are not nearly as well documented as the ActiveX control parameters yet; this will presumably change before the .NET server release.
Which Terminal Services/Remote Desktop Client?
The newest ones, versions 5.1.2600.x and up. The client can be downloaded from the Remote Desktop Connection page - and despite the header, it is the client to use for connecting to either Terminal Services or XP Remote Desktop.You can install it on any true 32-bit Windows OS except Windows XP and .NET - they already come with their own version.
Making an RDP File
You can create an RDP connection file using a text editor; there is nothing special about its structure to prevent this; in fact, the Terminal Services people appear to have been assiduous about making it simple and easy to use; the order in which parameters are placed doesn't even matter.The simplest way to do it initially, though, is to run the mstsc client, configure basic settings you want, then choose "Save As..." on the General tab. You can then open the resulting file in Notepad and work with it.
RDP File Structure
The file structure is relatively simple. The standard file consists of several lines; each has parameter name, type, and value, separated by a ":". Any colons after the second one appear to be ignored (necessary so that file paths can be embedded). MSTSC also appears to silently ignore anything it cannot parse, so you can insert freeform comments into the file.For example, here are two lines which tell MSTSC to establish a 1024x768 desktop when it connects:
desktopheight:i:768
desktopwidth:i:1024
The first element in each line is the parameter name. Immediately following it, after the first colon, is the parameter type; as far as I can tell, there are only 3 types of values -
i (integer) This is used for numeric values such as the desktop resolutions above. All of the "on-off" values are integers; this may be to allow future expansion of value types, since some - such as audio redirection and keyboard hooking - actually have multiple values.
s (string) Almost everything which is not a pure integer. This includes paths and server names
b (binary) apparently only used for hashed password storage
RDP File Parameters
Below is a table listing all of the parameters I have encountered so far. I list the parameter name, type, an example value, and then include notes on usage where possible.
PARAMETER | VALUE | NOTES | |
---|---|---|---|
alternate shell | s | c:\winnt\system32\notepad.exe | Sets the shell to be used within the Terminal Services session. This can be used to set an alternate shell such as progman.exe; you can also use it to set the application which the user runs on logon to the Terminal Server. |
audiomode | i | 2 | Known values: 0 - Bring to this computer 1 - Leave at remote computer 2 - Do not play |
auto connect | i | 0 | 0 or 1 |
autoreconnection enabled | i | 1 | Set to 1 to connect automatically when file is opened. |
bitmapcachepersistenable | i | 1 | ? 1 maintains bitmap cache between sessions |
compression | i | 1 | ? 1 means use extra compressions |
connect to console | i | 1 | 0 - connect to a virtual session 1 - connect to the console session |
desktopheight | i | 768 | height of session desktop in pixels |
desktopwidth | i | width of session desktop in pixels | |
disable cursor setting | i | 0 | ? |
disable full window drag | i | 1 | set to 1, disables display of window contents while dragging in session |
disable menu anims | i | 1 | set to 1, disables menu animations in session |
disable themes | i | 1 | set to 1, disables use of themes in session |
disable wallpaper | i | 1 | set to 1, disables display of wallpaper in session |
displayconnectionbar | i | 1 | Set to 1, displays the connection bar in a fullscreen session |
domain | s | HQ | domain name to use for logon |
full address | s | 192.168.1.1:33389 | IP address/name of server (and optional alternate port) |
keyboardhook | i | 2 | For applying standard Windows key combinations 0 - On the local computer 1 - On the remote computer 2 - In fullscreen mode only |
maximizeshell | i | 0 | set to 1, maximizes any alternate shell used in the session |
password 51 | b | (big long binary hash) | Ifyou choose to save the connection password, this will be a large binary hash value |
port | i | 3389 | |
redirectcomports | i | 1 | set to 1, redirects client COM ports in session (XP/.NET only) |
redirectdrives | i | 1 | set to 1, redirects client drives in session (XP/.NET only) |
redirectprinters | i | 1 | set to 1, redirects client printers in session |
redirectsmartcards | i | 1 | set to 1, redirects client smart cards in session (XP/.NET only) |
screen mode id | i | 1 | FullScreen vs. normal 0 - ? 1 - windowed 2 - fullscreen |
server port | i | 3389 | You can specify the port separately from the "full address" parameter. Thanks to James from acmewidgets.com for finding this out! |
session bpp | i | 16 | bit depth for session - 8, 16, or 24. Only 8 is valid for Windows 2000 Terminal Servers |
shell working directory | s | c:\program files\microsoft office | Working directory if an alternate shell was specified. |
smart sizing | i | Scale the client window display of desktop when resizing 0 or not present - Do not scale 1 - Scale (Takes extra resources to scale) | |
username | s | administrator | name of user logging on |
winposstr | s | 0,1,0,249,808,876 | ? Not sure about the details on this one. There are always 6 comma-separated values. I would guess that these are presets for position and "window mode" sizes - maximized versus sized. |
Example RDP File
This is an example RDP connection file. It starts maximized for its desktop size (800x600); color depth is 16-bit; it will attempt to automatically start connecting to 192.168.1.12 on launch; and so on...screen mode id:i:1
desktopwidth:i:800
desktopheight:i:600
session bpp:i:16
auto connect:i:1
full address:s:192.168.1.12
compression:i:1
keyboardhook:i:2
audiomode:i:2
redirectdrives:i:0
redirectprinters:i:0
redirectcomports:i:0
redirectsmartcards:i:0
displayconnectionbar:i:1
username:s:Administrator
domain:s:AKA
alternate shell:s:
shell working directory:s:
disable wallpaper:i:1
disable full window drag:i:1
disable menu anims:i:1
disable themes:i:1
bitmapcachepersistenable:i:1
相关文章推荐
- Linux内存管理之页面回收
- Linux下pager-taglib分页中文搜索乱码
- linux运维工程师
- error while loading shared libraries xx.so处理方法
- eclipse luna + tomcatPluginV331 + tomcat8 插件配置
- Nginx 访问日志轮询切割
- Centos手动编写service命令脚本(运行原理)
- HBase应用场景、原理与基本架构
- linux下命令重启
- linux pid名字空间
- Linux安装与基础配置
- linux命令(chown、find)
- linux配置java环境变量
- nginx 优化
- linux系统内SAMBA共享问题
- tomcat部署失败问题
- 从零开始的Android新项目1 - 架构搭建篇
- 使用 Nginx 构建一个“高”可用的 PHP 集群
- 如何使用PowerShell管理Windows服务
- centos7 设置开机启动服务