image

HOWTO: 解决 LiteTouch OEM 发生 DISM Error 11 故障

        MDT 的 Lite Touch OEM 任务序列用于在计算机硬盘上预加载操作系统映像。通常由计算机原始设备制造商(OEM)使用,但一些企业也有类似场景的需求。本文 gOxiA 将于大家分享的是解决实施 LiteTouch OEM 过程中,可能发生的 DISM Error 11 故障问题。

        按照标准流程创建完毕 LiteTouch OEM,并生成 Media 后,拿到客户端上进行测试,在释放映像的过程中发生故障,导致 LiteTouch OEM 任务序列终止,如下图所示:

Dism_error11

        在 Details 中能看到故障发生在 WIM 释放阶段,尝试手动执行命令提示“Error 11”,指出“试图加载格式不正确的程序”。在网上搜索了 DISM Error 11 的相关信息,并没有多大的帮助。更换了其他版本的 DISM 执行同样发生此错误,只能再重新领会错误信息。

        gOxiA 尝试调用网络共享中的 WIM 执行该命令行,发现并未有问题。说明 MDT 在生成 Media 时出现了异常,但是向导程序并未成功检测到复制发生了错误,最终导致该故障的发生。而 DISM Error 11 给出的错误提示又未能完全表达意思,误导了用户。

        对于 MDT 任务序列的执行过程都是相关命令和资源的调用,如果通过错误提示无法分析故障原因,不妨参考日志手动执行命令行,也许真相就会显露出来。

        补充:该问题最终查明,存储 LiteTouchOEM 的媒介是 连接在这台虚拟机上使用 SCSI 接口的虚拟磁盘,而这个虚拟磁盘又存储在固态硬盘上,所以导致近 9GB 的数据以每秒近 500MB 的速度瞬间写入,随后由于手工断开 SCSI 磁盘,导致缓存未成功写入。:-P

MSFT_logo_rgb_C-Gray_D

Surface Precision Mouse 微软精准鼠标

        好久没有写过硬件相关的日志,说来惭愧!微软这款精准鼠标(Surface Precision Mouse)是在今年3月初拿到的,但直到今天才提笔写推荐,不过通过这半年多的使用体验,也足以证此并非软文。

        微软精准鼠标的造型说实话非常迷人,除了线条设计超前,质感也是一流,做工更是好的没话说。除了不便于携带外,真的很难挑出它的毛病。造型采用人体工学,把握起来非常舒服,据说采用了一种高级材质,确实不同于普通的塑料或橡胶。

        可编程的功能按键满足不同应用场景,中置滑轮支持平滑滚动,触力反馈。内置可充电电池,待机超长从开始时首次充电到现在半年多,没有再次充电,可能是平常没怎么用,因为官方宣称充电一次约可使用3个月。

        此外,微软精准鼠标可支持同时与3台电脑匹配,在安装了软件后,可以块设备无缝切换。什么意思呢?!就是如果你用该款鼠标可同时连接三台Windows设备,在移动到屏幕边缘后,可自动切换到另外一台设备上。当然除了Windows平台外,微软精准鼠标也支持 Mac OS 和 Android,让你没有理由去拒绝它。不要把没有蓝牙作为拒绝它的理由,因为微软精准鼠标还支持 USB 连接,是的!它提供了 USB 2.1 接口,除了充电用途外,还可作为与 PC 连接的纽带。

        说了这么多是不是已经非常动心,接下来就静静的观赏一番这款鼠标吧。

IMG_20180811_175426

 IMG_20180811_175447

IMG_20180811_175505

IMG_20180811_175523

IMG_20180811_175541

IMG_20180811_175559

        微软精准鼠标,你值得拥有,特别是如果你正在使用微软 Surface 电脑,那么这款鼠标真的是绝配,不二的选择。不知道大家是否关注到中置滑轮下面的按键,gOxiA 之前一直没有研究出用法,偶然间才发现原来这个按键可使滑轮在硬件阻尼和平滑间进行切换,真是人性化的设计,考虑如此细微,不惜成本。

        说到缺点,与 Surface Arc Touch 比起来,确实真的是不适合携带,不过如果你非常注重舒适度和操控性,那么可以忽略此缺点。

