Windows XP | Windows Vista | Windows 7 | Windows 8 | Windows 10

Honolulu_logo

Project Honolulu Technical Preview 概览

        九月中旬微软 Windows Server Blog 宣布了全新的 Windows Server Management Experience,并为其开通了专属 Blog。该项目的名称目前叫 Microsoft Project Honolulu

        Project Honolulu 是一个本地化部署,基于浏览器的 Windows Server 管理工具集,可为管理员提供完全控制服务器基础结构的能力,官方称该管理工具更适用于那些未连接到互联网的专用网络上的服务器管理。Project Honolulu 是管理工具的现代演变,如已知的服务器管理器和MMC,它是对系统中心和业务管理套件的一个补充,并非要取代现有的产品。

        Project Honolulu 是一套 Web 应用程序,基于浏览器运行,但目前只支持“现代”浏览器,如:Microsoft Edge 或 Google Chrome,而 IE 不在它的支持范围内,即使是最新版的 IE11 也未能例外。

doesnt_support_ie

        Project Honolulu 除了能够管理 Windows Server 2016 外,还能够管理 Windows Server 2012 R2 和 Windows Server 2012 服务器,该管理工具并不依赖 Windows Server 系统,除了可以安装在 Windows Server 2016 上,还可以安装在 Windows 10 系统上。通过 WinRM 网关实现远程 Powershell和WMI 操作,从而对服务器执行管理。

architecture

        下图就是 Project Honolulu 的运行界面,gOxiA 小试了一下,功能异常强大,几乎可以在浏览器中执行所有的服务器管理操作,基础的如设备基本信息,硬件资源实时监控,修改计算机名,加入到活动目录。还可以管理系统上的证书、硬件设备、日志,甚至还包含了文件管理和注册表管理。而防火墙、用户和组、网络、服务、存储、更新,以及系统角色和功能,也都面面俱到。更强大之处,还包含了对实时进程的管理,可以直接在浏览器中监控和操作远端服务器正在运行的进程;此外如果服务器安装了Hyper-V,还可以通过 Project Honolulu 直接进行平台的配置和虚拟机的管理。

snipaste20170926_154225

        Project Honolulu 安装包区区30MB 多一点,就实现了如此强大的管理功能,并且部署和安装方式简单、便捷,真是难得之作!后续 gOxiA 将分步与大家分享 Project Honolulu 相关资讯,敬请关注!

HOWTO: 获取 Windows 10 Insider Preview Skip ahead

        Windows 10 RS4 已经发布了 17004.1000,相信有不少朋友都想试试下一个版本的 Windows 10,虽然已经是  Windows 10 Insider Preview 成员,但在 Windows 预览体验计划面板中切换到 “Skip ahead to the next Windows release” 后,系统会自动改回当前预览版本,可以在系统栏看到通知提示 “Your Windows Insider Program content settings have been reverted.” 那么该如何强制切换到 Skip ahead 呢?!

1

2

        微软提供了一个注册表键值 “ContentType”,可强制修改获取的版本分支。该键位于“HKLM\SOFTWARE\MicrosoftWindowsSelfHost\Applicability”,默认为“Current”,如果启用预览体验计划,则为“Active”,如果要获取下一个版本则改为 “Skip”。建议在修改时禁用网卡,在重启系统后再连接网络,之后无需再等待2天,即可立即开始更新。

regedit_contenttype

3

win10creatorsupdate1703

HOWTO: 解决 Windows 10 UWP Apps 无法运行

        UWP - Universal Windows  Platform(通用 Windows 平台),自 Windows 10 引入,进一步推动了 WIndows Runtime 模型的发展,一统 Windows 核心。作为核心版的一部分,UWP 现提供了一个可供在每个运行 Windows 10 设备上使用的通用应用平台。

