logo_winserver2012_thumb[1]

Windows Server 2012 Essentials 因执行 SFC 引发的 RWA 访问故障

        前端时间在测试 RDS,所以在现有生产环境内部署了一台 RDS,访问都很正常,计划将其发布到外网已方便从 Internet 上直接访问,所以需要 RDG(Remote Desktop Gateway),而当前环境下的域控是基于 Windows Server 2012 Essentials(WS2012Ess)的,默认启用了 RWA,也就能够提供 RDG 的角色。

        当在 RDS 上添加这台 WS2012Ess 作为 RDG 时遇到了错误,提示“无法执行操作,因为操作 ResetRunspaceState无效……”,排错无果向 MSFT 提交了 Case,具体细节不再叙述,只提重点!按工程师的建议对 WS2012Ess 执行了dism /online /cleanup-image /checkhealth、/scanhealth、/restorehealth,以及 sfc /scannow 检查和修复的操作,当时也确实发现了问题并得到了修复,最后在此配置 RDS 便成功了。

Screenshot_2014-04-12-00-08-37

        RDS 是好了,但没想到 RWA 又出了故障,第二天才发现用户在访问 RWA 时报错“未能加载文件或程序集 WSSg.Web.Internal, Version=6.2.0.0, Culture=neutral, PublickKeyToken=31bf3856ad364e35 或它的某一个依赖项。系统找不到指定的文件”。

ESS1

        使用 WS2012Ess 仪表板对 RWA 进行了修复,但总是失败!只得求助搜索引擎,没想到这个问题还真的有解,并且还是已知问题。

ess2

        KB2828269 描述了这一问题,并提供了解决方案,只需执行如下 PowerShell 命令行即可。

$BinDir = [System.Environment]::ExpandEnvironmentVariables("%programfiles%\windows server\bin")

$WebDir = [System.Environment]::ExpandEnvironmentVariables("%programfiles%\windows server\bin\WebApps")

$WebDir = get-childitem $WebDir –recurse

$List = $WebDir | where {$_.name -eq "web.config"}

foreach($listItem in $List){ if($listItem.DirectoryName -match "MacWebService") {continue;} ($a= Get-Content $listItem.FullName); $a = $a -replace "%SBSPRODUCTBINPLACEHOLDER%", $BinDir; remove-item $listItem.FullName; $f = [io.path]::Combine($listItem.DirectoryName, "Web.config"); $a >> $f}

Windows-8-Logo-Large

Windows 8.1 版本及功能对比

  • Windows 8.1 版本介绍

        Windows 8.1 包含 Windows 8.1、Windows 8.1 专业版和 Windows 8.1 企业版 3个版本。其中 Windows 8.1 企业版主要面向企业及政府机构的更高级需求,通过IT管理及架构提升核心竞争力。而 Windows 8.1 专业版面向企业及政府机构,提供更好的信息安全保障及有效的IT管理基础。Windows 8.1 则面向广大消费者及家庭用户。

image

        Windows RT 8.1 是一款专为基于 ARM 架构移动设备而设计的 Windows 产品,独立于以上 Windows 8.1 产品系列;仅通过品牌计算机厂商(OEM)预装方式提供,不能单独购买或通过批量许可方式获取。

  • Windows 8.1 各版本关键功能对比

image

原始链接:http://www.microsoft.com/business/zh-cn/local/Pages/products/os/Windows8/chanpingongneng03.aspx

Windows-8-Logo-Large

Windows 8.1 Update 以 WIMBoot 方式进行安装

        在大家学习了 Windows 8.1 Update 创建 WIMBoot 映像,并将 Windows ADK 的 WinPE 5 升级到 WinPE 5.1,WIMBoot 的安装准备工作就算全部就绪了!接下来我们就需要准备实验环境来进行 WIMBoot 的安装测试,这里强烈推荐大家使用最新的 Hyper-V,其二代虚拟机技术支持 UEFI(实际测试基于BIOS 的 MBR 环境也同样可以实现 WIMBoot)。

        开始前再来回顾一下 WIMBoot 概述,本例将参考官方推荐的方式进行实验。在 Hyper-V 下创建一台基于二代技术的虚拟机,内存分配 2GB,磁盘分配 16GB,将采用 GPT 格式,并创建 ESP、MSR、Windows 和 images 分区卷,具体的操作步骤稍后奉上。