20180914_140258648_iOS

        最后,gOxiA 想说近年还败了一只 IE3.0 蓝影复刻版,还没开封,就当收藏了。在上图中,那款性感迷人的笔记本,就是 Surface Book 2,下周 gOxiA 一定将 Surface Book 2 的体验也分享出来,也算是对 2018 年度新 Surface 系列发布前的祭礼!

troubleshooting

解决因超大内存导致的Windows系统安装故障

Snipaste_2018-09-03_15-54-46

        一台 Dell 工作站,硬件配置有 128GB 内存和 512GB 固态硬盘,IT 人员为 512GB 固态硬盘平均划分了两个分区,在安装 Windows 操作系统时发生故障,具体表现为在 Specialize 阶段初始化系统时发生错误,如下图所示:

IMG_20180903_143756

        检查了相关日志文件,发现记录有 “CopyProfileDirectory from C:\Users\Administrator failed (0x80070070)” 错误事件,经分析 0x8007007 为磁盘容量已满导致的故障。

0x80080070

        在当前案例场景下检查,512GB 仅划分了两个分区,且只格式化了用于安装系统的分区,而当前硬件设备配置了超大容量的内存(128GB),导致在 Specialize 阶段生成 Hiberfil.sys 文件后,没有可用空间再生成 Pagefile.sys,因为设备存储没有其他有效格式分区,系统无法利用其他分区存储 Pagefile.sys,最终导致 0x80070070 故障。

        这个看似简单的问题实际上在解决过程中非常复杂,尤其是在企业 IT 环境中。如果单纯为了解决本次故障,可以将第二个分区格式化,这样在 Specialize 阶段初始化时,如果系统分区容量不够,则会自动在第二分区上创建 Pagefile.sys。但如果企业采用了定制的标准化系统映像,那么问题就会非常复杂。

        起初 gOxiA 计划在 Specialize 阶段的 RunSynchronous 中添加一条命令“powercfg /h off”来实现关闭休眠文件(Hiberfil.sys),但测试发现此条命令并不会生效。翻阅了微软官方的文档提示应该在 RunAsyncronous 中执行该命令,于是又进行了尝试,结果发现并未生效,也检查了相关的日志文件,确实在 Specialize 阶段成功执行了命令,但也确实并未生效。而微软官方文档推荐在 AuditMode 阶段执行,也就是说 oobe 也是支持的,但是这些阶段执行“powercfg /h off”并不能解决本案例实质性问题。

docs_powercfg

        为了解决这个问题只能从注册表下手,可以修改注册表,将系统 Power 下的 HibernateEnabled 键值设置为 0 ,即可禁用休眠功能。测试在 Specialize 阶段执行如下命令行。

cmd /c reg add HKLM\SYSTEM\CurrentControlSet\Control\Power /v HibernateEnabled /t REG_DWORD /d 00000000 /f

        测试结果是 Specialize 阶段修改了注册表也不会即刻生效,所以最终的结果是直接修改映像(WIM)的注册表键值。通常采取的做法是 Mount WIM,然后在注册表中加载映像中的注册表文件,位于“C:\Windows\System32\config”。

        问题虽然是解决了,但是也引发了其他的问题,企业环境中的笔记本该怎么办呢?!这里给出几个方案供选择:

1. 按照不同机型,分配不同的映像。

2. 按照不同机型,应用不同的应答文件。

3. 不同机型使用同一个映像和应答,附加专为企业定制的配置工具,在配置过程中识别机型,并执行相关配置和维护脚本。

HOWTO: 解决在 M2NVMe 固态硬盘上部署  Windows 7 的故障问题

