public static void CreateRdpFile(RdpCmdletBase cmdlet) { if (!string.IsNullOrEmpty(cmdlet.Template)) { cmdlet.WriteVerbose(cmdlet, "Using the external template"); RdpFileTemplate = cmdlet.Template; } else { cmdlet.WriteVerbose(cmdlet, "Using the default template"); RdpFileTemplate = RDpProtocolFile; } RdpFileTemplate += "full address:s:" + cmdlet.Hostname + "\r\n"; RdpFileTemplate += "username:s:" + cmdlet.Username + "\r\n"; RdpFileTemplate += "domain:s:" + cmdlet.Domain + "\r\n"; RdpFileTemplate += "password 51:b:" + DataProtectionForRDPWrapper.Encrypt(cmdlet.Password) + "\r\n"; if (cmdlet.RemoteAppMode) { RdpFileTemplate = RdpFileTemplate.Replace( "remoteapplicationmode:i:0", "remoteapplicationmode:i:1"); } if (!string.IsNullOrEmpty(cmdlet.RemoteAppProgram)) { RdpFileTemplate = RdpFileTemplate.Replace( "remoteapplicationprogram:s:", "remoteapplicationprogram:s:" + cmdlet.RemoteAppProgram); } if (!string.IsNullOrEmpty(cmdlet.RemoteAppCmdline)) { RdpFileTemplate = RdpFileTemplate.Replace( "remoteapplicationcmdline:s:", "remoteapplicationcmdline:s:" + cmdlet.RemoteAppCmdline); } if (!string.IsNullOrEmpty(cmdlet.AlternateShell)) { RdpFileTemplate = RdpFileTemplate.Replace( "alternate shell:s:", "alternate shell:s:" + cmdlet.AlternateShell); } if (!string.IsNullOrEmpty(cmdlet.ShellWorkingDir)) { RdpFileTemplate = RdpFileTemplate.Replace( "shell working directory:s:", "shell working directory:s:" + cmdlet.ShellWorkingDir); } if (null != cmdlet.AuthenticationLevel) { RdpFileTemplate = RdpFileTemplate.Replace( "authentication level:i:0", "authentication level:i:" + cmdlet.AuthenticationLevel); } if (null != cmdlet.Autoreconnection) { int autoreconnection = cmdlet.Autoreconnection ? 1 : 0; RdpFileTemplate = RdpFileTemplate.Replace( "autoreconnection enabled:i:1", "autoreconnection enabled:i:" + autoreconnection); } if (null != cmdlet.DesktopHeight) { RdpFileTemplate = RdpFileTemplate.Replace( "desktopheight:i:768", "desktopheight:i:" + cmdlet.DesktopHeight); } if (null != cmdlet.DesktopWidth) { RdpFileTemplate = RdpFileTemplate.Replace( "desktopwidth:i:1024", "desktopwidth:i:" + cmdlet.DesktopWidth); } if (null != cmdlet.SmartSizing) { RdpFileTemplate = RdpFileTemplate.Replace( "smart sizing:i:0", "smart sizing:i:1"); } if (null != cmdlet.DisableThemes) { int disableThemes = cmdlet.DisableThemes ? 1 : 0; RdpFileTemplate = RdpFileTemplate.Replace( "disable themes:i:0", "disable themes:i:" + disableThemes); } if (null != cmdlet.DisableWallpaper) { int disableWallpaper = cmdlet.DisableWallpaper ? 1 : 0; RdpFileTemplate = RdpFileTemplate.Replace( "disable wallpaper:i:0", "disable wallpaper:i:" + disableWallpaper); } if (null != cmdlet.RedirectClipboard) { int redirectClipboard = cmdlet.RedirectClipboard ? 1 : 0; RdpFileTemplate = RdpFileTemplate.Replace( "redirectclipboard:i:0", "redirectclipboard:i:" + redirectClipboard); } if (!string.IsNullOrEmpty(cmdlet.DriveStoreRedirect)) { RdpFileTemplate = RdpFileTemplate.Replace( "drivestoredirect:s:", "drivestoredirect:s:" + cmdlet.DriveStoreRedirect); } try { using (var writer = new StreamWriter(((NewUiaRemoteDesktopProtocolFileCommand)cmdlet).Path)) { writer.Write(RdpFileTemplate); writer.Flush(); writer.Close(); } cmdlet.WriteObject(cmdlet, ((NewUiaRemoteDesktopProtocolFileCommand)cmdlet).Path); } catch (Exception eWriter) { cmdlet.WriteError( cmdlet, "Failed to create an RDP file '" + RdpFileTemplate + "'." + eWriter.Message, "FailedToCreateFile", ErrorCategory.InvalidOperation, true); } }
public static void CreateRdpFile(RdpCmdletBase cmdlet) { if (!string.IsNullOrEmpty(cmdlet.Template)) { cmdlet.WriteVerbose(cmdlet, "Using the external template"); RdpFileTemplate = cmdlet.Template; } else { cmdlet.WriteVerbose(cmdlet, "Using the default template"); RdpFileTemplate = RDpProtocolFile; } RdpFileTemplate += "full address:s:" + cmdlet.Hostname + "\r\n"; RdpFileTemplate += "username:s:" + cmdlet.Username + "\r\n"; RdpFileTemplate += "domain:s:" + cmdlet.Domain + "\r\n"; RdpFileTemplate += "password 51:b:" + DataProtectionForRDPWrapper.Encrypt(cmdlet.Password) + "\r\n"; if (cmdlet.RemoteAppMode) { RdpFileTemplate = RdpFileTemplate.Replace( "remoteapplicationmode:i:0", "remoteapplicationmode:i:1"); } if (!string.IsNullOrEmpty(cmdlet.RemoteAppProgram)) { RdpFileTemplate = RdpFileTemplate.Replace( "remoteapplicationprogram:s:", "remoteapplicationprogram:s:" + cmdlet.RemoteAppProgram); } if (!string.IsNullOrEmpty(cmdlet.RemoteAppCmdline)) { RdpFileTemplate = RdpFileTemplate.Replace( "remoteapplicationcmdline:s:", "remoteapplicationcmdline:s:" + cmdlet.RemoteAppCmdline); } if (!string.IsNullOrEmpty(cmdlet.AlternateShell)) { RdpFileTemplate = RdpFileTemplate.Replace( "alternate shell:s:", "alternate shell:s:" + cmdlet.AlternateShell); } if (!string.IsNullOrEmpty(cmdlet.ShellWorkingDir)) { RdpFileTemplate = RdpFileTemplate.Replace( "shell working directory:s:", "shell working directory:s:" + cmdlet.ShellWorkingDir); } // if (null != cmdlet.AuthenticationLevel) { RdpFileTemplate = RdpFileTemplate.Replace( "authentication level:i:0", "authentication level:i:" + cmdlet.AuthenticationLevel); // } // if (null != cmdlet.Autoreconnection) { int autoreconnection = cmdlet.Autoreconnection ? 1 : 0; RdpFileTemplate = RdpFileTemplate.Replace( "autoreconnection enabled:i:1", "autoreconnection enabled:i:" + autoreconnection); // } // if (null != cmdlet.DesktopHeight) { RdpFileTemplate = RdpFileTemplate.Replace( "desktopheight:i:768", "desktopheight:i:" + cmdlet.DesktopHeight); // } // if (null != cmdlet.DesktopWidth) { RdpFileTemplate = RdpFileTemplate.Replace( "desktopwidth:i:1024", "desktopwidth:i:" + cmdlet.DesktopWidth); // } if (null != cmdlet.SmartSizing) { RdpFileTemplate = RdpFileTemplate.Replace( "smart sizing:i:0", "smart sizing:i:1"); } // if (null != cmdlet.DisableThemes) { int disableThemes = cmdlet.DisableThemes ? 1 : 0; RdpFileTemplate = RdpFileTemplate.Replace( "disable themes:i:0", "disable themes:i:" + disableThemes); // } // if (null != cmdlet.DisableWallpaper) { int disableWallpaper = cmdlet.DisableWallpaper ? 1 : 0; RdpFileTemplate = RdpFileTemplate.Replace( "disable wallpaper:i:0", "disable wallpaper:i:" + disableWallpaper); // } // if (null != cmdlet.RedirectClipboard) { int redirectClipboard = cmdlet.RedirectClipboard ? 1 : 0; RdpFileTemplate = RdpFileTemplate.Replace( "redirectclipboard:i:0", "redirectclipboard:i:" + redirectClipboard); // } if (!string.IsNullOrEmpty(cmdlet.DriveStoreRedirect)) { RdpFileTemplate = RdpFileTemplate.Replace( "drivestoredirect:s:", "drivestoredirect:s:" + cmdlet.DriveStoreRedirect); } try { using (var writer = new StreamWriter(((NewUiaRemoteDesktopProtocolFileCommand)cmdlet).Path)) { writer.Write(RdpFileTemplate); writer.Flush(); writer.Close(); } cmdlet.WriteObject(cmdlet, ((NewUiaRemoteDesktopProtocolFileCommand)cmdlet).Path); } catch (Exception eWriter) { cmdlet.WriteError( cmdlet, "Failed to create an RDP file '" + RdpFileTemplate + "'." + eWriter.Message, "FailedToCreateFile", ErrorCategory.InvalidOperation, true); } }