HOWTO: 利用 CompactOS 减少 Windows 10 磁盘占用量

        gOxiA 今天要与大家分享的内容与 Windows 10 系统文件占用的磁盘容量有关,虽然现在大容量硬盘已经相当普及,但是对于那些使用小容量固态硬盘的设备来说,能够在尽可能以最小性能牺牲的前提下,减少系统文件占用的磁盘空间还是显得相当的有价值!尤其对于 OEM 设备,过去 OEM 厂商需要占用 4G 左右的空间来存储用于系统恢复的映像文件,而现在微软在全新的 Windows 10 上进行了改进,在执行系统恢复重置时已不再需要系统映像,也就是无需在设备上单独存储一份 WIM 格式的系统映像,即使当前系统损坏程度已经相当严重,当然我们仍旧可以创建一份系统备份,以确保在系统无法成功恢复重置设备时,能够有效的将设备重置为原始状态。

        前面所讲的仅仅是 Windows 10 的新特性之一,而本文的主角则是 Windows 10 的 CompactOS 功能,这一功能被微软官方解释为 WIMBOOT 的进化,WIMBOOT 的相关介绍可以参考 gOxiA 之前的文章《Windows 8.1 Update WIMBoot 概述》或在本站搜索 WIMBoot,了解 WIMBoot 的朋友应该知道 WIMBoot 利用了文件指针将当前安装的系统文件重定向到恢复映像中,这对于小容量存储(16 - 32GB)的 OEM 设备来说将大大降低整体磁盘的占有量,但是随着系统或预装应用的不断更新,WIMBoot 就会显得力不从心。而 CompactOS 则利用 Windows 10 高效的压缩算法,压缩系统二进制文件,可在32位系统上回收 1.5GB 和 64位系统上回收 2.6GB 的磁盘容量。再结合前面所讲的无需系统映像进行系统恢复重置的新特性,最终可有效回收 6.6GB 磁盘容量。

compact_review

        Windows 10 的 CompactOS 功能在应用上非常灵活,我们可以在执行 Windows 安装时就启用 CompactOS 功能。利用 Windows ADK 的 ICD(Windows Imaging and Configuration Designer)组件可以创建启用 CompactOS 的安装盘。

step.1  创建一个“New Windows image customization”项目,选择基于 WIM 文件,之后选择 对应的 SKU

ICD_1

2015-12-09 (1)

2015-12-09 (2)

step.2 创建生产介质,选择 WIM 格式,接下来的一步非常重要,务必勾选“Enable Compact OS” 的“Yes” 选择,最后根据需要直接创建 U盘或存储到一个目录。

2015-12-09 (3)

2015-12-09 (4)

2015-12-09 (5)

2015-12-09 (6)

        如果觉得使用 ICD 太复杂,可以使用 WSIM(Windows System Image Manager)创建一个应答文件(unattend.xml),启用设置“Microsoft-Windows-Setup\ImageInstall\OSImage\Compact”。

2015-11-26 (4)

        还觉得复杂,那可以在安装的时候手工执行 setup.exe 命令,并附加“/compactos enable” 参数,需要注意这一方式仅限于升级模式下使用。

2015-11-26

        还无法满足?!那就手工安装吧,找个 Windows 10 安装盘(Build 10586),使用 DISM 命令应用映像,命令行参考如下:

dism /apply-image /imagefile:d\sources\install.wim\" /index:1 /applydir:f:\ /compact

compactos_1

        对于使用 MDT 批量部署的用户,需要修改 LTIApply.wsf 文件,参考如下(高亮部分即增加的内容):

' Apply the image