OneWindowsPlatform

        简单理解,就是我们开发一个 UWP 应用即可运行在所有的 Windows 10 设备上,其优势显而易见!有关 UWP 详细的介绍可以移步 https://docs.microsoft.com/zh-cn/windows/uwp/get-started/universal-application-platform-guide 参考。

        而今天 gOxiA 要与大家分享的肯定是与 ITPro 密切相关的内容,正如本期之题目解决 Windows 10 UWP Apps 无法运行。具体的故障现象是点击 UWP Apps 都会没有响应,UWP Apps 不会按照预期那样启动运行。在有些环境下能看到点击 UWP Apps 图标后会显示正在安装一样的进度条,之后再无反应。具体的故障现象可参考下面的动画截图:

errordemo

        但是切换到 Administrator 账户下却能够运行这个 UWP Apps(PS:已经配置了GPO允许本地管理员运行 UWP Apps),唯独无法运行 Microsoft Edge,会出现闪退。检查日志发现来源 Apps,ID 5973 的错误事件,具体错误是“系统找不到指定文件”。难道是应用相关文件损坏?!

log

        使用 PowerShell 命令行对 Microsoft Edge 进行重装测试,结果发现“部署失败,原因是 HRESULT: 0x80073D0A,无法安装该程序包,因为 Windows 防火墙服务未运行。请启用 Windows 防火墙服务并重置。”错误很明确了因为防火墙服务未启动导致!但是,为什么其他 UWP Apps 却能够运行呢?而且使用其他账号又都无法运行呢?!

ps_reinstall_edge

        带着迷惑执行了 PowerShell 命令行对所有系统 UWP Apps 执行重装任务,命令行参考如下:

Get-AppXPackage -AllUsers |Where-Object {$_.InstallLocation -like "*SystemApps*"} | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}

        结果一致,同样提示因 Windows Firewall 服务未启动导致 UWP Apps 无法安装。检查 Windows Firewall 服务确实被禁用,重新启动后故障解除。

        其实这个过程还有另外一个版本,在发现故障的时候是在生产环境下,且之前交付的 Surface Pro 4 都是经过测试的,运行也有近一年突然出现这个问题,还是新装系统后,确实十分诡异!参考映像未有更新,故障现象均发生在加域之后,那必然与域环境有关,首先检查的就是 GPO,是否进行了限制,但经过分析发现是 Windows 防火墙服务启动被配置为禁用,恢复后故障消失,之后再禁用 Windows Firewall 服务进行测试,发现除了 Edge 外其他的 UWP Apps 均可正常运行,怀疑是系统 Bug 向微软开了 Case,引出前面提到的重装应用进行测试,确认 Powershell 命令行执行失败时提示的错误信息,因防火墙服务未运行是导致 UWP Apps 无法启动的根因。

        但该问题是否被确认为系统 Bug,还暂无结果。

win10creatorsupdate1703

HOWTO: 解决简体中文版Windows 10 IE主页和搜索被百度锁定的问题

        微软与百度达成合作,在简体中文版的 Windows 10 中内置了百度主页和搜索,当我们拿到一台装有 Windows 10的新电脑时启动浏览器会发现主页被重定向到了百度,而默认的搜索引擎也是百度。如果你不喜欢完全可以手工重新设定一次,便可改回自己喜欢的主页和搜索。

        但是对于企业IT人员在对Windows进行预定制时,可能会触发浏览器的保护策略。例如IT人员在Sysprep 的 Audit 模式下修改了IE的默认主页为企业内部站点,搜索改回Bing,这一切看起来都是很正常的。但此时如果将当前系统实例连接互联网,会发现再次打开浏览器时保护机制被触发了,系统会提示“由于默认搜索提供程序设置已损坏,Internet Explorer重置了你的默认搜索提供程序,要将默认搜索提供程序更改为Bing吗?”

1

        此外,还会提示“由于主页设置已损坏,Internet Explorer重置了你的主页,要将主页改为XXXX吗?

2

        接下来不论你如何选择,或是修改主页和搜索,都将无济于事,每次打开浏览器都会提示。分析了注册表发现了如下图的注册项”Protected - It is a violation of Windows Policy to modify. See aka.ms/browserpolicy“,确认是定制的主页和搜索触发了保护机制。(PS:百度相当有实力啊,可以让MS这么为他推广)

