TechTarget中国原创】

随着使用时间的越来越多,Windows服务器安装的系统文件可能会被损坏或损毁。管理员一般可以通过系统自带的System File Checker (SFC) 或者更健壮和强大的Deployment Image Servicing and Management (DISM)命令修复操作系统,而期间服务器不需要停机。

Windows System File Checker (SFC)和Deployment Image Servicing and Management (DISM)是能改变系统文件的管理员工具,因此它们必须在管理员命令窗口中执行。

首先是System File Checker

Windows SFC工具集可以对Windows桌面和服务器系统内所有被保护的系统文件进行扫描和验证其版本信息、文件签字和校验和。如果命令发现任何被保护的文件曾 经被串改过或者覆盖过,它会尝试从%systemroot%\system32\dllcache文件夹恢复该文件初始版本。所有SFC命令执行的动作都 会被记录在%Windir%\CBS\CBS.log文件里面。如果发现任何不可修复的错误,那么你需要调查所涉及的文件。你可以通过搜索关键词 “corrupt”来查看出现最多的问题。

Windows SFC command语法

C:\Windows\System32> sfc /scannow

/scannow指令表明了这个命令需要马上被执行。在服务器上大部分数据都正常的情况下,需要15分钟来完成这项任务——通常执行的过程中还需要消耗单颗CPU 60%-80%的资源。对于一个拥有多余4核CPU的服务器来说,这个命令对服务器性能的影响比较小。

有的时候,SFC不能成功将一些已经被更改的文件进行替换,这并不代表着出现了问题。举个例子,最近的Windows版本包含了显卡驱动的数据,这些数据会被认为是损坏的,但是出现问题的应该是Window文件系统而不是文件本身,所以并不需要修复什么。

如果SFC不能修复问题,试下Windows DISM

Windows DISM命令比SFC更加强大。它还能检查不同的文件资源库——%windir%\WinSXS文件夹,也被称为"component store"——并且可以从不同的潜在资源获得可替换的文件。命令行能够让你在诊断或者修复镜像问题之前,先使用一种更快的方式来检查镜像。

CheckHealth命令语法

C:\Windows\System32> dism /Online /Cleanup-Image /CheckHealth

即使在拥有很大容量系统盘的服务器上,这个命令通常也只需要花费少于30秒的时间并且不会消耗系统资源。除非发现了一些问题,否则命令会返回“No component store corruption detected.”的报告。如果命令发现了问题,这个版本的DISM报告只会告诉你它检查到了有损坏文件,但不会提供详细的信息。

如果发现了损坏文件?下一步可以试一下ScanHealth

C:\Windows\System32> dism /Online /Cleanup-Image /ScanHealth

在这个更详细版本的DISM镜像检查中,系统会报告损坏的组件存储,并且会表明是否能对其进行修复。如果发现了损坏文件并且可以修复,那么可以使用/RestoreHealth命令来操作,这个命令也同样作用于/online镜像或者不同的/source目标

RestoreHealth会替换损坏的组件存储条目

C:\Windows\System32> dism /Online /Cleanup-Image /RestoreHealth

C:\Windows\System32> dism /source:<spec> /Cleanup-Image /RestoreHealth

你可以使用之前的命令对正在运行的在线镜像轻松地进行文件替换。不过经常发生的是本地拷贝文件不可用,或者文件并不会比本地组件存储本身的内容更加正确。 在这种情况下,可以使用/source命令来指向一个Windows镜像文件——一个.wim文件或者一个.esd文件——或者一个拥有相同配置的已知、 完好工作的Winsxs文件夹,也可以是一个已知完好的同样机器的备份文件。默认的情况下,DISM命令会尝试从Microsoft下载页面去下载相应的 组件,你也可以通过/LimitAccess命令来关掉这个行为。如果需要知道关于/source命令的语法,可以到TechNet网站查看 “Repair a Windows Image”相关文章。

DISM是一款很强大的工具,它的功能远远超过了基本的镜像修复。笔者曾经试过将它和“瑞士军刀”做过对比来维护Windows镜像。Windows系统管理员会发现DISM非常复杂,有的时候充满挑战,但是总体来说还是值得一试的。