故障描述:WDS 部署 Windows 7,安装结束后在 Start Logo 处自动重启,无法正常初始化操作系统,导致安装失败。

故障分析:WDS 部署 Windows 7 时 Boot.wim 使用的是 Windows 10 的 17134 版,在磁盘分区界面能够正常识别硬盘,说明驱动没有问题。而且 WDS 为此 Windows 7 映像绑定有对应设备机型的驱动库,所以在执行部署时会将相关驱动自动导入系统驱动存储区。基本可以排除设备驱动导致的故障。分析硬件设备,是一台图形工作站,磁盘配置为:1TB 固态 + 4TB 机械 * 2,其中 1TB 固态硬盘为 M.2 NVMe 接口的 Samsung MZVLW1T0。

解决方案:Windows 7 wSP1 RTM 不兼容 M.2 NVMe,为已知问题。需要向微软申请热修复补丁:KB2990941-v3KB3087873-v2,下载到补丁后将其安装到脱机映像中即可。需要注意,如果你计划使用 Windows 7 的 Boot.wim,还需要将补丁安装到此 Boot 中,建议同时将磁盘驱动一并安装到 Boot,以在安装阶段识别硬盘驱动器,当然也可以在安装界面单独载入驱动。

HOWTO: 应用 Windows 10 开始屏幕和任务栏的自定义布局文件

        近两年企业部署 Windows 10 的节奏正在加快,更多的中国企业开始使用 Windows 10,而 Windows 桌面标准化的需求及遇到的问题也越发突出。其中关于定制 Windows 10 开始屏幕和任务栏成为了主要的话题。早期便开始实施的 IT 人员知道,在 1607 版时还可以通过定制用户开始屏幕和任务栏,然后利用 Unattend 中的 CopyProfile 来统一个性化设置。但随着微软政策的不断变更,使定制开始屏幕和任务栏就像“迷一般的存在”。

        gOxiA 翻阅了大量的资料,进行了深入的学习和分析。个人总结是微软在基于定制映像交付(面向OEM)时,对开始屏幕和任务栏的定制是有严格限制的。因为定制开始屏幕和任务栏时通常会添加第三方应用,而微软则有相关的条款进行约束,具体可参考《Windows 应用商店 OEM 计划指南》。所以呢,企业用户要统一定制开始屏幕和任务栏,则需要通过域组策略(GPO)或 CSP 方式,这也是微软所推荐的管理方式。

        如果作为企业 IT 人员的你,非要基于定制映像交付,那么你需要考虑的问题就会非常的广泛,而此时提到的问题当然不是条款,更多的是易于忽略的相关技术细节,这一过程不是一朝一夕,是需要付出学习成本的。

        我们要了解一些重点!首先,定制开始屏幕和任务栏会涉及两种资源:传统 Windows 桌面应用(ClassicApps)和现代应用(UWPApps)也称为通用Windows应用。其次,会在两个位置进行定制:开始屏幕和任务栏。最后,涉及的应用程序如何部署:预先安装和交付之后安装。

        目前可确认的信息是,如果部署的是新版 Windows 10,要基于映像定制开始屏幕,则需要通过一个有严格格式规范要求的 XML 遵循指定的应用方式进行定制(PS:介于篇幅,本次分享不包含这个 XML 格式的内容),CopyProfile 将不再有效。此外,虽然目前 Unattend 中还提供向任务栏添加快捷方式的组件设置,但微软将会放弃此项支持。因为任务栏的定制可能会包含 UWPApps,必须通过特定的 XML 进行定制。

        不知道上面的描述是否能够完全理解,没关系我们可以动手实践。前面提到过定制文件的应用方式非常之重要,所以今天要分享的主要内容就是基于映像定制的三种方式。在开始前我们需要先准备一个开始屏幕的定制文件,为了避免出错我们可以先在 Windows 10 参考环境下定制好开始屏幕,然后使用 PowerShell 的 export-startlayout 导出开始屏幕布局文件,我们会基于这个布局文件进行修改或应用。导出开始布局文件的命令行参考如下:

export-startlayout –path d:\startlayout.xml

export-startlayout

一. 为脱机映像应用布局文件

        为脱机映像应用布局文件,此案例下假设 IT 人员已经预先安装好了应用程序,在 Sysprep 后关机,然后为这个脱机映像应用布局文件。即,将你的布局文件重新命名为“LayoutModification.xml”并复制到脱机映像的指定目录下,如:

c:\mount\windows\users\default\appdata\local\microsoft\windows\shell\layoutmodification.xml

        要点:布局文件中引用的 ClassicApps 路径应位于 %AppData% 或 %ALLUsersProfile% 的“程序”目录下,建议将“.lnk”拷贝到后者下。如果映像中未预先安装引用的 ClassicApps,则应使用“DesktopApplicationID”来引用这些应用程序,涉及的 AppID 可参考 gOxiA 的前一篇文章“HOWTO: 获取 Windows 10 应用程序的名称和AppID ”。

二. 通过 oobe 阶段导入布局文件

        利用 Unattend 在 oobeSystem 阶段的 FirstLogonCommands 添加 PowerShell 命令行,以导入布局文件,是 gOxiA 在用,也推荐大家应用的方式,能够正确配置所有用户使用统一的开始屏幕和任务栏布局,但对布局文件的修改要求比较高,需要将开始屏幕和任务栏布局整合在一个 XML 文件中,并加入其他的布局定义,以后会与大家分享。

        涉及的 PowerShell 命令行参考如下:

powershell -command import-startlayout -layoutpath c:\windows\startlayout.xml -mountpath c:\

oobesystem_firstlogoncommands

三. 在 Sysprep 前应用任务栏布局文件

        这个方式其实仅针对需要自定义任务栏的场景。因为前面提过在定制任务栏时可能会添加 UWPApps,而通过 XML 是目前唯一可行的方式。但是此方式限制较多,只能额外向任务栏添加最多三个固定的应用程序,且不能替换系统默认布局。

        首先,需要创建一个专用于任务栏布局的 XML 文件,可参考:https://github.com/goxia/ITSM/blob/master/TaskbarLayoutModification.xml,并拷贝至下面命令行中的路径。

        然后,在审计模式下执行如下命令行以修改注册表配置,然后在执行 Sysprep 进行封装并重新捕获映像。这是因为此设置必须在 specialize 阶段前就应用在注册表中。

cmd /c reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer /v LayoutXMLPath /d C:\Windows\Fabrikam\TaskbarLayoutModification.xml

        要点: XML 的文件名和存放路径没有约束;ClassicApps 的 .lnk 建议位于 %ALLUSERSPROFILE% 的开始程序目录下(%ALLUSERPROFILE%\Microsoft\Windows\Start Menu\Programs\);UWPApps 应使用“AppUserModelID”进行指定。

HOWTO: 获取 Windows 10 应用程序的名称和AppID

        今天 gOxiA 要与大家分享的内容是通过 PowerShell 命令行获取 Windows 10 应用程序的名称和 AppID。这里的 Windows 10 应用程序除了“现代”应用程序外,也包含传统的桌面应用程序;而应用程序名称则是指安装的程序在 Windows 10 上所显示给用户的“友好”名称;AppID 即是 AppUserModelID – 应用程序用户模型ID(自 Windows 7 开始在任务栏中广泛使用,它类似早期的应用程序快捷方式,将进程、文件和窗口与特定应用程序相关联,但更高级)。

        要获取 Windows 10 应用程序的名称和 AppID,可使用 PowerShell 内置的命令 - GET-StartApps,具体执行后的结果如下所示。