3

        不管怎样问题还是要解决的,用Procmon进行了抓包,发现了一些线索。当设置主页和搜索时会触发一个名为EUPP的注册表项,看内容其下的 BackupHomePage 和 BackupDefaultSearchScope 十分可疑,由于是16进制的HEX数据,Decode 后发现是加密的,所以无法得到具体的数据。

HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\EUPP

        之后也咨询了微软方面,确认了与 EUPP 有关,建议可以修改 DoNotAskAgain 为想要的 URL,并且还需要修改 Hosts 文件添加一条记录 “127.0.0.1 ieonline.microsoft.com”,便可解决 IE 被锁定并重复提示设置主页和搜索的问题。

win10creatorsupdate1703

HOWTO: 为Windows 10开始界面的程序添加 以其他用户身份运行

        Windows 10 Pro v1703 版在未加域前可以在开始界面上鼠标右键点击程序使用更多菜单下的“以其他用户身份运行”(run as a different user)来执行程序。这个功能使在加域的客户端环境下能快速的以不同的域账户身份或本地用户身份去运行一个程序,而无需切换桌面环境。例如安装了 RSAT 当要使用 ADUC 进行管理操作,而当前登录用户又没有对应权限时,就可以利用“以其他用户身份运行”,如下图所示。

RunAsADifferentUserInStart

        令 gOxiA 感到郁闷的是在实际的环境中,一旦客户端加入域后开始界面上的“以其他用户身份运行”就消失了,本以为是域组策略限制了使用,但实际并没有做任何限制。如果要启用这个功能可以通过域组策略进行预配,该选项位于 用户配置/策略/管理模板/“开始”菜单和任务栏/在“开始”中显示“以其他用户身份运行”,启用即可。

GPO-RunAsADifferentUserInStart

        如果无法实施域组策略,那么可以修改本地组策略,或注册表。但实际测试发现,当修改注册表重启计算机后功能虽然生效了,但是第二天貌似又会被覆盖掉。在咨询微软后了解到,虽然该选项属于用户配置,但可以在 HKLM 下创建对应的项和键,除了可以解决所有登录用户都能够在开始界面上显示”以其他用户身份运行“外,也可以避免设置被覆盖。(PS:是不是 Bug 目前不得而知!)

        下面是针对用户配置和计算机配置的对应路径和键值,可参考使用。

  • HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\Explorer
  • HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Explorer
  • Name: ShowRunAsDifferentUserInStart
  • Type: REG_DWORD
  • Data: 1

win10creatorsupdate1703

HOWTO: 解决因 ESENT ID49 WebCache 损坏导致的 IE 或 Office 异常故障

        企业环境中通常会使用经过定制的系统作为企业标准化系统映像,用于客户端的操作系统部署和安装。最佳实践中通常会再审计模式下复查或配置用户环境,之后通过启用 CopyProfile 将所有用户桌面统一。但是在审计模式下定制,或之后通过离线模式安装更新补丁,可能会因 WebCache 损坏,导致进程无法正常读写操作 WebCacheV01.dat 文件,从而引发其他用户登录系统后无法正常运行 IE 或 Office Outlook 等异常故障。

        例如在 Administrator 下封装系统打包为 WIM 后进行分发部署,客户端安装后执行后续配置任务,完成后使用域账号或其他本地账号登录,此时会发现点击 IE 图标运行 IE 后其程序界面并未显示,但在任务管理中能看到其进程存在。检查 CPU 和 内存 占用正常,应用和系统事件中没有其他错误或警告记录,唯一可疑的就是来源为ESENT,ID49的错误事件,其内容为 Administrator 对应目录下的 WebCacheV01.dat 损坏,如下图所示。

屏幕截图(1)

        在随后的排错中,在 IE 无运行界面,和 Outlook 挂起的状态下,删除 Administrator 用户配置文件后,所有程序立刻恢复正常,目前分析应与 ESENT 出现的 WebCache 损坏有关。

win10creatorsupdate1703

