FreeRDP
client/common/cmdline.h
1 
20 #ifndef CLIENT_COMMON_CMDLINE_H
21 #define CLIENT_COMMON_CMDLINE_H
22 
23 #include <freerdp/config.h>
24 
25 #include <winpr/cmdline.h>
26 
27 static const COMMAND_LINE_ARGUMENT_A global_cmd_args[] = {
28  { "a", COMMAND_LINE_VALUE_REQUIRED, "<addin>[,<options>]", NULL, NULL, -1, "addin", "Addin" },
29  { "azure", COMMAND_LINE_VALUE_REQUIRED, "[tenantid:<id>],[use-tenantid[:[on|off]],[ad:<url>]",
30  NULL, NULL, -1, NULL, "AzureAD options" },
31  { "action-script", COMMAND_LINE_VALUE_REQUIRED, "<file-name>", "~/.config/freerdp/action.sh",
32  NULL, -1, NULL, "Action script" },
33  { "admin", COMMAND_LINE_VALUE_FLAG, NULL, NULL, NULL, -1, "console",
34  "Admin (or console) session" },
35  { "aero", COMMAND_LINE_VALUE_BOOL, NULL, NULL, BoolValueFalse, -1, NULL,
36  "desktop composition" },
37  { "app", COMMAND_LINE_VALUE_REQUIRED,
38  "program:[<path>|<||alias>],cmd:<command>,file:<filename>,guid:<guid>,icon:<filename>,name:<"
39  "name>,workdir:<directory>,hidef:[on|off]",
40  NULL, NULL, -1, NULL, "Remote application program" },
41 #if defined(WITH_FREERDP_DEPRECATED_COMMANDLINE)
42  { "app-cmd", COMMAND_LINE_VALUE_REQUIRED, "<parameters>", NULL, NULL, -1, NULL,
43  "[DEPRECATED, use /app:cmd:<command>] Remote application command-line parameters" },
44  { "app-file", COMMAND_LINE_VALUE_REQUIRED, "<file-name>", NULL, NULL, -1, NULL,
45  "[DEPRECATED, use /app:file:<filename>] File to open with remote application" },
46  { "app-guid", COMMAND_LINE_VALUE_REQUIRED, "<app-guid>", NULL, NULL, -1, NULL,
47  "[DEPRECATED, use /app:guid:<guid>] Remote application GUID" },
48  { "app-icon", COMMAND_LINE_VALUE_REQUIRED, "<icon-path>", NULL, NULL, -1, NULL,
49  "[DEPRECATED, use /app:icon:<filename>] Remote application icon for user interface" },
50  { "app-name", COMMAND_LINE_VALUE_REQUIRED, "<app-name>", NULL, NULL, -1, NULL,
51  "[DEPRECATED, use /app:name:<name>] Remote application name for user interface" },
52  { "app-workdir", COMMAND_LINE_VALUE_REQUIRED, "<workspace path>", NULL, NULL, -1, NULL,
53  "[DEPRECATED, use /app:workdir:<directory>] Remote application workspace path" },
54 #endif
55  { "assistance", COMMAND_LINE_VALUE_REQUIRED, "<password>", NULL, NULL, -1, NULL,
56  "Remote assistance password" },
57  { "auto-request-control", COMMAND_LINE_VALUE_FLAG, "", NULL, NULL, -1, NULL,
58  "Automatically request remote assistance input control" },
59  { "async-channels", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueFalse, NULL, -1, NULL,
60  "Asynchronous channels (experimental)" },
61  { "async-update", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueFalse, NULL, -1, NULL,
62  "Asynchronous update" },
63  { "audio-mode", COMMAND_LINE_VALUE_REQUIRED, "<mode>", NULL, NULL, -1, NULL,
64  "Audio output mode" },
65  { "auth-only", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueFalse, NULL, -1, NULL,
66  "Authenticate only" },
67  { "auth-pkg-list", COMMAND_LINE_VALUE_REQUIRED, "<!ntlm,kerberos>", NULL, NULL, -1, NULL,
68  "Authentication package filter (comma-separated list, use '!' to exclude)" },
69  { "authentication", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueTrue, NULL, -1, NULL,
70  "Authentication (experimental)" },
71  { "auto-reconnect", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueFalse, NULL, -1, NULL,
72  "Automatic reconnection" },
73  { "auto-reconnect-max-retries", COMMAND_LINE_VALUE_REQUIRED, "<retries>", NULL, NULL, -1, NULL,
74  "Automatic reconnection maximum retries, 0 for unlimited [0,1000]" },
75 #if defined(WITH_FREERDP_DEPRECATED_COMMANDLINE)
76  { "bitmap-cache", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueFalse, NULL, -1, NULL,
77  "[DEPRECATED, use /cache:bitmap[:on|off]] bitmap cache" },
78  { "persist-cache", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueFalse, NULL, -1, NULL,
79  "[DEPRECATED, use /cache:persist[:on|off]] persistent bitmap cache" },
80  { "persist-cache-file", COMMAND_LINE_VALUE_REQUIRED, "<filename>", NULL, NULL, -1, NULL,
81  "[DEPRECATED, use /cache:persist-file:<filename>] persistent bitmap cache file" },
82 #endif
83  { "bpp", COMMAND_LINE_VALUE_REQUIRED, "<depth>", "16", NULL, -1, NULL,
84  "Session bpp (color depth)" },
85  { "buildconfig", COMMAND_LINE_VALUE_FLAG | COMMAND_LINE_PRINT_BUILDCONFIG, NULL, NULL, NULL, -1,
86  NULL, "Print the build configuration" },
87  { "cache", COMMAND_LINE_VALUE_REQUIRED,
88  "[bitmap[:on|off],codec[:rfx|nsc],glyph[:on|off],offscreen[:on|off],persist,persist-file:<"
89  "filename>]",
90  NULL, NULL, -1, NULL, "" },
91  { "cert", COMMAND_LINE_VALUE_REQUIRED,
92  "[deny,ignore,name:<name>,tofu,fingerprint:<hash>:<hash as hex>[,fingerprint:<hash>:<another "
93  "hash>]]",
94  NULL, NULL, -1, NULL,
95  "Certificate accept options. Use with care!\n"
96  " * deny ... Automatically abort connection if the certificate does not match, no "
97  "user interaction.\n"
98  " * ignore ... Ignore the certificate checks altogether (overrules all other options)\n"
99  " * name ... Use the alternate <name> instead of the certificate subject to match "
100  "locally stored certificates\n"
101  " * tofu ... Accept certificate unconditionally on first connect and deny on "
102  "subsequent connections if the certificate does not match\n"
103  " * fingerprints ... A list of certificate hashes that are accepted unconditionally for a "
104  "connection" },
105 #if defined(WITH_FREERDP_DEPRECATED_COMMANDLINE)
106  { "cert-deny", COMMAND_LINE_VALUE_FLAG, NULL, NULL, NULL, -1, NULL,
107  "[DEPRECATED, use /cert:deny] Automatically abort connection for any certificate that can "
108  "not be validated." },
109  { "cert-ignore", COMMAND_LINE_VALUE_FLAG, NULL, NULL, NULL, -1, NULL,
110  "[DEPRECATED, use /cert:ignore] Ignore certificate" },
111  { "cert-name", COMMAND_LINE_VALUE_REQUIRED, "<name>", NULL, NULL, -1, NULL,
112  "[DEPRECATED, use /cert:name:<name>] Certificate name" },
113  { "cert-tofu", COMMAND_LINE_VALUE_FLAG, NULL, NULL, NULL, -1, NULL,
114  "[DEPRECATED, use /cert:tofu] Automatically accept certificate on first connect" },
115 #endif
116 #ifdef _WIN32
117  { "connect-child-session", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueFalse, NULL, -1, "",
118  "connect to child session (win32)" },
119 #endif
120  { "client-build-number", COMMAND_LINE_VALUE_REQUIRED, "<number>", NULL, NULL, -1, NULL,
121  "Client Build Number sent to server (influences smartcard behaviour, see [MS-RDPESC])" },
122  { "client-hostname", COMMAND_LINE_VALUE_REQUIRED, "<name>", NULL, NULL, -1, NULL,
123  "Client Hostname to send to server" },
124  { "clipboard", COMMAND_LINE_VALUE_BOOL | COMMAND_LINE_VALUE_OPTIONAL,
125  "[[use-selection:<atom>],[direction-to:[all|local|remote|off]],[files-to[:all|local|remote|"
126  "off]]]",
127  BoolValueTrue, NULL, -1, NULL,
128  "Redirect clipboard:\n"
129  " * use-selection:<atom> ... (X11) Specify which X selection to access. Default is "
130  "CLIPBOARD. PRIMARY is the X-style middle-click selection.\n"
131  " * direction-to:[all|local|remote|off] control enabled clipboard direction\n"
132  " * files-to:[all|local|remote|off] control enabled file clipboard direction" },
133 #if defined(WITH_FREERDP_DEPRECATED_COMMANDLINE)
134  { "codec-cache", COMMAND_LINE_VALUE_REQUIRED, "[rfx|nsc|jpeg]", NULL, NULL, -1, NULL,
135  "[DEPRECATED, use /cache:codec:[rfx|nsc|jpeg]] Bitmap codec cache" },
136 #endif
137  { "compression", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueTrue, NULL, -1, "z", "compression" },
138  { "compression-level", COMMAND_LINE_VALUE_REQUIRED, "<level>", NULL, NULL, -1, NULL,
139  "Compression level (0,1,2)" },
140  { "credentials-delegation", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueFalse, NULL, -1, NULL,
141  "credentials delegation" },
142  { "d", COMMAND_LINE_VALUE_REQUIRED, "<domain>", NULL, NULL, -1, NULL, "Domain" },
143  { "decorations", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueTrue, NULL, -1, NULL,
144  "Window decorations" },
145  { "disp", COMMAND_LINE_VALUE_FLAG, NULL, NULL, NULL, -1, NULL, "Display control" },
146  { "drive", COMMAND_LINE_VALUE_REQUIRED, "<name>,<path>", NULL, NULL, -1, NULL,
147  "Redirect directory <path> as named share <name>. Hotplug support is enabled with "
148  "/drive:hotplug,*. This argument provides the same function as \"Drives that I plug in "
149  "later\" option in MSTSC." },
150  { "drives", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueFalse, NULL, -1, NULL,
151  "Redirect all mount points as shares" },
152  { "dump", COMMAND_LINE_VALUE_REQUIRED, "<record|replay>,file:<file>[,nodelay]", NULL, NULL, -1,
153  NULL, "record or replay dump" },
154  { "dvc", COMMAND_LINE_VALUE_REQUIRED, "<channel>[,<options>]", NULL, NULL, -1, NULL,
155  "Dynamic virtual channel" },
156  { "dynamic-resolution", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueFalse, NULL, -1, NULL,
157  "Send resolution updates when the window is resized" },
158  { "echo", COMMAND_LINE_VALUE_FLAG, NULL, NULL, NULL, -1, "echo", "Echo channel" },
159  { "encryption", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueTrue, NULL, -1, NULL,
160  "Encryption (experimental)" },
161  { "encryption-methods", COMMAND_LINE_VALUE_REQUIRED, "[40,][56,][128,][FIPS]", NULL, NULL, -1,
162  NULL, "RDP standard security encryption methods" },
163  { "f", COMMAND_LINE_VALUE_FLAG, NULL, NULL, NULL, -1, NULL,
164  "Fullscreen mode (<Ctrl>+<Alt>+<Enter> toggles fullscreen)" },
165  { "fipsmode", COMMAND_LINE_VALUE_BOOL, NULL, NULL, NULL, -1, NULL, "FIPS mode" },
166  { "floatbar", COMMAND_LINE_VALUE_OPTIONAL,
167  "sticky:[on|off],default:[visible|hidden],show:[always|fullscreen|window]", NULL, NULL, -1,
168  NULL,
169  "floatbar is disabled by default (when enabled defaults to sticky in fullscreen mode)" },
170  { "fonts", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueTrue, NULL, -1, NULL,
171  "smooth fonts (ClearType)" },
172  { "force-console-callbacks", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueFalse, NULL, -1, NULL,
173  "Use default callbacks (console) for certificate/credential/..." },
174  { "frame-ack", COMMAND_LINE_VALUE_REQUIRED, "<number>", NULL, NULL, -1, NULL,
175  "Number of frame acknowledgement" },
176  { "args-from", COMMAND_LINE_VALUE_REQUIRED, "<file>|stdin|fd:<number>|env:<name>", NULL, NULL,
177  -1, NULL,
178  "Read command line from a file, stdin or file descriptor. This argument can not be combined "
179  "with any other. "
180  "Provide one argument per line." },
181  { "from-stdin", COMMAND_LINE_VALUE_OPTIONAL, "force", NULL, NULL, -1, NULL,
182  "Read credentials from stdin. With <force> the prompt is done before connection, otherwise "
183  "on server request." },
184  { "gateway", COMMAND_LINE_VALUE_REQUIRED,
185  "g:<gateway>[:<port>],u:<user>,d:<domain>,p:<password>,usage-method:["
186  "direct|detect],access-token:<"
187  "token>,type:[rpc|http[,no-websockets][,extauth-sspi-ntlm]|auto[,no-websockets][,extauth-"
188  "sspi-ntlm]]|arm,url:<wss://url>,bearer:<oauth2-bearer-token>",
189  NULL, NULL, -1, "gw", "Gateway Hostname" },
190 #if defined(WITH_FREERDP_DEPRECATED_COMMANDLINE)
191  { "g", COMMAND_LINE_VALUE_REQUIRED, "<gateway>[:<port>]", NULL, NULL, -1, NULL,
192  "[DEPRECATED, use /gateway:g:<url>] Gateway Hostname" },
193  { "gateway-usage-method", COMMAND_LINE_VALUE_REQUIRED, "[direct|detect]", NULL, NULL, -1, "gum",
194  "[DEPRECATED, use /gateway:usage-method:<method>] Gateway usage method" },
195  { "gd", COMMAND_LINE_VALUE_REQUIRED, "<domain>", NULL, NULL, -1, NULL,
196  "[DEPRECATED, use /gateway:d:<domain>] Gateway domain" },
197 #endif
198  { "gdi", COMMAND_LINE_VALUE_REQUIRED, "sw|hw", NULL, NULL, -1, NULL, "GDI rendering" },
199  { "geometry", COMMAND_LINE_VALUE_FLAG, NULL, NULL, NULL, -1, NULL,
200  "Geometry tracking channel" },
201  { "gestures", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueFalse, NULL, -1, NULL,
202  "Consume multitouch input locally" },
203 #ifdef WITH_GFX_H264
204  { "gfx", COMMAND_LINE_VALUE_OPTIONAL,
205  "[[progressive[:on|off]|RFX[:on|off]|AVC420[:on|off]AVC444[:on|off]],mask:<value>,small-"
206  "cache[:on|off],thin-client[:on|off],progressive[:on|"
207  "off],frame-ack[:on|off]]",
208  NULL, NULL, -1, NULL, "RDP8 graphics pipeline" },
209 #if defined(WITH_FREERDP_DEPRECATED_COMMANDLINE)
210  { "gfx-h264", COMMAND_LINE_VALUE_OPTIONAL, "[[AVC420|AVC444],mask:<value>]", NULL, NULL, -1,
211  NULL, "[DEPRECATED, use /gfx:avc420] RDP8.1 graphics pipeline using H264 codec" },
212 #endif
213 #else
214  { "gfx", COMMAND_LINE_VALUE_OPTIONAL,
215  "[progressive[:on|off]|RFX[:on|off]|AVC420[:on|off]AVC444[:on|off]],mask:<value>,small-cache["
216  ":on|off],thin-client[:on|off],progressive[:on|off]]",
217  NULL, NULL, -1, NULL, "RDP8 graphics pipeline" },
218 #endif
219 #if defined(WITH_FREERDP_DEPRECATED_COMMANDLINE)
220  { "gfx-progressive", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueFalse, NULL, -1, NULL,
221  "[DEPRECATED, use /gfx:progressive] RDP8 graphics pipeline using progressive codec" },
222  { "gfx-small-cache", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueTrue, NULL, -1, NULL,
223  "[DEPRECATED, use /gfx:small-cache] RDP8 graphics pipeline using small cache mode" },
224  { "gfx-thin-client", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueFalse, NULL, -1, NULL,
225  "[DEPRECATED, use /gfx:thin-client] RDP8 graphics pipeline using thin client mode" },
226  { "glyph-cache", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueFalse, NULL, -1, NULL,
227  "[DEPRECATED, use /cache:glyph[:on|off]] Glyph cache (experimental)" },
228 #endif
229 #if defined(WITH_FREERDP_DEPRECATED_COMMANDLINE)
230  { "gp", COMMAND_LINE_VALUE_REQUIRED, "<password>", NULL, NULL, -1, NULL,
231  "[DEPRECATED, use /gateway:p:<password>] Gateway password" },
232 #endif
233  { "grab-keyboard", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueTrue, NULL, -1, NULL,
234  "Grab keyboard focus, forward all keys to remote" },
235  { "grab-mouse", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueTrue, NULL, -1, NULL,
236  "Grab mouse focus, forward all events to remote" },
237 #if defined(WITH_FREERDP_DEPRECATED_COMMANDLINE)
238  { "gt", COMMAND_LINE_VALUE_REQUIRED,
239  "[rpc|http[,no-websockets][,extauth-sspi-ntlm]|auto[,no-websockets][,extauth-sspi-ntlm]]",
240  NULL, NULL, -1, NULL, "[DEPRECATED, use /gateway:type:<type>] Gateway transport type" },
241  { "gu", COMMAND_LINE_VALUE_REQUIRED, "[[<domain>\\]<user>|<user>[@<domain>]]", NULL, NULL, -1,
242  NULL, "[DEPRECATED, use /gateway:u:<user>] Gateway username" },
243  { "gat", COMMAND_LINE_VALUE_REQUIRED, "<access token>", NULL, NULL, -1, NULL,
244  "[DEPRECATED, use /gateway:access-token:<token>] Gateway Access Token" },
245 #endif
246  { "h", COMMAND_LINE_VALUE_REQUIRED, "<height>", "768", NULL, -1, NULL, "Height" },
247  { "heartbeat", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueTrue, NULL, -1, NULL,
248  "Support heartbeat PDUs" },
249  { "help", COMMAND_LINE_VALUE_FLAG | COMMAND_LINE_PRINT_HELP, NULL, NULL, NULL, -1, "?",
250  "Print help" },
251  { "home-drive", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueFalse, NULL, -1, NULL,
252  "Redirect user home as share" },
253  { "ipv4", COMMAND_LINE_VALUE_OPTIONAL, "[:force]", NULL, NULL, -1, "4",
254  "Prefer IPv4 A record over IPv6 AAAA record" },
255  { "ipv6", COMMAND_LINE_VALUE_OPTIONAL, "[:force]", NULL, NULL, -1, "6",
256  "Prefer IPv6 AAAA record over IPv4 A record" },
257 #if defined(WITH_JPEG)
258  { "jpeg", COMMAND_LINE_VALUE_FLAG, NULL, NULL, NULL, -1, NULL, "JPEG codec support" },
259  { "jpeg-quality", COMMAND_LINE_VALUE_REQUIRED, "<percentage>", NULL, NULL, -1, NULL,
260  "JPEG quality" },
261 #endif
262  { "kbd", COMMAND_LINE_VALUE_REQUIRED,
263  "[layout:[0x<id>|<name>],lang:<0x<id>>,fn-key:<value>,type:<value>,subtype:<value>,unicode[:"
264  "on|off],remap:<key1>=<value1>,remap:<key2>=<value2>,pipe:<filename>]",
265  NULL, NULL, -1, NULL,
266  "Keyboard related options:\n"
267  " * layout: set the keybouard layout announced to the server\n"
268  " * lang: set the keyboard language identifier sent to the server\n"
269  " * fn-key: Function key value\n"
270  " * pipe: Name of a named pipe that can be used to type text into the RDP session\n" },
271 #if defined(WITH_FREERDP_DEPRECATED_COMMANDLINE)
272  { "kbd-lang", COMMAND_LINE_VALUE_REQUIRED, "0x<id>", NULL, NULL, -1, NULL,
273  "[DEPRECATED, use / kbd:lang:<value>] Keyboard active language identifier" },
274  { "kbd-fn-key", COMMAND_LINE_VALUE_REQUIRED, "<value>", NULL, NULL, -1, NULL,
275  "[DEPRECATED, use /kbd:fn-key:<value>] Function key value" },
276  { "kbd-list", COMMAND_LINE_VALUE_FLAG | COMMAND_LINE_PRINT, NULL, NULL, NULL, -1, NULL,
277  "[DEPRECATED, use /list:kbd] List keyboard layouts" },
278  { "kbd-scancode-list", COMMAND_LINE_VALUE_FLAG | COMMAND_LINE_PRINT, NULL, NULL, NULL, -1, NULL,
279  "[DEPRECATED, use list:kbd-scancode] List keyboard RDP scancodes" },
280  { "kbd-lang-list", COMMAND_LINE_VALUE_OPTIONAL | COMMAND_LINE_PRINT, NULL, NULL, NULL, -1, NULL,
281  "[DEPRECATED, use /list:kbd-lang] List keyboard languages" },
282  { "kbd-remap", COMMAND_LINE_VALUE_REQUIRED,
283  "[DEPRECATED, use /kbd:remap] List of <key>=<value>,... pairs to remap scancodes", NULL, NULL,
284  -1, NULL, "Keyboard scancode remapping" },
285  { "kbd-subtype", COMMAND_LINE_VALUE_REQUIRED, "<id>", NULL, NULL, -1, NULL,
286  "[DEPRECATED, use /kbd:subtype]Keyboard subtype" },
287  { "kbd-type", COMMAND_LINE_VALUE_REQUIRED, "<id>", NULL, NULL, -1, NULL,
288  "[DEPRECATED, use /kbd:type] Keyboard type" },
289  { "kbd-unicode", COMMAND_LINE_VALUE_FLAG, "", NULL, NULL, -1, NULL,
290  "[DEPRECATED, use /kbd:unicode[:on|off]] Send unicode symbols, e.g. use the local "
291  "keyboard map. ATTENTION: Does not work with every "
292  "RDP server!" },
293 #endif
294  { "kerberos", COMMAND_LINE_VALUE_REQUIRED,
295  "[kdc-url:<url>,lifetime:<time>,start-time:<time>,renewable-lifetime:<time>,cache:<path>,"
296  "armor:<path>,pkinit-anchors:<path>,pkcs11-module:<name>]",
297  NULL, NULL, -1, NULL, "Kerberos options" },
298  { "load-balance-info", COMMAND_LINE_VALUE_REQUIRED, "<info-string>", NULL, NULL, -1, NULL,
299  "Load balance info" },
300  { "list", COMMAND_LINE_VALUE_REQUIRED | COMMAND_LINE_PRINT,
301  "[kbd|kbd-scancode|kbd-lang[:<value>]|smartcard[:[pkinit-anchors:<path>][,pkcs11-module:<"
302  "name>]]|"
303  "monitor|tune|timezones]",
304  "List available options for subcommand", NULL, -1, NULL,
305  "List available options for subcommand" },
306  { "log-filters", COMMAND_LINE_VALUE_REQUIRED, "<tag>:<level>[,<tag>:<level>[,...]]", NULL, NULL,
307  -1, NULL, "Set logger filters, see wLog(7) for details" },
308  { "log-level", COMMAND_LINE_VALUE_REQUIRED, "[OFF|FATAL|ERROR|WARN|INFO|DEBUG|TRACE]", NULL,
309  NULL, -1, NULL, "Set the default log level, see wLog(7) for details" },
310  { "max-fast-path-size", COMMAND_LINE_VALUE_REQUIRED, "<size>", NULL, NULL, -1, NULL,
311  "Specify maximum fast-path update size" },
312  { "max-loop-time", COMMAND_LINE_VALUE_REQUIRED, "<time>", NULL, NULL, -1, NULL,
313  "Specify maximum time in milliseconds spend treating packets" },
314  { "menu-anims", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueFalse, NULL, -1, NULL,
315  "menu animations" },
316  { "microphone", COMMAND_LINE_VALUE_OPTIONAL,
317  "[sys:<sys>,][dev:<dev>,][format:<format>,][rate:<rate>,][channel:<channel>]", NULL, NULL, -1,
318  "mic", "Audio input (microphone)" },
319 #if defined(WITH_FREERDP_DEPRECATED_COMMANDLINE)
320  { "smartcard-list", COMMAND_LINE_VALUE_FLAG | COMMAND_LINE_PRINT, NULL, NULL, NULL, -1, NULL,
321  "[DEPRECATED, use /list:smartcard] List smartcard information" },
322  { "monitor-list", COMMAND_LINE_VALUE_FLAG | COMMAND_LINE_PRINT, NULL, NULL, NULL, -1, NULL,
323  "[DEPRECATED, use /list:monitor] List detected monitors" },
324 #endif
325  { "monitors", COMMAND_LINE_VALUE_REQUIRED, "<id>[,<id>[,...]]", NULL, NULL, -1, NULL,
326  "Select monitors to use (only effective in fullscreen or multimonitor mode)" },
327  { "mouse-motion", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueTrue, NULL, -1, NULL,
328  "Send mouse motion" },
329  { "mouse-relative", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueFalse, NULL, -1, NULL,
330  "Send mouse motion with relative addressing" },
331  { "mouse", COMMAND_LINE_VALUE_REQUIRED, "[relative:[on|off],grab:[on|off]]", NULL, NULL, -1,
332  NULL,
333  "Mouse related options:\n"
334  " * relative: send relative mouse movements if supported by server\n"
335  " * grab: grab the mouse if within the window" },
336 #if defined(CHANNEL_TSMF_CLIENT)
337  { "multimedia", COMMAND_LINE_VALUE_OPTIONAL, "[sys:<sys>,][dev:<dev>,][decoder:<decoder>]",
338  NULL, NULL, -1, "mmr", "[DEPRECATED], use /video] Redirect multimedia (video)" },
339 #endif
340  { "multimon", COMMAND_LINE_VALUE_OPTIONAL, "force", NULL, NULL, -1, NULL,
341  "Use multiple monitors" },
342  { "multitouch", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueFalse, NULL, -1, NULL,
343  "Redirect multitouch input" },
344  { "multitransport", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueTrue, NULL, -1, NULL,
345  "Support multitransport protocol" },
346  { "nego", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueTrue, NULL, -1, NULL,
347  "protocol security negotiation" },
348  { "network", COMMAND_LINE_VALUE_REQUIRED,
349  "[invalid|modem|broadband|broadband-low|broadband-high|wan|lan|auto]", NULL, NULL, -1, NULL,
350  "Network connection type" },
351  { "nsc", COMMAND_LINE_VALUE_FLAG, NULL, NULL, NULL, -1, "nscodec", "NSCodec support" },
352 #if defined(WITH_FREERDP_DEPRECATED_COMMANDLINE)
353  { "offscreen-cache", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueFalse, NULL, -1, NULL,
354  "[DEPRECATED, use /cache:offscreen[:on|off]] offscreen bitmap cache" },
355 #endif
356  { "orientation", COMMAND_LINE_VALUE_REQUIRED, "[0|90|180|270]", NULL, NULL, -1, NULL,
357  "Orientation of display in degrees" },
358  { "old-license", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueFalse, NULL, -1, NULL,
359  "Use the old license workflow (no CAL and hwId set to 0)" },
360  { "p", COMMAND_LINE_VALUE_REQUIRED, "<password>", NULL, NULL, -1, NULL, "Password" },
361 #if defined(CHANNEL_PARALLEL_CLIENT)
362  { "parallel", COMMAND_LINE_VALUE_OPTIONAL, "<name>[,<path>]", NULL, NULL, -1, NULL,
363  "Redirect parallel device" },
364 #endif
365  { "parent-window", COMMAND_LINE_VALUE_REQUIRED, "<window-id>", NULL, NULL, -1, NULL,
366  "Parent window id" },
367  { "pcb", COMMAND_LINE_VALUE_REQUIRED, "<blob>", NULL, NULL, -1, NULL, "Preconnection Blob" },
368  { "pcid", COMMAND_LINE_VALUE_REQUIRED, "<id>", NULL, NULL, -1, NULL, "Preconnection Id" },
369  { "pheight", COMMAND_LINE_VALUE_REQUIRED, "<height>", NULL, NULL, -1, NULL,
370  "Physical height of display (in millimeters)" },
371  { "play-rfx", COMMAND_LINE_VALUE_REQUIRED, "<pcap-file>", NULL, NULL, -1, NULL,
372  "Replay rfx pcap file" },
373  { "port", COMMAND_LINE_VALUE_REQUIRED, "<number>", NULL, NULL, -1, NULL, "Server port" },
374  { "suppress-output", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueTrue, NULL, -1, NULL,
375  "suppress output when minimized" },
376  { "print-reconnect-cookie", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueFalse, NULL, -1, NULL,
377  "Print base64 reconnect cookie after connecting" },
378  { "printer", COMMAND_LINE_VALUE_OPTIONAL, "<name>[,<driver>[,default]]", NULL, NULL, -1, NULL,
379  "Redirect printer device" },
380  { "proxy", COMMAND_LINE_VALUE_REQUIRED, "[<proto>://][<user>:<password>@]<host>[:<port>]", NULL,
381  NULL, -1, NULL,
382  "Proxy settings: override env. var (see also environment variable below). Protocol "
383  "\"socks5\" should be given explicitly where \"http\" is default." },
384  { "pth", COMMAND_LINE_VALUE_REQUIRED, "<password-hash>", NULL, NULL, -1, "pass-the-hash",
385  "Pass the hash (restricted admin mode)" },
386  { "pwidth", COMMAND_LINE_VALUE_REQUIRED, "<width>", NULL, NULL, -1, NULL,
387  "Physical width of display (in millimeters)" },
388  { "rdp2tcp", COMMAND_LINE_VALUE_REQUIRED, "<executable path[:arg...]>", NULL, NULL, -1, NULL,
389  "TCP redirection" },
390  { "reconnect-cookie", COMMAND_LINE_VALUE_REQUIRED, "<base64-cookie>", NULL, NULL, -1, NULL,
391  "Pass base64 reconnect cookie to the connection" },
392  { "redirect-prefer", COMMAND_LINE_VALUE_REQUIRED, "<FQDN|IP|NETBIOS>,[...]", NULL, NULL, -1,
393  NULL, "Override the preferred redirection order" },
394  { "relax-order-checks", COMMAND_LINE_VALUE_FLAG, NULL, NULL, NULL, -1, "relax-order-checks",
395  "Do not check if a RDP order was announced during capability exchange, only use when "
396  "connecting to a buggy server" },
397  { "restricted-admin", COMMAND_LINE_VALUE_FLAG, NULL, NULL, NULL, -1, "restrictedAdmin",
398  "Restricted admin mode" },
399  { "remoteGuard", COMMAND_LINE_VALUE_FLAG, NULL, NULL, NULL, -1, "remoteGuard",
400  "Remote guard credentials" },
401  { "rfx", COMMAND_LINE_VALUE_FLAG, NULL, NULL, NULL, -1, NULL, "RemoteFX" },
402  { "rfx-mode", COMMAND_LINE_VALUE_REQUIRED, "[image|video]", NULL, NULL, -1, NULL,
403  "RemoteFX mode" },
404  { "scale", COMMAND_LINE_VALUE_REQUIRED, "[100|140|180]", "100", NULL, -1, NULL,
405  "Scaling factor of the display" },
406  { "scale-desktop", COMMAND_LINE_VALUE_REQUIRED, "<percentage>", "100", NULL, -1, NULL,
407  "Scaling factor for desktop applications (value between 100 and 500)" },
408  { "scale-device", COMMAND_LINE_VALUE_REQUIRED, "100|140|180", "100", NULL, -1, NULL,
409  "Scaling factor for app store applications" },
410  { "sec", COMMAND_LINE_VALUE_REQUIRED,
411  "[rdp[:[on|off]]|tls[:[on|off]]|nla[:[on|off]]|ext[:[on|off]]|aad[:[on|off]]]", NULL, NULL,
412  -1, NULL,
413  "Force specific protocol security. e.g. /sec:nla enables NLA and disables all others, while "
414  "/sec:nla:[on|off] just toggles NLA" },
415 #if defined(WITH_FREERDP_DEPRECATED_COMMANDLINE)
416  { "sec-ext", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueFalse, NULL, -1, NULL,
417  "[DEPRECATED, use /sec:ext] NLA extended protocol security" },
418  { "sec-nla", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueTrue, NULL, -1, NULL,
419  "[DEPRECATED, use /sec:nla] NLA protocol security" },
420  { "sec-rdp", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueTrue, NULL, -1, NULL,
421  "[DEPRECATED, use /sec:rdp] RDP protocol security" },
422  { "sec-tls", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueTrue, NULL, -1, NULL,
423  "[DEPRECATED, use /sec:tls] TLS protocol security" },
424 #endif
425 #if defined(CHANNEL_SERIAL_CLIENT)
426  { "serial", COMMAND_LINE_VALUE_OPTIONAL, "<name>[,<path>[,<driver>[,permissive]]]", NULL, NULL,
427  -1, "tty", "Redirect serial device" },
428 #endif
429  { "server-name", COMMAND_LINE_VALUE_REQUIRED, "<name>", NULL, NULL, -1, NULL,
430  "User-specified server name to use for validation (TLS, Kerberos)" },
431  { "shell", COMMAND_LINE_VALUE_REQUIRED, "<shell>", NULL, NULL, -1, NULL, "Alternate shell" },
432  { "shell-dir", COMMAND_LINE_VALUE_REQUIRED, "<dir>", NULL, NULL, -1, NULL,
433  "Shell working directory" },
434  { "size", COMMAND_LINE_VALUE_REQUIRED, "<width>x<height> or <percent>%[wh]", "1024x768", NULL,
435  -1, NULL, "Screen size" },
436  { "smart-sizing", COMMAND_LINE_VALUE_OPTIONAL, "<width>x<height>", NULL, NULL, -1, NULL,
437  "Scale remote desktop to window size" },
438  { "smartcard", COMMAND_LINE_VALUE_OPTIONAL, "<str>[,<str>...]", NULL, NULL, -1, NULL,
439  "Redirect the smartcard devices containing any of the <str> in their names." },
440  { "smartcard-logon", COMMAND_LINE_VALUE_OPTIONAL,
441  "[cert:<path>,key:<key>,pin:<pin>,csp:<csp name>,reader:<reader>,card:<card>]", NULL, NULL,
442  -1, NULL, "Activates Smartcard (optional certificate) Logon authentication." },
443  { "sound", COMMAND_LINE_VALUE_OPTIONAL,
444  "[sys:<sys>,][dev:<dev>,][format:<format>,][rate:<rate>,][channel:<channel>,][latency:<"
445  "latency>,][quality:<quality>]",
446  NULL, NULL, -1, "audio", "Audio output (sound)" },
447  { "span", COMMAND_LINE_VALUE_FLAG, NULL, NULL, NULL, -1, NULL,
448  "Span screen over multiple monitors" },
449  { "spn-class", COMMAND_LINE_VALUE_REQUIRED, "<service-class>", NULL, NULL, -1, NULL,
450  "SPN authentication service class" },
451  { "ssh-agent", COMMAND_LINE_VALUE_FLAG, NULL, NULL, NULL, -1, "ssh-agent",
452  "SSH Agent forwarding channel" },
453  { "sspi-module", COMMAND_LINE_VALUE_REQUIRED, "<SSPI module path>", NULL, NULL, -1, NULL,
454  "SSPI shared library module file path" },
455  { "winscard-module", COMMAND_LINE_VALUE_REQUIRED, "<WinSCard module path>", NULL, NULL, -1,
456  NULL, "WinSCard shared library module file path" },
457  { "disable-output", COMMAND_LINE_VALUE_FLAG, NULL, NULL, NULL, -1, NULL,
458  "Deactivate all graphics decoding in the client session. Useful for load tests with many "
459  "simultaneous connections" },
460  { "t", COMMAND_LINE_VALUE_REQUIRED, "<title>", NULL, NULL, -1, "title", "Window title" },
461  { "themes", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueTrue, NULL, -1, NULL, "themes" },
462  { "timeout", COMMAND_LINE_VALUE_REQUIRED, "<time in ms>", "9000", NULL, -1, "timeout",
463  "Advanced setting for high latency links: Adjust connection timeout, use if you encounter "
464  "timeout failures with your connection" },
465  { "timezone", COMMAND_LINE_VALUE_REQUIRED, "<windows timezone>", NULL, NULL, -1, NULL,
466  "Use supplied windows timezone for connection (requires server support), see /list:timezones "
467  "for allowed values" },
468  { "tls", COMMAND_LINE_VALUE_REQUIRED, "[ciphers|seclevel|secrets-file|enforce]", NULL, NULL, -1,
469  NULL,
470  "TLS configuration options:"
471  " * ciphers:[netmon|ma|<cipher names>]\n"
472  " * seclevel:<level>, default: 1, range: [0-5] Override the default TLS security level, "
473  "might be required for older target servers\n"
474  " * secrets-file:<filename>\n"
475  " * enforce[:[ssl3|1.0|1.1|1.2|1.3]] Force use of SSL/TLS version for a connection. Some "
476  "servers have a buggy TLS "
477  "version negotiation and might fail without this. Defaults to TLS 1.2 if no argument is "
478  "supplied. Use 1.0 for windows 7" },
479 #if defined(WITH_FREERDP_DEPRECATED_COMMANDLINE)
480  { "tls-ciphers", COMMAND_LINE_VALUE_REQUIRED, "[netmon|ma|ciphers]", NULL, NULL, -1, NULL,
481  "[DEPRECATED, use /tls:ciphers] Allowed TLS ciphers" },
482  { "tls-seclevel", COMMAND_LINE_VALUE_REQUIRED, "<level>", "1", NULL, -1, NULL,
483  "[DEPRECATED, use /tls:seclevel] TLS security level - defaults to 1" },
484  { "tls-secrets-file", COMMAND_LINE_VALUE_REQUIRED, "<filename>", NULL, NULL, -1, NULL,
485  "[DEPRECATED, use /tls:secrets:file] File were TLS secrets will be stored in the "
486  "SSLKEYLOGFILE format" },
487  { "enforce-tlsv1_2", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueFalse, NULL, -1, NULL,
488  "[DEPRECATED, use /tls:enforce:1.2] Force use of TLS1.2 for connection. Some "
489  "servers have a buggy TLS version negotiation and "
490  "might fail without this" },
491 #endif
492  { "toggle-fullscreen", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueTrue, NULL, -1, NULL,
493  "Alt+Ctrl+Enter to toggle fullscreen" },
494  { "tune", COMMAND_LINE_VALUE_REQUIRED, "<setting:value>,<setting:value>", "", NULL, -1, NULL,
495  "[experimental] directly manipulate freerdp settings, use with extreme caution!" },
496 #if defined(WITH_FREERDP_DEPRECATED_COMMANDLINE)
497  { "tune-list", COMMAND_LINE_VALUE_FLAG | COMMAND_LINE_PRINT, NULL, NULL, NULL, -1, NULL,
498  "[DEPRECATED, use /list:tune] Print options allowed for /tune" },
499 #endif
500  { "u", COMMAND_LINE_VALUE_REQUIRED, "[[<domain>\\]<user>|<user>[@<domain>]]", NULL, NULL, -1,
501  NULL, "Username" },
502  { "unmap-buttons", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueFalse, NULL, -1, NULL,
503  "Let server see real physical pointer button" },
504 #ifdef CHANNEL_URBDRC_CLIENT
505  { "usb", COMMAND_LINE_VALUE_REQUIRED,
506  "[dbg,][id:<vid>:<pid>#...,][addr:<bus>:<addr>#...,][auto]", NULL, NULL, -1, NULL,
507  "Redirect USB device" },
508 #endif
509  { "v", COMMAND_LINE_VALUE_REQUIRED, "<server>[:port]", NULL, NULL, -1, NULL,
510  "Server hostname" },
511  { "vc", COMMAND_LINE_VALUE_REQUIRED, "<channel>[,<options>]", NULL, NULL, -1, NULL,
512  "Static virtual channel" },
513  { "version", COMMAND_LINE_VALUE_FLAG | COMMAND_LINE_PRINT_VERSION, NULL, NULL, NULL, -1, NULL,
514  "Print version" },
515  { "video", COMMAND_LINE_VALUE_FLAG, NULL, NULL, NULL, -1, NULL,
516  "Video optimized remoting channel" },
517  { "prevent-session-lock", COMMAND_LINE_VALUE_OPTIONAL, "<time in sec>", NULL, NULL, -1, NULL,
518  "Prevent session locking by injecting fake mouse motion events to the server "
519  "when the connection is idle (default interval: 180 seconds)" },
520  { "vmconnect", COMMAND_LINE_VALUE_OPTIONAL, "<vmid>", NULL, NULL, -1, NULL,
521  "Hyper-V console (use port 2179, disable negotiation)" },
522  { "w", COMMAND_LINE_VALUE_REQUIRED, "<width>", "1024", NULL, -1, NULL, "Width" },
523  { "wallpaper", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueTrue, NULL, -1, NULL, "wallpaper" },
524  { "window-drag", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueFalse, NULL, -1, NULL,
525  "full window drag" },
526  { "window-position", COMMAND_LINE_VALUE_REQUIRED, "<xpos>x<ypos>", NULL, NULL, -1, NULL,
527  "window position" },
528  { "wm-class", COMMAND_LINE_VALUE_REQUIRED, "<class-name>", NULL, NULL, -1, NULL,
529  "Set the WM_CLASS hint for the window instance" },
530  { "workarea", COMMAND_LINE_VALUE_FLAG, NULL, NULL, NULL, -1, NULL, "Use available work area" },
531  { NULL, 0, NULL, NULL, NULL, -1, NULL, NULL }
532 };
533 #endif /* CLIENT_COMMON_CMDLINE_H */