Get-StartApps

        那么为什么我们需要获取这些数据呢?!前面提到过 AppID 类似 应用程序快捷方式(.lnk),AppID 可用于将应用程序固定到任务栏或 Windows 开始屏幕,尤其是在编写 “LayoutModification.xml”,以定制 Windows 10 的开始屏幕和任务栏。通常为了确保 Start layout XML 解析器能够正确处理文件,我们都会使用 Export-StartLayout cmdlet 来导出当前 Windows 用户环境的开始屏幕布局,再进行后续的修改和应用。但是需要注意的是,如果 IT 组织计划使用组策略或MDM应用开始布局,并且是在用户首次登录后安装了应用程序,则应使用 DesktopApplicationID 而不是 DesktopApplicationLinkPath。其中 DesktopApplicationID 就需要我们事先使用 Get-StartApps 来获取 AppID。否则,就需要事先将 lnk 文件部署到旧的开始菜单目录中。如:

  • %APPDATA%\Microsoft\Windows\Start Menu\Programs
  • %ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs


参考资料:Start layout XML for desktop editions of Windows 10 (reference)

HOWTO: 关闭 Windows 10 任务栏上的人脉图标

        Windows 10 现在支持在任务栏上显示人脉图标,可方便、快速地访问联系人,同时也可以将常用联系人直接固定在任务栏上。但是在一些企业 IT 环境下,可能并不需要这个功能,那么该如何关闭它呢?!

PeopleBand-1

        使用手动方式关闭任务栏人脉就不再详述,可参考下图参考操作。

PeopleBand-2

        而本例中主要介绍使用组策略和注册表,对任务栏人脉图标进行统一管理或自动化配置。如果要使用组策略(GPO)统一管理,需在“用户配置/管理模板/开始菜单和任务栏”下找到“从任务栏中删除人脉栏”,并将其设置为“已禁用”。

DisablePeopleBand_gpo

        如果计划使用脚本或 Unattend 应答文件,进行自动化配置,可利用修改注册表来实现,具体的命令行参考如下:

reg add \"HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\People\" /v PEOPLEBAND /t REG_DWORD /d 0 /f

        注意:由于 PEOPLEBAND 位于 HKCU 分支下,所以当应用在 Unattend 环境下时,请在 “OobeSystem” 阶段执行。

HOWTO: 卸载 Windows 10 内置应用

[ 2018/08/10 10:23 | by gOxiA ]

HOWTO: 卸载 Windows 10 内置应用

        Windows 10 内置了许多微软原生应用,如:邮件、照片、音乐、电影,等等。应用的质量和用户体验,目前都已非常令人满意。但是在一些大型企业 IT 环境下,这些应用并不完全适用,除了企业 IT 合规性以外,更多的还是潜在的标准化问题,所以 IT 人员在定制企业标准化映像时,通常要卸载这些内置应用,并确保交付到用户后不会被自动安装。

        为此,我们需要利用两个 Windows 内置的 PowerShell 指令:Remove-AppxPackageReomve-AppxProvisionedPackage。前者用于从用户账户中删除一个应用程序包;后者则从 Windows 映像中删除应用程序包,使创建新用户时不会再安装应用程序包,但是这些程序包不会从现有账户中删除。(PS:明白两个命令的区别了吗?!)

        首先,在 GoldImage 中先从当前标准账户配置下卸载应用,例如:

get-appxpackage -allusers *gethelp* | remove-appxpackage

get-appxpackage -allusers *getstarted* | remove-appxpackage

get-appxpackage -allusers *messaging* | remove-appxpackage

get-appxpackage -allusers *officehub* | remove-appxpackage

get-appxpackage -allusers *solitairecollection* | remove-appxpackage

get-appxpackage -allusers *onenote* | remove-appxpackage

get-appxpackage -allusers *people | remove-appxpackage

get-appxpackage -allusers *skypeapp | remove-appxpackage

get-appxpackage -allusers *photos | remove-appxpackage

get-appxpackage -allusers *communicationsapps | remove-appxpackage

get-appxpackage -allusers *feedbackhub | remove-appxpackage

get-appxpackage -allusers *xbox* | remove-appxpackage

