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. NWERC 2013 - J (codeforces gym - 100405J)

    题目描述:给你一颗二叉树,保证每个点要么是叶子节点,要么有左右两个儿子.某些叶子节点上放着灯,请你移动最少的灯,使得整棵树平衡 对平衡的定义:对于树上的每个点左右儿子中灯数的差的绝对值≤1,那么这棵树 ...

  2. leetcode:查找

    1.  word ladder 题目: Given two words (start and end), and a dictionary, find the length of shortest t ...

  3. java 网络流 TCP/UDP

    一.ServerSocket java.lang.Object |-java.net.ServerSocket 有子类SSLServerSocket. 此类实现服务器套接字.服务器套接字等待请求通过网 ...

  4. 爬虫第一篇基本库的使用——urllib

    在Python2中有urllib2和urllib3两个库来实现请求的发送,在Pyhon3中则统一为urllib. urilib包含以下4个模块 request:最基本的请求模块,可以用来实现请求的发送 ...

  5. 数黑格有多少个,模拟题,POJ(1656)

    题目链接:http://poj.org/problem?id=1656 #include <stdio.h> #include <iostream> #include < ...

  6. 使用node.js + socket.io + redis实现基本的聊天室场景

    在这篇文章Redis数据库及其基本操作中介绍了Redis及redis-cli的基本操作. 其中的publish-subscribe机制应用比较广泛, 那么接下来使用nodejs来实现该机制. 本文是对 ...

  7. 1012: A MST Problem

    1012: A MST Problem 时间限制: 1 Sec  内存限制: 32 MB提交: 63  解决: 33[提交][状态][讨论版][命题人:外部导入] 题目描述 It is just a ...

  8. Spring任务执行器(TaskExecutor)

    Spring任务执行器(TaskExecutor)    Spring通州任务执行器(TaskExecutor)来实现多线程和并发编程,使用ThreadPoolTaskExecutor可实现一个基于线 ...

  9. 数据库MySQL基本介绍安装使用及文件导入导出

    1.数据库(data base) 1.1 简述 把文件存储在一台电脑上(服务器),其他电脑用户可以通过账号密码登陆,通过网络去访问这台电脑上的文件,但是由于每个人的数据是不同的,所以你只能通过自己的账 ...

  10. JavaEE 面试题总结

    一. JDBC 4 1. Java中访问数据库的步骤 4 2. Statement,PreparedStatement,CallableStatement的功能.特点. 4 3. 如何利用JDBC的A ...