• PowerShell2.0之Windows排错(一)启动故障排错


    如果Windows Vista和Windows Server 2008无法正常启动,则可以检查引导配置文件是否出现错误;另外可以检查启动服务及其依存性。Windows中的一些服务依赖于其他服务、系统驱动程序和组件的加载顺序。如果系统组件被停止或运行不正常,则依赖于它的服务会受到影响。

    (1)检查引导配置文件

    检查运行Windows Vista和Windows Server 2008的计算机引导配置文件通常可以为用户解决引导有关的问题,提供很多有价值的信息。类似引导分区、引导目录,以及Windows目录等信息往往都对排除故障很有用,大多数情况下通过VBS脚本获取这些信息需要花费很多时间。

    创建名为“DisplayBootConfig.ps1”脚本读取引导配置,其代码如下:

    param($computer="localhost", [switch]$help)

    function funHelp()

    {

    $helpText=@"

    DESCRIPTION:

    NAME: DisplayBootConfig.ps1

    Displays a boot up configuration of a Windows system

    PARAMETERS:

    -computer The name of the computer

    -help prints help file

    SYNTAX:

    DisplayBootConfig.ps1 -computer WebServer

    Displays boot up configuration of a computer named WebServer

    DisplayBootConfig.ps1

    Displays boot up configuration on local computer

    DisplayBootConfig.ps1 -help

    Displays the help topic for the script

    "@

    $helpText

    exit

    }

    if($help){ "Obtaining help ..." ; funhelp }

    $wmi = Get-WmiObject -Class win32_BootConfiguration `

    -computername $computer

    format-list -InputObject $wmi [a-z]*

    该脚本使用param语句定义了$computer和$help变量,前者的默认值为localhost。设置-help参数为switch,即在使用该参数时不需要提供额外信息,并且使用Get-WmiObject cmdlet从Win32_BootConfiguration WMI类中获取信息。如果需要,可以将$computer变量中的值提供给-computername参数。这样可以通过Get-WmiObject cmdlet连接到远程计算机,最终将返回的management对象传递给Format-List cmdlet。使用范围运算符(range operator)[a-z]*选择字符开头的属性,以过滤报告中的所有系统属性(因为系统属性均以下画线开头)。

    该脚本的执行结果如图1所示。

    image

    图1 获取Windows引导配置信息

    (2)检查启动进程

    在Windows Vista和Windows Server 2008系统中有部分程序伴随系统启动,它们以不同启动组的形式存在。很多恶意软件和病毒以这种形式启动,当操作系统启动出现问题时需要检查这些启动组。

    创建名为“DetectStartupPrograms.ps1”的脚本显示本地或远程计算机的自动运行程序的状态,并查看基本或完整的程序信息,其代码如下:

    param($computer="localhost", [switch]$full, [switch]$help)

    function funHelp()

    {

    $helpText=@"

    DESCRIPTION:

    NAME: DetectStartUpPrograms.ps1

    Displays a listing of programs that automatically start

    PARAMETERS:

    -computer the name of the computer

    -full prints detailed information

    -help prints help file

    SYNTAX:

    DetectStartUpPrograms.ps1 -computer WebServer -full

    Displays name, command, location, and user information

    about programs that automatically start on a computer named WebServer

    DetectStartUpPrograms.ps1 -full

    Displays name, command, location, and user information

    about programs that automatically start on the local computer

    DetectStartUpPrograms.ps1 -computer WebServer

    Displays a listing of programs that automatically start on a computer named WebServer

    DetectStartUpPrograms.ps1 -help ?

    Displays the help topic for the script

    "@

    $helpText

    exit

    }

    if($help){ "Obtaining help ..." ; funhelp }

    if($full)

    { $property = "name", "command", "location", "user" }

    else

    { $property = "name" }

    Get-WmiObject -Class win32_startupcommand -computername $computer |

    Sort-Object -property name |

    format-list -property $property

    该脚本中使用param语句定义了$computer、$full和$help变量,分别用于指定脚本作用的计算机及帮助信息。随后定义了两个switch参数,其中-full用于输出完整的启动程序信息;-help用于输出帮助信息。

    如果在脚本运行时提供了-full参数,则输出程序的名称、可执行文件、路径及用户名等信息;否则仅显示名称。脚本中通过调用Get-WmiObject cmdlet获得所有的自动运行程序,将结果对象用管道发送给Sort-Object cmdlet,同时分类属性名称。最后使用Format-List cmdlet选择由$property变量指定的属性输出,该脚本的执行结果如图2所示。

    image

    图2 执行结果

    作者: 付海军
    出处:http://fuhj02.cnblogs.com
    版权:本文版权归作者和博客园共有
    转载:欢迎转载,为了保存作者的创作热情,请按要求【转载】,谢谢
    要求:未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任
    个人网站: http://txj.lzuer.com/

  • 相关阅读:
    docker常用命令
    redis常用命令
    Spring boot redis自增编号控制 踩坑
    docker 安装 nginx
    Linux常用命令记录
    leetcode-120. 三角形最小路径和
    leetcode-229.求众数(二)
    leetcode-169.求众数
    冒泡排序学习笔记
    快速排序学习笔记
  • 原文地址:https://www.cnblogs.com/fuhj02/p/1937007.html
Copyright © 2020-2023  润新知