sCmd = " /Apply-Image /ImageFile:""" & sImagePath & """"
If sRWMPath <> "" then
    sCmd = sCmd & " /SWMFile:""" & sRWMPath & """"
End if
If sSWMPath <> "" then
    sCmd = sCmd & " /SWMFile:""" & sSWMPath & """"
End if
sCmd = sCmd & " /Index:" & sImageIndex & " /ApplyDir:" & sDestinationDrive
If UCase(oEnvironment.Item("OSDCompact")) = “TRUE” then
    sCmd = sCmd & " /Compact:ON"
End if

        具体可参考 Michael Niehaus 的博客文章《Windows: Reducing the disk footprint》。当然 CompactOS 的灵活之处还不局限与上面所述的几个方法,除了可以在安装时启用这一功能外,还支持在已有系统上启用或关闭该功能。执行下面的命令行可查询当前系统是否启用了 CompactOS。

compact /compactos:query

compactos_3

        也可以附加“always 或 never”参数在当前系统上启用或关闭 CompactOS。

compactos_5

IESEC

HOWTO: 利用组策略禁用 IE ESC(Internet Explorer 增强的安全配置)

        Internet Explorer Enhanced Security Configuration(即:IE ESC,Internet Explorer 增强的安全配置),自 Windows Server 2008 开始提供的一项服务器安全配置,旨在有效降低来自基于 Web 的不安全内容攻击的风险,直至 Windows Server 2012 R2 该安全配置默认都为启用。

        IE ESC 默认情况下为 Administrators 组和 Users 组启用,当这些组用户在使用 IE 浏览网站时会收到警告提示,被告知该网站中的一些内容被阻止,此时可以去除“网站内容被阻止时继续提示”的复选框已减少干扰,加入用户信赖该网站,则可以将该网站添加到信任网站中,那么下次再访问的时候就不会在提示安全警告。

2015-12-02 (6)

2015-12-02 (5)

        IE ESC 其实是一项非常不错的功能,但是在一些测试环境中,可能会略显繁琐,通过手工方式关闭简单有效,但是如果环境中创建了多台 Windows Server 虚机就会很麻烦,毕竟要一步一步执行操作。

2015-12-02 (7)

        如果当前正好是一个域环境,那么我们可以利用组策略来为禁用 IE ESC,接下来就可以编辑现有组策略或新建一个组策略!IE ESC 提供两个注册表项分别为 Administrators 组和 Users 组定义配置:{A509B1A7-37EF-4b3f-8CFC-4F3A74704073} 和 {A509B1A8-37EF-4b3f-8CFC-4F3A74704073},他们位于:HKLM\SOFTWARE\Microsoft\Active Setup\Installed Components下,所以我们需要在组策略中创建两个注册表项的预定义,将其下的“IsInstalled”根据需要改为“00000000”,如下图所示:

2015-12-02 (8)

        如果还不知道如何在组策略中添加注册表配置,请参考下图:

2015-12-02 (9)

msft_logo_png

HOWTO: 在 Windows 10 上解决 RDCMan v2.7 Unknown disconnection reason 3848 故障

        RDCMan v2.7 于14年末发布,gOxiA 当时有写过一篇文章进行简要的介绍,支持连接远端 Hyper-V 主机上的虚拟机这一功能使 RDCMan(Remote Desktop Connection Manager) 增色不少,最近在 Windows 10 上使用 RDCMan 连接虚拟机时遇到了一个问题,还好找到了解决办法,特与大家分享,同时留文备忘!

        当使用 RDCMan 创建一个 VM console connect,如果 Hyper-V 主机和客户端都在域中,那么连接不会出现问题,可是工作组环境下便会出现 Unknown disconnection reason 3848 故障。

image

2015-12-02

        查阅了 Ben Armstrong(Hyper-V Program Manager)的 Blog 发现当初遇到这个问题的人还真不少,而且还提供了解决方案:KB954357,应该是由 CredSSP 引发的远端用户凭据无法验证的问题。由于 KB954357 中的 Fixit 工具会验证系统版本,所以无法在 Windows 10 上运行,我们只能手工修改注册表项,可以在 PowerShell 下执行如下命令行,无需重启系统即时生效!

New-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\Credssp\PolicyDefaults\AllowDefaultCredentials -Name Hyper-V -PropertyType String -Value \"Microsoft Virtual Console Service/*\" -Force

New-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\Credssp\PolicyDefaults\AllowDefaultCredentialsDomain -Name Hyper-V -PropertyType String -Value \"Microsoft Virtual Console Service/*\" -Force

New-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\Credssp\PolicyDefaults\AllowFreshCredentials -Name Hyper-V -PropertyType String -Value \"Microsoft Virtual Console Service/*\" -Force

New-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\Credssp\PolicyDefaults\AllowFreshCredentialsDomain -Name Hyper-V -PropertyType String -Value \"Microsoft Virtual Console Service/*\" -Force

New-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\Credssp\PolicyDefaults\AllowFreshCredentialsWhenNTLMOnly -Name Hyper-V -PropertyType String -Value \"Microsoft Virtual Console Service/*\" -Force

New-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\Credssp\PolicyDefaults\AllowFreshCredentialsWhenNTLMOnlyDomain -Name Hyper-V -PropertyType String -Value \"Microsoft Virtual Console Service/*\" -Force

New-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\Credssp\PolicyDefaults\AllowSavedCredentials -Name Hyper-V -PropertyType String -Value \"Microsoft Virtual Console Service/*\" -Force

New-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\Credssp\PolicyDefaults\AllowSavedCredentialsDomain -Name Hyper-V -PropertyType String -Value \"Microsoft Virtual Console Service/*\" -Force

New-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\Credssp\PolicyDefaults\AllowSavedCredentialsWhenNTLMOnly -Name Hyper-V -PropertyType String -Value \"Microsoft Virtual Console Service/*\" -Force

分页: 1/1 第一页 1 最后页 [ 显示模式: 摘要 | 列表 ]