HOWTO: 使用命令行为 Windows 10 添加备份计划

        还记得 Windows 7 内置的“备份和还原”功能吗?是 Windows 自带的一款用于个人电脑备份和还原的数据备份工具,可根据用户需要创建一次性的系统备份映像,或制定一个备份计划,按照时间备份需要的数据文件。如果还不曾了解这个好功能,可以先看看 gOxiA 早期分享的文章“使用 Windows 备份功能保护硬盘数据”,之后的“使用 webadmin 自动恢复系统备份”则分享了如何利用命令行加参数快速恢复备份。

        虽然在 Windows 7 中备份和还原功能提供了命令行以及一组常用的参数,但是细心的朋友会发现其只提供了创建一次性备份的参数,而缺少重要的计划备份创建参数,这样不利用用户编写命令行脚本以实现自动化的备份需求。

win7_wbadmin

        从 Windows 8 开始”备份和还原”功能被淡化,微软推荐使用“文件历史记录”取而代之,但直至 Windows 10 ”备份和还原“功能仍被保留了下来,说明还是拥有一定用户群的。此外不同于 Windows 7 版,Wbadmin 的命令行参数得到了增强,支持创建或修改每日备份计划,这样将极大方便 IT 人员针对一些特殊用户或场景以命令行脚本方式自动为用户环境配置备份计划。该参数即“ENABLE BACKUP”,可以使用“wbadmin ENABLE BACKUP /?"获取详细的参数说明。

win10_wbadmin

        下面的命令行将创建一个每日11点和23点对指定目录且包含系统状态进行备份,并使用指定账号存储在网络共享的计划备份任务。

wbadmin enable backup -addtarget:\\backupshare\goxia-backup1 -include d:\personal,e:\sources -user:contoso\goxia -password:* -schedule:11:00,23:00 -quiet -allcritical

参考文档:

https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/wbadmin-enable-backup

ie_logo

深入探讨 网站想要使用你计算机上的程序打开Web内容

        gOxiA 因为工作需要最近在做与桌面虚拟化相关的技术内容,期间就遇到了“网站想要使用你计算机上的程序打开 Web 内容”的问题。具体是在用户安装 VDA 客户端后,通过 IE 访问 VDI 门户时会弹出这个提示,如下图所示。其实问题是比较简单的,为了避免下次再弹出提示框,我们通常会复选“不再对此程序显示此警告”,然后点击“允许”。这样在访问 VDI 门户后就会直接启动 VDA 客户端正常访问。

snipaste20170630_091127

        之后 gOxiA 又用 Microsoft Edge 访问测试了一下,会直接提示下载一个扩展名为 ICA 的文件,而这个 ICA 在当前系统上被注册为使用一个特定的应用程序打开。

snipaste20170710_093642

snipaste20170710_093721

        也就是说在整个访问过程中是浏览器下载了一个文件,然后由指定的应用程序打开它,当在 IE 浏览器环境下时可通过复选“不再对此程序显示此警告”然后“允许”来实现通过应用程序直接打开文件的操作,这样用户体验就会更顺畅。

        那么问题来了,用户说如果我复选了“不再对此程序显示此警告”,然后点击了“不允许”,可发现是误操作了该怎么办呢?该如何恢复呢?为此,gOxiA 检查了 IE 设置还真的不像禁用弹出窗口、或兼容性视图设置那样会有明确的设置选项且支持修改操作。由于通常也都是习惯于正确的操作,确实会忽略掉如果复选不再显示警告并点击了不允许会有什么结果。

        期间也有咨询过微软支持,但也没有准确的解答,无奈只能自己研究 。使用 Procmon 抓包来看看这一设置都做了什么操作?!

