diff --git a/orion-visor-common/src/main/java/org/dromara/visor/common/session/config/RdpConnectConfig.java b/orion-visor-common/src/main/java/org/dromara/visor/common/session/config/RdpConnectConfig.java index 8a916894..f40e42f3 100644 --- a/orion-visor-common/src/main/java/org/dromara/visor/common/session/config/RdpConnectConfig.java +++ b/orion-visor-common/src/main/java/org/dromara/visor/common/session/config/RdpConnectConfig.java @@ -47,6 +47,9 @@ public class RdpConnectConfig extends BaseConnectConfig { @Schema(description = "低带宽模式") private Boolean lowBandwidthMode; + @Schema(description = "初始化程序") + private String initialProgram; + @Schema(description = "RDP 版本是否大于8.1") private Boolean versionGt81; diff --git a/orion-visor-modules/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/handler/host/extra/model/HostRdpExtraModel.java b/orion-visor-modules/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/handler/host/extra/model/HostRdpExtraModel.java index 2f466be1..4b75d1cb 100644 --- a/orion-visor-modules/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/handler/host/extra/model/HostRdpExtraModel.java +++ b/orion-visor-modules/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/handler/host/extra/model/HostRdpExtraModel.java @@ -56,4 +56,9 @@ public class HostRdpExtraModel implements GenericsDataModel { */ private Boolean lowBandwidthMode; + /** + * 初始化程序 + */ + private String initialProgram; + } diff --git a/orion-visor-modules/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/service/impl/HostConnectServiceImpl.java b/orion-visor-modules/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/service/impl/HostConnectServiceImpl.java index 085e44b1..93240932 100644 --- a/orion-visor-modules/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/service/impl/HostConnectServiceImpl.java +++ b/orion-visor-modules/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/service/impl/HostConnectServiceImpl.java @@ -293,8 +293,9 @@ public class HostConnectServiceImpl implements HostConnectService { // 填充基础主机信息 this.setBaseConnectConfig(connectConfig, host); if (extra != null) { - // 设置低带宽模式 + // 设置额外配置信息 connectConfig.setLowBandwidthMode(extra.getLowBandwidthMode()); + connectConfig.setInitialProgram(extra.getInitialProgram()); // 获取自定义认证方式 HostExtraAuthTypeEnum extraAuthType = HostExtraAuthTypeEnum.of(extra.getAuthType()); if (HostExtraAuthTypeEnum.CUSTOM_IDENTITY.equals(extraAuthType)) { diff --git a/orion-visor-modules/orion-visor-module-terminal/orion-visor-module-terminal-service/src/main/java/org/dromara/visor/module/terminal/handler/terminal/session/RdpSession.java b/orion-visor-modules/orion-visor-module-terminal/orion-visor-module-terminal-service/src/main/java/org/dromara/visor/module/terminal/handler/terminal/session/RdpSession.java index f7ba72e4..165e8af8 100644 --- a/orion-visor-modules/orion-visor-module-terminal/orion-visor-module-terminal-service/src/main/java/org/dromara/visor/module/terminal/handler/terminal/session/RdpSession.java +++ b/orion-visor-modules/orion-visor-module-terminal/orion-visor-module-terminal-service/src/main/java/org/dromara/visor/module/terminal/handler/terminal/session/RdpSession.java @@ -118,6 +118,11 @@ public class RdpSession extends AbstractGuacdSession i String driveMountPath = DriveMountModeEnum.of(extra.getDriveMountMode()) .getDriveMountPath(props.getUserId(), props.getHostId(), props.getId()); tunnel.setParameter(GuacdConst.DRIVE_PATH, Files1.getPath(guacdConfig.getDrivePath() + "/" + driveMountPath)); + // 初始化程序 + String initialProgram = config.getInitialProgram(); + if (!Strings.isBlank(initialProgram)) { + tunnel.setParameter(GuacdConst.INITIAL_PROGRAM, initialProgram); + } // 预连接 String preConnectionId = config.getPreConnectionId(); if (!Strings.isBlank(preConnectionId)) { diff --git a/orion-visor-ui/src/api/asset/host-extra.ts b/orion-visor-ui/src/api/asset/host-extra.ts index 564d47e2..9fb2b142 100644 --- a/orion-visor-ui/src/api/asset/host-extra.ts +++ b/orion-visor-ui/src/api/asset/host-extra.ts @@ -30,6 +30,7 @@ export interface HostRdpExtraSettingModel { authType: string; identityId: number; lowBandwidthMode: boolean; + initialProgram: string; } // 标签额外配置 diff --git a/orion-visor-ui/src/views/terminal/components/setting/extra/rdp-extra-form.vue b/orion-visor-ui/src/views/terminal/components/setting/extra/rdp-extra-form.vue index 2a4830e8..e4570293 100644 --- a/orion-visor-ui/src/views/terminal/components/setting/extra/rdp-extra-form.vue +++ b/orion-visor-ui/src/views/terminal/components/setting/extra/rdp-extra-form.vue @@ -21,10 +21,19 @@ + + + +