RemoteDesktop

HOWTO: 为 Remote Desktop Services (RDP) 创建和指派证书

        Windows 启用远程桌面后,会使用自签名证书加密 RDP,这导致用户在通过 MSTSC 启动 Remote Desktop Connection 进行连接时遇到不受信任的警告提示,此外如果部署了 Remote Desktop Services - RemoteApp,也是需要为其配置证书的,本文将只分享如何创建用于 RDP 证书,以及为 RDS 指派证书的方法和过程,其他相关的细节不会指出和讨论。

        要创建 RDP 证书需要使用 x509 证书的增强型密钥用法扩展 - “微软远程桌面验证”(Remote Desktop Authentication) ,其 OID 为:1.3.6.1.4.1.311.54.1.2 ,其中各字段表示的含义如下:

  • 1.3.6.1.4.1.311.54.1.2 - 微软远程桌面验证(Remote Desktop Authentication)
  • 1.3.6.1.4.1.311 - Microsoft
  • 1.3.6.1.4.1 - IANA 注册的私营企业
  • 1.3.6.1.4 - 互联网私人
  • 1.3.6.1 - 来自 1.3.6.1 的 OID 分配 - 互联网
  • 1.3.6 - 美国国防部
  • 1.3 - ISO 识别组织
  • 1 - ISO 分配的 OID

        已经获取到 Remote Desktop Authentication 的 OID 为 1.3.6.1.4.1.311.54.1.2,接下来就可以创建用于 RDP 的证书模板,为此启动 ADCS 控制台进入证书模板管理,基于“计算机”证书创建 RDP 证书,在“扩展”选项卡下,编辑“应用程序策略”,根据前面提供的 OID 添加新的策略扩展。

rdpcert

        当我们基于 RDP 证书模板获取到证书后,就需要指派给本机 RDP,可以参考微软官方的知识库 KB3042780 提供的方法操作。

        首先,取得 RDP 证书的 指纹,可以从申请到的证书详细信息中获取,将其复制到一个文本文件中,以备后用。

Cert_Thumbprint

        为了确保后续能正常使用,请将指纹复制到 CMD 中,删除字符串中的空格以及首部的 ASCII 字符,并重新复制到文本文件中。

Cert_Thumbprint-1

        证书指纹准备就绪后,执行如下指令替换当前计算机的 RDP 证书。

wmic /namespace:\\root\cimv2\TerminalServices PATH Win32_TSGeneralSetting Set SSLCertificateSHA1Hash=\" THUMBPRINT\"

SSLCertificateSHA1Hash

        至此,配置结束。当然我们也可以修改注册表实现如上的步骤。

注册表路径:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp

键名称:SSLCertificateSHA1Hash

键类型:REG_BINARY

键值:证书指纹

        因为 RDS 运行在 “NETWORK SERVICE” 账户下,我们需要通过 MMC 载入 证书 模块,找到 RDP 证书,在 “权限” 中添加 “NETWORK SERVICE” 允许 “读取”。

HOWTO: 使用 Windows 10 预配包为用户卸载内置应用

        早先 gOxiA 分享过一篇日志“HOWTO: 卸载 Windows 10 内置应用”,介绍了如果使用 PowerShell 指令查询和卸载 Windows 10 内置的“现代”应用,今天则与大家分享如何使用预配包(ppkg)为用户卸载内置应用。那什么是预配包呢?

        Windows预配可使IT管理员轻松配置最终用户设备,而无需映像处理。预配包(.ppkg)是一系列配置设置的容器,遵循 CSP(配置服务提供程序)规范,且包含以下优点:

  • 快速配置新设备,无需完成安装新映像的过程。
  • 通过使用单个预配包配置多台设备来节省时间。
  • 在没有MDM基础结构的情况下,在组织中快速配置员工所拥有的设备。
  • 在设备没有网络连接的情况下配置设备。

        预配包在实施中可通过移动媒体安装;也可以附加到电子邮件中;或从网络共享下载;设置还可以在 NFC 标记或条形码中部署。

        有关 Windows 10 预配包的详细信息可参考官方资料。

