注:本文版权归IT专家网所有,未经授权请勿转载!
PowerShell并不是在Windows7中首次出现,现在已经是V2.0版本,对已经习惯了CMD的用户是否否需要使用PowerShell要看需要解决的具体问题,而PowerShell能否带给用户快捷高效的系统管理体验呢?笔者愿通过本文和大家分享自己的使用体验。
PowerShell并不是在Windows7中首次出现,现在已经是V2.0版本,对已经习惯了CMD的用户是否否需要使用PowerShell要看需要解决的具体问题,而PowerShell能否带给用户快捷高效的系统管理体验呢?笔者愿通过本文和大家分享自己的使用体验。
1、初步印象——并不眼生
和CMD一样,我们可在“开始”菜单中找到并运行PowerShell。当然,也可以在“开始”菜单的搜索框或者“运行”框中输入PowerShell,回车后即可进入命令行模式的界面。PowerShell的运行界面和CMD类似,只是窗口大小及文字、背景颜色等有所不同,对用户来说并不“眼生”。(图1)
2、善用帮助——简单上手
PowerShell在命令规范上和CMD相比还是有很大不同,应该来说命令的可读性更强,用户也更容易记忆。执行“get-command”会获取PowerShell提供的129个命令的信息,这些命令囊括了管理服务、进程、事件日志、证书、注册表以及使用WMI等系统管理的方方面面。(图2)
执行“get-help get-command”和获取特定命令的帮助信息,其中“get-command”是某一特定命令。另外,如果命令的帮助信息比较多,我们可使用“|”分屏显示,例如“get-command | more”。(图3)
就命令帮助,无疑PowerShell比CMD要丰富多了,而且PowerShell的命令参数也要比CMD下类似功能命令的参数要多,这样可便于对系统进行更多的控制。
3、浅尝辄止——功能强大
(1).通过别名来运行命令
PowerShell支持别名,对于某些比较难记的命令可设置简单的别名便于记忆。比如需要给“get-Process” 设置别名,就可以在PowerShell中输入“set-alias gp get-process”,其中gp为命令“get-process”的别名。按下回车后直接用gp就可以代替
“get-process”命令了。类似的我们可为系统中的工具设置别名,比如执行“set-alias np notepad”后,运行np就可打开记事本了。(图4)
“get-process”命令了。类似的我们可为系统中的工具设置别名,比如执行“set-alias np notepad”后,运行np就可打开记事本了。(图4)
(2).高效管理系统进程
PowerShell可以方便地查看和结束系统内的进程,这样不仅可以监控系统内的可疑进程,还可以轻松地将其关闭。要想查看当前系统的进程,在PowerShell中执行“get-process”即可,这样系统中进程的句柄、进程名、进程占用处理器时间、进程标识符(ID
)等就会显示出来。(图5)
)等就会显示出来。(图5)
如果要结束某个或多个进程.就需要记录下进程的唯一标识符, 在PowerShell中输入“stop-process”后根据提示输入一个或多个进程的lD。按下回车后进程即可被自动结束。(图6)
(3).强大的日志管理
PowerShell在日志管理方面非常强大,它可以访问所有的系统日志并更加用户需要进行排序或者筛选。比如PowerShell中执行“Get-EventLog security | more”会分屏显示但其系统的安全日志。执行“执行“Get-EventLog system -newest 50”返回最新50条系统日志。(图7)
下面列举一个稍微复杂一点的例子,比如从结果中搜索匹配事件ID为“1101”的事件日志可分别执行下面两条语句即可。
$e = get-eventlog -newest 500 -logname application
$e | where-object {$_.EventID -match "1101"}
(图8)
$e = get-eventlog -newest 500 -logname application
$e | where-object {$_.EventID -match "1101"}
(图8)
PowerShell比较有趣的一点,它不仅能够访问本地日志而且也能够访问和操作远程服务器中的日志。执行下列语句:
(new-object system.diagnostics.eventlog ("security","JP-pc")).entries | select
-last 10
会返回JP-PC的主机上的最新的10条安全日志。
(图9)
(new-object system.diagnostics.eventlog ("security","JP-pc")).entries | select
-last 10
会返回JP-PC的主机上的最新的10条安全日志。
(图9)
如果要清除JP-PC远程主机上的所有安全日志可执行:
(new-object system.diagnostics.eventlog("security","JP-pc")).clear()
再次执行(new-object system.diagnostics.eventlog ("security","JP-pc")).entries查看JP-PC上的所有安全日志都被删除。
(图10)
(new-object system.diagnostics.eventlog("security","JP-pc")).clear()
再次执行(new-object system.diagnostics.eventlog ("security","JP-pc")).entries查看JP-PC上的所有安全日志都被删除。
(图10)
总结:通过对PowerShell的初步认识,以及用其进行Windows 7系统管理的初步体验,可以看到PowerShell还是比较容易上手的,在功能上要比CMD强大得多。此外,PowerShell在脚本编写方面也更加灵活。虽然PowerShell完全取代CMD还需要时间,但用户掌握PowerShell无疑会极大地提升系统管理效率。
本文转自 koumm 51CTO博客,原文链接:http://blog.51cto.com/kofstart/287195
,如需转载请自行联系原作者