snipaste20170630_092434

        还挺轻松立刻就锁定了位置,当我们在弹出“网站想要使用你计算机上的程序打开Web内容”的警告窗体上,复选“不再对此程序显示次警告”,并点击“允许“后,iexplore 进程会在注册表的 “HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\Low Rights\ElevationPolicy\” 下生成一个新的 GUID 项,并写入该程序的相关键值。其中 AppPath 和 AppName 是容易理解的,也没有什么特殊之处,而 Policy 则是非常关键,默认键值为”3“。如果我们修改了这个值,例如:2,那么再下次访问时又会重新弹出警告让用户选择,只有值为3时才会默认通过安装的应用打开下载的 ICA,而不再弹出任何提示。此外,在重新复选并允许后 iexplore 进程并不会修改之前已经添加的项和对应的键值,而是会重新生成一个新的项,很有意思!

        接下来 gOxiA 又重新做了一次抓包,但这次操作是复选不再提示后不允许运行,但在抓包数据中分析发现,执行这一操作并不会写入任何设置。也就是说即使用户复选了不再提示,只要点击的是不允许,那么前面的复选设置是不会起到任何效果的。

        至此,答案已经出来,我们也不必担心用户是否会进行误操作,如果出现 IE 访问 VDI 门户没有启动 VDA 客户端的故障问题,那么直接从 VDA 下手排错即可,无需再在 IE 身上徘徊!

        后来微软支持也给找到了一篇文档,原来早在2009年时就有微软人士详细讲解过这个安全功能,具体可参考下面这篇 Blog :

https://blogs.msdn.microsoft.com/ieinternals/2009/11/30/understanding-the-protected-mode-elevation-dialog/

hero_edge_sufandesktop

HOWTO: 关闭 Surface Pro 4 屏幕自动旋转功能

        用户的需求总是各式各样,不可能完全满足,就在上周 gOxiA 遇到了一个“奇葩”的支持请求,一位 Surface Pro 4 用户希望不论在何时何地,何种姿态下,都不要自动旋转 Surface Pro 4 的屏幕,希望在连接键盘时就是一个笔记本电脑。

        这个需求其实也容易理解,用户使用习惯也好,强迫症也好,总之不希望屏幕在连接键盘时自动旋转。那么要解决这个问题禁用自动旋转不就行了,可事实是当 Surface Pro 4 在连接键盘后默认的横屏工作模式下“旋转锁定”是不可用的,必须旋转至竖屏后方能锁定。

RotationLock

        现在感觉到用户的需求“奇葩”了,咨询了 Surface 在线技术支持,人家解释说键盘连接不稳定,让重新连接键盘,可是那么多台都是这样吗?后来人家又改口说是设计使然,并且也没有关闭硬件功能的方案,还让把驱动卸载掉再试,gOxiA 也是只能放弃了!

        自己研究还是妥妥的,既然拔掉键盘能够关闭旋转锁定,那就先拔掉键盘,关闭旋转锁定后再接上键盘,OK!用户需求搞定。但是这个 Workaround 也有不足,前面讲过键盘连接后“旋转锁定”是不可用状态,那也意味着用户如果突然想启用屏幕自动旋转时不能不拔掉键盘重新设置。

win10creatorsupdate1703

HOWTO: 使用 Windows 10 内置命令管理设备驱动

        在 Windows 10 之前在线管理和维护设备驱动是相当困难的事情。对于IT专业人员如果需要批量导入并安装驱动,只能依赖第三方应用程序,或者事先编写执行脚本。虽然我们可以使用 DISM 来执行操作,但关键的操作命令还是只能对脱机系统映像有效,所以还是非常的繁琐!为什么会如此尴尬呢?因为 Windows 支持硬件设备的即插即用(PnP)特性,而这一特性是由本地系统映像中强大的驱动库(DriverStore)来支撑的,它位于 Windows 的 System32 目录下。当系统连接一个新的硬件后会从这个 DriverStore 中搜索驱动,当发现匹配的驱动后变化配置为硬件设备使用,而此时驱动会被复制到 Windows 的 System32 下的 Drivers 目录中,被设备实时加载,而设备所需的其他子配置文件或程序文件可能分布在系统的其他目录中。

