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. 笨办法学Python(二十七)

    习题 27: 记住逻辑关系 到此为止你已经学会了读写文件,命令行处理,以及很多 Python 数学运算功能.今天,你将要开始学习逻辑了.你要学习的不是研究院里的高深逻辑理论,只是程序员每天都用到的让程 ...

  2. GL格式一览表

  3. Altium_Designer-怎么将“原理图的更改”更新到“pcb图”?

    打开原理图,直击菜单栏>>Design,选择第一项,>>Update PCB Document...在弹出的对话框里面选择执行更改即可将原理图更新到工程下面对应的PCB.也可以 ...

  4. Leetcode 78. Subsets (backtracking) 90 subset

    using prev class Solution { List<List<Integer>> res = new ArrayList<List<Integer&g ...

  5. 【JavaScript 封装库】BETA 3.0 测试版发布!

    /* 源码作者: 石不易(Louis Shi) 联系方式: http://www.shibuyi.net =============================================== ...

  6. Poj(2240),Floyd求汇率是不是赚钱

    题目链接:http://poj.org/problem?id=2240. Floyd算法修改一下,我要最大路径(通过转汇率变到最大)改成max. #include <iostream> # ...

  7. ceph-文件存储

    文件存储 ceph文件系统提供了任何大小的符合posix标准的分布式文件系统,它使用Ceph RADOS存储数据.要实现ceph文件系统,需要一个正在运行的ceph存储集群和至少一个ceph元数据服务 ...

  8. kernighan lin算法

    这个算法主要用在网络节点的分割.他的思想是将一个网络节点图分割成两个相等的节点集合.为了连接两个社区的边权最小. step1:随机产生两个节点的集合A和B. step2:计算A和B中的每个节点的int ...

  9. 9、SpringBoot+Mybatis整合------动态sql

    开发工具:STS 前言: mybatis框架中最具特色的便是sql语句中的自定义,而动态sql的使用又使整个框架更加灵活. 动态sql中的语法: where标签 if标签 trim标签 set标签 s ...

  10. spring-bean(全生命周期)

    作用:在初始化和销毁bean时候,做一些处理工作是调用生命周期方法 格式: <bean id=”该生命周期的名称” class=”提供方法的类的全路径” init-methood=”init” ...