https://docs.microsoft.com/en-us/windows/configuration/provisioning-packages/provisioning-packages

        要创建和生成 Windows 10 预配包需要在 IT 管理员的系统上安装 Windows ADK,其中 ICD (Windows 映像和配置设计器)组件即是预配包的创建工具,在 ICD 准备就绪后,我们需要先获取到当前 Windows 10 版本内置的应用列表,其中 PackageFamilyName 是必要的信息,可以通过 PowerShell 指令实现。

Get-AppPackage –Allusers | select name,packagefamilyname

get-appxpackage

        拿到了 Windows 10 内置应用名称列表后,便可启动 ICD 创建用于卸载内置应用的预配包。为此在 ICD 组件列表中定位到 “UniversalAppUninstall” 下的 “Uninstall”,然后在中间的编辑窗体中填入我们要卸载的 Windows 10 内置应用的 PackageFamilyName 名称,如下图所示添加了两个要卸载的内置应用到 Uninstall 列表中。

universalappuninstall

        然后,再点击左侧组件列表中添加到 Uninstall 下的应用名称,将其配置选项改为“Uninstall”,此时添加的配置才会正式生效,然后再保存并发布预配包,获得名为“RemoveApps.ppkg”的预配包。

universalappuninstall-1

        在最终用户系统上拿到该预配包后,可以通过双击直接运行,在弹出的“此程序包是否来自你信任的源”提示框中单击“是的,添加它”即可。

removeapps

        此外,我们也可以通过 PowerShell 指令以静默方式进行安装,命令行如下:

Install-ProvisioningPackage .removeapps.ppkg -force -quiet

install-provisioningpackage

本文参考来源:https://blogs.technet.microsoft.com/mniehaus/2018/06/02/yet-another-way-to-clean-up-in-box-apps/

rds-overview

HOWTO: 修改RemoteApp和桌面连接的自动更新周期

        在 RDS 环境中,客户端系统在控制面板的“RemoteApp和桌面连接”中添加了 RDWeb 的订阅,其更新方式默认为自动,且提示了会定期自动更新,但是并没有详细说明更新周期。如果用户此时需要更新 RDWeb 订阅以刷新发布的 RemoteApp 列表,则必须手动点击“立即更新”,那么是否有什么方法能够自定义更新周期呢?!

RemoteApp_Upgrade

        检查了 RDS 的相关设置和选项,也查阅了组策略,均没有线索!最后,通过对“RemoteApp和桌面连接”添加过程的轨迹进行了抓包,分析发现当添加一个 WorkResouces 时会向注册表添加连接信息数据(HKCU\Software\Microsoft\Workspaces\Feeds),并向任务计划添加一个定时任务,该任务位于任务计划路径"Microsoft\Windows\RemoteApp and Desktop Connections Update"下,任务计划名称是“Update connections”,如下图所示。

TaskSch

        该任务的默认更新周期是一天更新一次,时间为每天的0:00,但是这个时间周期在实际环境下基本上是无效的,毕竟很少的用户会全天运行系统。所以,可以根据需要将其更改为每次登录时进行刷新。

TaskSch-1

        此外,这个任务计划还为我们提供了非常有价值的命令行,通过下面的命令行可以执行手动刷新 RDWeb 订阅。

“%SYSTEMROOT%\System32\RUNDLL32” tsworkspace,TaskUpdateWorkspaces2

        对于系统运维人员,可以利用上面的命令行编写脚本运行,方便调用。

TaskSch-2

        掌控了“RemoteApp和桌面连接”的自动刷新周期,就可以方便的更新发布的程序列表,以实现便捷的推送和回收需求。

分页: 64/478 第一页 上页 59 60 61 62 63 64 65 66 67 68 下页 最后页 [ 显示模式: 摘要 | 列表 ]