WinHardwareDriverStore

        如果我们要安装驱动则需要使用设备管理器手工为硬件设备更新或安装驱动,也可以使用设备生产商提供的驱动安装程序来执行安装,但是对于一些 OEM 设备,尤其是笔记本来说,需要反复执行设备驱动安装操作十几次,也是相当令人崩溃的,即使像前面所讲使用第三方应用程序实现批量安装,但要实现自动化处理还是命令来的更实在。

        Windows 10 提供了两个内置命令用于设备驱动的管理和维护,DISM.exe 和 Pnputil.exe 。DISM 在系统在线(联机)状态下只支持导出驱动,如果要添加和删除驱动必须在系统脱机状态下进行。

  • DISM 添加驱动
    dism /image:c:\mount\offline /add-driver /driver:c:\drivers /recurse /forceunsign
    /recurse,遍历指定目录下的所有子目录,还是相当有用。
    /forceunsign,添加未签名的驱动,在 X64 系统上添加未经签名的设备驱动可以使用这个参数。
  • DISM 删除驱动
    dism /image:c:\mount\offline /remove-driver /driver:oem1.inf
    设备所安装的第三方驱动都会被重新按照 Oem0.inf,Oem1.inf,Oem#.inf 命名方式存储,而删除的时候亦是如此。要获取系统都安装了哪些驱动可使用 /get-drivers 参数。令我们感到悲催的是删除驱动不支持通配符,只能一条一条执行,或编写成批处理脚本。
  • DISM 导出驱动
    dism /online /export-driver /destination:c:\exportdrivers
    也只有导出驱动是可以在系统脱机和联机状态下进行的,这倒是十分方便。一般IT部门拿到新型号笔记本后通常会使用这个命令导出驱动。(PS:这个习惯要养成,因为厂商提供的打包驱动不一定会完整,这是真的!!!)

        注意,即使能够脱机状态添加驱动,但是所添加的驱动也只能用于未安装驱动的设备实现自动的驱动安装,即已经安装的驱动不会被自动更新和替换,除非你在设备管理器中手动执行更新,或通过 Windows Update 从微软获取最新的设备驱动。(PS:十分无奈!!!)

        DISM 在脱机 Windows 映像中添加和删除驱动程序的完整过程可参考微软官方提供的资料,这里就不再过多的讲解。

        参考资料:https://msdn.microsoft.com/zh-cn/library/windows/hardware/dn898469(v=vs.85).aspx

        接下来再说说 Pnputil.exe - Microsoft PnP 工具,在 Windows 10 之前,这个工具简直就是鸡肋,可实现的设备驱动操作非常的有限,它更像是 DriverStore 层的维护工具。因为对硬件的实时驱动根本起不到管理作用。直到 Windows 10 v1703 版,Pnputil 才算真正意义的即插即用硬件设备驱动管理工具。其主要特性是允许在系统联机状态下执行添加、安装、卸载、删除以及导出驱动的操作。前面提到过设备被识别后,驱动是实时加载的,此时是无法使用命令行在联机状态下删除驱动的。而 v1703 较 v1607 最大的改进是支持了 卸载 和 安装 参数,即除了对 DriverStore 层执行操作外,也可以对 Drivers 层执行操作。

  • Pnputil 卸载和删除驱动
    pnputil /delete-driver oem#.inf /uninstall /force
    /uninstall,卸载并删除驱动
    /force,强制执行即使设备驱动正在使用中
    /reboot,更具需要重启系统以完成操作
    注意:直至 Windows 10  v1703 仍旧不支持批量卸载和删除驱动。
  • Pnputil 添加和安装驱动
    pnputil /add-driver c:\oem\*.inf /subdirs /install
    /subdirs,遍历子目录
    /install,安装或更新驱动
  • Pnputil 导出驱动
    pnputil /export-driver * c:\driverbackup
    注意:导出驱动支持 * 通配符,也支持导出单个驱动 Oem1.inf,要枚举驱动可使用 /enum-drivers 参数。

        DISM 和 Pnputil 相比较,DISM 更适用于系统映像准备阶段方便日后分发,例如拿到一批新型号设备,可以导出 OEM 驱动,并准备一个测试用途的企业标准化系统映像,使用 DISM 将驱动导入脱机映像中,当映像被安装到这些新型号设备后便可自动识别和安装驱动到系统中。而 Pnputil 更适用于联机系统的维护,例如 IT 专业人员从厂商获取到设备的最新驱动包,可以使用 Pnputil 直接批量安装和更新设备驱动。利用这些命令,我们还可以编写灵活的脚本满足更多的应用场景。

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