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

原创 2011年01月16日 23:42:00

如果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://blog.csdn.net/fuhj02
版权:本文版权归作者和csdn共有
转载:欢迎转载,为了保存作者的创作热情,请按要求【转载】,谢谢
要求:未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任
个人网站: http://txj.lzuer.com/

相关文章推荐

PowerShell2.0之Windows排错(六)检查网络故障

网络故障对于用户来说是很复杂的问题,因为它可能涉及很多方面的知识,不容易查找和解决。 为检查网络故障,创建名为“GetActiveNicAndConfig.ps1”的脚本,其代码如下: param...
  • fuhj02
  • fuhj02
  • 2011年01月21日 23:35
  • 741

PowerShell2.0之Windows排错(四)检查启动服务

在Windows中有些服务随系统启动,如果其中的某个服务无法启动,则可能导致系统不稳定或其他不可预知的结果。如果服务出错,首先需要检查服务。将其按照启动类型排列。然后查找所有停止自动运行的服务,如图1...
  • fuhj02
  • fuhj02
  • 2011年01月19日 23:28
  • 692

PowerShell2.0之Windows排错(五)查看硬件问题

硬件问题并不一定都和硬件有关,只要工作负荷在设计的范围内,大部分电子设备都可以使用相当长的一段时间。为了硬件正常工作,需要安装相应的驱动程序。硬件厂商会为其驱动程序添加数字签名,添加数字签名的驱动都是...
  • fuhj02
  • fuhj02
  • 2011年01月20日 23:54
  • 782

PowerShell2.0之Windows排错(三) 检查设备驱动

       设备驱动和服务功能类似,可以自动运行并提供一定功能。只是设备驱动更接近于硬件底层,并不像服务那样容易发现和检查。设备驱动一旦出现问题,往往伴随某种设备功能的失灵,所以对于系统管理员来说检...
  • fuhj02
  • fuhj02
  • 2011年01月18日 15:54
  • 725

Problems Installing Windows Azure PowerShell Cmdlets 2.0 (Updaing)

When I download Windows Azure PowerShell Cmdlets 2.0 from http://wappowershell.codeplex.com/ . I try...

windows 7 与 PowerShell 2.0

2012.9.4 发布了 POWERSHELL 3.0 windows 7 与 PowerShell 2.0 windows 7 不需要下载安装 PowerShell 2.0 了,在w...
  • is2120
  • is2120
  • 2012年03月02日 18:00
  • 4012

PowerShell 2.0 实践(三)操作Windows服务

上一次我们学习了文件系统的操作,能够读取、写入基于文本的文件,搜索本地及远程文件、目录。本次我们来操作下Windows服务,首先来回顾一下Windows服务的基本概念: 测试脚本下载 本系...

PowerShell 2.0 实践(四)管理Windows进程

上一次我们对Windows服务进行了简单的管理,学习了获取本地及远程计算机上服务的方法,以及查找特定服务,开始、结束、暂停、恢复服务等操作。本次我们来关注一下Windows管理中另一个核心内容:进程管...

PowerShell 2.0 实践(六)管理Windows日志

上一次我们对Windows注册表进行了简单的管理操作,重在理解"项"和"值"的概念。练习了新建、修改、删除、查看注册表项、值的命令,此外,借助于.NET框架,我们同样可以远程管理注册表,前提是远程计算...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PowerShell2.0之Windows排错(一)启动故障排错
举报原因:
原因补充:

(最多只允许输入30个字)