get-appxpackage -allusers *zunemusic | remove-appxpackage

get-appxpackage -allusers *zunevideo | remove-appxpackage

        然后,从当前 Windows 映像中移除应用包,例如:

Get-AppxProvisionedPackage -Online | where Displayname -EQ \"Microsoft.GetHelp\" | Remove-AppxProvisionedPackage -Online

Get-AppxProvisionedPackage -Online | where Displayname -EQ \"Microsoft.Getstarted\" | Remove-AppxProvisionedPackage -Online

Get-AppxProvisionedPackage -Online | where Displayname -EQ \"Microsoft.Messaging\" | Remove-AppxProvisionedPackage -Online

Get-AppxProvisionedPackage -Online | where Displayname -EQ \"Microsoft.MicrosoftOfficeHub\" | Remove-AppxProvisionedPackage -Online

Get-AppxProvisionedPackage -Online | where Displayname -EQ \"Microsoft.MicrosoftSolitaireCollection\" | Remove-AppxProvisionedPackage -Online

Get-AppxProvisionedPackage -Online | where Displayname -EQ \"Microsoft.Office.OneNote\" | Remove-AppxProvisionedPackage -Online

Get-AppxProvisionedPackage -Online | where Displayname -EQ \"Microsoft.People\" | Remove-AppxProvisionedPackage -Online

Get-AppxProvisionedPackage -Online | where Displayname -EQ \"Microsoft.SkypeApp\" | Remove-AppxProvisionedPackage -Online

Get-AppxProvisionedPackage -Online | where Displayname -EQ \"Microsoft.Windows.Photos\" | Remove-AppxProvisionedPackage -Online

Get-AppxProvisionedPackage -Online | where Displayname -EQ \"microsoft.windowscommunicationsapps\" | Remove-AppxProvisionedPackage -Online

Get-AppxProvisionedPackage -Online | where Displayname -EQ \"Microsoft.WindowsFeedbackHub\" | Remove-AppxProvisionedPackage -Online

Get-AppxProvisionedPackage -Online | where Displayname -EQ \"Microsoft.XboxApp\" | Remove-AppxProvisionedPackage -Online

Get-AppxProvisionedPackage -Online | where Displayname -EQ \"Microsoft.XboxIdentityProvider\" | Remove-AppxProvisionedPackage -Online

Get-AppxProvisionedPackage -Online | where Displayname -EQ \"Microsoft.ZuneMusic\" | Remove-AppxProvisionedPackage -Online

Get-AppxProvisionedPackage -Online | where Displayname -EQ \"Microsoft.ZuneVideo\" | Remove-AppxProvisionedPackage -Online

        此外,gOxiA 建议在 Unattend.xml 的 Specialize 阶段,向注册表添加如下键值以确保禁用微软建议的应用推送。

reg add HKLM\SOFTWARE\Policies\Microsoft\Windows\CloudContent /v DisableWindowsConsumerFeatures /t REG_DWORD /d 1 /f

参考:

Remove-AppxPackage : https://docs.microsoft.com/en-us/powershell/module/appx/remove-appxpackage?view=win10-ps

Reomve-AppxProvisionedPackage : https://docs.microsoft.com/en-us/powershell/module/dism/remove-appxprovisionedpackage?view=win10-ps

Windows 10 v1803 Build-In Apps : https://github.com/goxia/ITSM/blob/master/Win10-1803-BuildinApps.txt