wimboot-review

        现在将准备好的 WinPE 5.1 和支持 WIMBoot 的 Install.wim 打包成一个 ISO 文件,便于虚机载入使用。如果已经参考 gOxiA 之前的文章 WinPE 5 升级到 WinPE 5.1,执行了相关的操作,那么可以直接将 install_wimboot.wim(支持 WIMBoot 的系统映像)和 winre.wim(恢复工具映像)拷贝到“C:\winpe_amd64\media\sources”目录下,并使用下面的命令行生成 ISO。

makewinpemedia /iso c:\winpe_amd64 c:\winpe_amd64\wimboot.iso

        首先,载入 wimboot.iso 启动虚机,使用 diskpart 为磁盘分区,为此执行下面的命令行。

diskpart

sel disk 0

clean

convert gpt

create partition efi size=100

format quick fs=fat32 label=system

create partition msr size=128

create partition primary

shrink minimum=10000

format quick fs=ntfs quick=windows

assign letter=c

create partition primary

format quick fs=ntfs label=images

assign letter=m

set id=”de94bba4-06d1-4d40-a16a-bfd50179d6ac”

gpt attributes=0x8000000000000001

exit

diskpart

        然后,将 install_wimboot.wim 拷贝到 images 分区卷,并执行 WIMBoot 安装,为此执行下列命令行。

md m:\windowsimages

copy d:\sources\install_wimboot.wim m:\windowsimagesinstall.wim

dism /apply-image /imagefile:m:\windowsimages\install.wim /applydir:c: /index:1 /wimboot

apply_wimboot

        WIMBoot 的安装其实很简单,就是在释放映像时多加了一个参数。现在我们需要为系统创建启动数据,为此执行如下命令。

c:\windows\system32\bcdboot c:\windows /l zh-ch

        现在,再将 winre.wim 也拷贝到 images 分区卷,并将这个 winre.wim 注册到当前系统中。这么做的目的显而易见,因为恢复工具存储在一个隐藏的分区卷(OEM)中,得到了有效的保护,为此执行如下命令行。

md m:recoverywindowsre

xcopy d:\sources\winre.wim m:\recovery\windowsre\winre.wim /h[code]

[code]c:\windows\system32\reagentc /setreimage /path m:\recovery\windowsre /target c:\windows

reagentc_winre

        为了进一步的保护系统映像文件,我们可以使用 icacls 命令为所在目录进行安全性配置。

icacls m:\windowsimages /inheritance:r /T

icacls m:\windowsimages /grant:r SYSTEM:(r) /T

icacls m:\windowsimages /grant:r *S-1-5-32-544:(r) /T

        OK,现在我们重启虚机体验一下 WIMBoot,系统初始化结束后进入 OOBE 阶段,与传统过程一致,跟随向导完成操作即可进入系统。打开资源管理显示隐藏和系统文件,再打开系统盘的属性看看,大概占用了不到 3GB 的空间,如果我们关闭虚拟内存还能回收回来更多的空间容量。

wimboot_view

        在用户看来当前系统盘与传统系统盘并无区别,但是系统盘相关的目录和数据都通过指针进行了重定向。来看看这有意思的地方,查看 Windows 目录属性,会发现其目录显示占用近 11GB 的容量。

wimboot_view_2_1

        之后,gOxiA 还做了恢复实验,即执行:恢复电脑而不影响你的文件。恢复后的系统只有 Windows.old 目录实际占用系统卷的空间。

wimboot_view_4

        WIMBoot 也可以使用单卷的方式来安装,即映像和系统都放在一个卷里。虽然在系统运行状态下,映像文件并不能被修改或删除,但这种方式并不推荐,只是为了方便测试,减少操作步骤罢了!

WIMBoot_Demo1

        微软官方虽然要求 WIMBoot 需使用 UEFI 方式启动,并使用 SSD 或 eMMC 存储,但实际测试并非如此。下图就是基于 BIOS 的 MBR 环境运行的 WIMBoot。

wimboot_view_x86

参考文章:

Deploy WIMBoot Images: If you know the size of the images upfront:http://technet.microsoft.com/zh-cn/library/dn605112.aspx

使用部署脚本应用 Windows、系统和恢复分区:http://technet.microsoft.com/zh-cn/library/hh825089.aspx

使用 Windows ADK 进行 Windows 部署:http://technet.microsoft.com/zh-cn/library/hh824947.aspx

分页: 115/478 第一页 上页 110 111 112 113 114 115 116 117 118 119 下页 最后页 [ 显示模式: 摘要 | 列表 ]