使用Windows SFC和DISM工具来解决服务器OS问题的更多相关文章

  1. Windows下mysql忘记密码的解决方法

    Windows下mysql忘记密码的解决方法 mysql5.0 http://www.jb51.net/article/21984.htm方法一: 1.在DOS窗口下输入 net stop mysql ...

  2. windows下使用远程工具登录虚拟机上的Linux、访问虚拟机上的服务 、端口转发、win7 telnet登陆虚拟机

    首先要清楚virtual box如何设置端口转发: 一篇文章: 如何使用VirtualBox进行端口转发 由于默认的方式是用NAT来做虚拟机网络的,因此如果从外网想访问虚拟机的应用会比较麻烦.以前一直 ...

  3. windows端口占用处理工具

    一.描述 笔者在最近使用tomcat时,老是会遇到这种端口占用的问题,便写了这个小的exe,用于解决windows下的端口占用问题. 好吧,其实是我实在记不住CMD下的那几行命令.这玩意的实现比较简单 ...

  4. Windows系统内存分析工具的介绍

      Windows系统内存分析工具的介绍(进程管理器,资源管理器,性能监视器, VMMap, RamMap,PoolMon) 微软官方提供多种工具来分析Windows 的内存使用情况,除了系统自带的任 ...

  5. Windows 上面优秀的工具软件推荐

    Windows 上面优秀的工具软件推荐 一.下载软件 1.速盘 - 度盘神器 简介: 使百度网盘保持全速下载免受限速困扰! 下载: speedpan 2.http下载工具 百度网盘破解下载器:prox ...

  6. 使用Windows下的git工具往github上传代码 踩坑记录

    使用Windows下的git工具往github上传代码 踩坑记录 背景 由于以前接触的项目都是通过svn进行版本控制,现在公司项目使用git,加上自己平时有一个练手小项目,趁着周末试着把项目上传到自己 ...

  7. Windows 的这款工具,有时让我觉得 Mac 不是很香

    上次写了个 cheat.sh 在手,天下我有,小伙伴们热情高涨,觉得这是一个没有杂质的好工具:也有小伙伴抱怨说对 Windows 用户不是特别友好 (其实用 curl API 是没啥问题的).为了「雨 ...

  8. 转:windows下命令行工具

    转自: http://www.cnblogs.com/haochuang/p/5593411.html Windows下CMD不好用,远没有Linux,或者一些SSH工具用起来方便.其实Windows ...

  9. Windows系统自带工具的 cmd 命令

    目标 与计算机高手无关,只是为了减少鼠标点击的次数,提高效率. 适用范围 Windows XP,Windows 7,Window 8 (在Windows 7 下验证通过.) 使用方法 在 “运行“ 对 ...

随机推荐

  1. Uva 10375 选择与除法 唯一分解定理

    题目链接:https://vjudge.net/contest/156903#problem/E 题意:已知 求:C(p,q)/C(r,s) 其中p,q,r,s都是10^4,硬算是肯定超数据类型的. ...

  2. php简单开启gzip压缩方法(zlib.output_compression)

    网上的教程基本是你抄我来我抄他,不外乎加头加尾或者自构函数两种写法.实际上每个php页面都要去加代码——当然也可以include引用,不过总显得略微麻烦   一般而言,页面文件开启gzip压缩以后,其 ...

  3. 解决Gearman 报sqlite3错误

    删除了系统原带的sqlite3 ,到官网上下一个源码,重新编译安装sqlite3. 如:把sqlite3安装到 /usr/local/sqlite3tar zxf sqlite3.xxxx.tar.g ...

  4. php图像处理插件imagick安装(仅适用于86位,php5.4非安全环境-16px)

    phpImageMagick-6.7.7-5-Q16-windows-dll(加测试代码,经测试,仅适用于86位,php5.4安全环境-16px) 下载地址:http://pan.baidu.com/ ...

  5. 通过redis实现的一个抢红包流程,仅做模拟【上】

    建议结合下一篇一起看 下一篇 数据结构+基础设施 数据结构 这里通过spring-data-jpa+mysql实现DB部分的处理,其中有lombok的参与 @MappedSuperclass @Dat ...

  6. git 学习笔记 window操作系统

    一.准备工作 1.设置好操作者和邮箱 $ git config --global user.name "Your Name" $ git config --global user. ...

  7. ios核心动画(基础动画)

    一.简单介绍 CAPropertyAnimation的子类 属性解析: fromValue:keyPath相应属性的初始值 toValue:keyPath相应属性的结束值 随着动画的进行,在长度为du ...

  8. 牛客小白月赛2 G 文 【模拟】

    链接:https://www.nowcoder.com/acm/contest/86/G来源:牛客网 题目描述 Sεlιнα(Selina) 开始了新一轮的男友海选.她要求她的男友要德智体美劳样样都全 ...

  9. java后台poi根据模板导出excel

    public class ExcelUtils { private static final String INSPECTIONRECORD_SURFACE_TEMPLET_PATH = " ...

  10. python核心编程2 第六章 练习

    6-2. 字符串标识符.修改例 6-1 的 idcheck.py 脚本,使之可以检测长度为一的标识符,并且可以识别 Python 关键字,对后一个要求,你可以使用 keyword 模块(特别是 key ...