HOWTO: 使用Unattend应答文件执行Windows 10 S mode的安装

        Windows 10 的主要 SKUs 目前都支持以 S mode 方式运行,微软介绍在 S mode 下 Windows 10 运行速度将更快,无论是播放高清视频还是打开应用都将获得流量的响应体验;此外,安全性也更高。因为在 S Mode下仅运行安装来自Microsoft Store的应用程序,而此渠道的应用程序都是经过微软验证过的。gOxiA 认为 S mode 非常适用于教育领域,如果企业正寻求更高的安全级别 S mode 也是不错的选择。

        有关 S mode 的详细信息可参阅官方网站:https://www.microsoft.com/zh-cn/windows/s-mode

        如果你正想体验 Windows 10 的 S mode,那么本篇文章将会给予最佳的实践帮助。首先准备工作,请将下载的最新版的 Windows 10 安装镜像(当前为 1803 版 ISO)制作成 USB 安装。(PS:制作 USB 安装盘在过去的文章中已经介绍多次了,非常非常简单!在 Windows 7 及以上版本的系统上格式化 U 盘为 FAT32 格式,然后激活分区,最后将 Windows 安装镜像(ISO)中的文件拷贝到 U盘即可。)

        Windows 10 Setup USBFlash 准备完毕后,使用记事本创建一个名为“autounattend.xml”的文件,文件内容具体如下,请完全参照写入 XML 文件中,创建完毕后保存到 U 盘根目录,这样在安装过程中 Setup 程序就会自动应用该应答文件。

<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
     <settings pass="offlineServicing">
         <component name="Microsoft-Windows-CodeIntegrity" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="
http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
             <SkuPolicyRequired>1</SkuPolicyRequired>
         </component>
     </settings>
     <settings pass="windowsPE">
         <component name="Microsoft-Windows-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="
http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
             <UserData>
                
<ProductKey>
                     <Key>W269N-WFGWX-YVC9B-4J6C9-T83GX</Key>
                 </ProductKey>

             </UserData>
         </component>
     </settings>
</unattend>

        上述配置内容与微软官方提供的资料(https://docs.microsoft.com/en-us/windows-hardware/customize/desktop/unattend/microsoft-windows-codeintegrity-skupolicyrequired)有所区别,虽然自 1803 开始在应答文件中通过新增的“SkuPolicyRequired”组件来提供支持切换到 S mode,但在实际应用时会发现如果不预先指定“ProductKey”会出现安装失败的故障。

Snipaste_2018-08-01_09-04-02

        当安装完毕后可以在所有设置/系统/关于 中查看版本,在 S mode 下将不能运行 exe 程序,包括传统的 exe 安装程序,以及 msi 安装包,也无法运行系统内置的 PowerShell 和 CMD!

win10s_mode

HOWTO: 使用 TYPEPERF 获取系统性能数据

        以往我们在监控和收集 Windows 系统性能数据时都会使用“性能监视器”,虽然使用图形界面更加直观,但一些 IT 人员仍然会希望使用命令行实现,尤其要编写一系列执行步骤的脚本时,就显得更为重要。那么我们该使用什么命令行工具来获取系统性能数据呢?!

DataCollector

        其实在 Windows 系统中内置了一个鲜为人知的命令 “typeperf.exe”,可以快速收集性能数据。需要注意的是在实际使用时请以管理员权限运行。

typeperf

        例如我们要以每秒收集一次可用内存的字节数,可以执行如下命令行:

typeperf.exe “\memory\available bytes”

typeperf_1

        如果希望每19秒获取一次可用内存的字节数,则可以使用 –si 参数,即:

typeperf.exe “\memory\available bytes” –si 5

typeperf_2

        使用 –sc 参数则可以指定要获取的次数,-f 则可以指定将收集的性能数据保存为 CSV、TSV 或 SQL 格式,使用 –o 则可以指定文件的存储路径。命令行参考如下:

typeperf.exe \"\memory\available bytes\" -si 5 -sc 10 -f csv -o d:\mem_ava.csv

typeperf_3

        如果要获取某个性能监视对象的实例,可执行如下命令行进行查询,同时也可以使用 –o 参数将查询结果保存到磁盘。

typeperf.exe –qx memory

        借此篇日志,与大家分享各性能监视对象的性能指标,希望对大家日常工作有所帮助。

PerfMonMetric

TYPEPERF.exe 的官方参考资料:https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/cc753182(v=ws.11)

分页: 2/176 第一页 上页 1 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]