PowerShell维护Win2008服务器教程篇_Win2008服务器维护_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

PowerShell维护Win2008服务器教程篇

作者:黑客防线网安网站维护基地 来源:黑客防线网安网站维护基地 浏览次数:0

本篇关键词:PowerShellWin2008
黑客防线网安网讯:在日常工作中,管理员经常需要与操作系统进行交互。虽然交付的方式有很多种,对于对于服务器的维护来说,通过PowerShell来进行交互,是首选的方式。通常情况下,PowerShell可以提供强大的本地脚本语言。也即是说,脚
在日常工作中管理员经常需要与操作系统进行交互虽然交付的方式有很多种对于对于服务器的维护来说,通过PowerShell来进行交互,是首选的方式通常情况下,PowerShell可以提供强大的本地脚本语言。也即是说,脚本可以被移植到所有巴本的Windows操作系统中。由于大部分企业并不是很纯的2008应用环境。如可能只有一个域控制使用的是2008操作系统,其他服务器以及客户端采用的是其他低版本的操作系统,甚至采用的是非Windows操作系统。在这种情况下,通过PowerShell对应用环境进行维护,是首要的选择。在这篇文章中,笔者就谈谈这个PowerShell工具的使用技巧。

一、cmdlet来实现自定义的功能。

Cmdlet是Powershell的核心工具之一。这个工具跟传统的CLI Shell有点类,也是一种内置的命令。不过在可扩展性方面有本质的不同。Cmdlet通过将NET类编译为动态链接库,并在实际运行时加载到PowerShell工具中来实现。这也就是说,其实并没有固定的Cmdlet类。只要管理员有这个能力并且拥有相关的权限,就可以使用PowerShell的软件开发包来编写自定义的Cmdlet,从而实现自定义的功能。

由于不同的企业其应用环境千差万别。为此系统工程师往往可以通过这个工具来编写一些常用的管理命令。在需要使用时,直接调用即可。而不需要重新编写。对于一些带有很多参数的命令,或者命令脚本,就显得非常的方便。在使用这个功能时,笔者认为管理员需要注意如下内容。

一是语法上面的问题。Cmdlet始终以动词和名词来进行命名。注意,在动词与名词之间有连字符号来进行分隔。通常情况下,动词说明这个命令所需要执行的操作,而名词则代表的是操作的对象。举一个简单的例子:get-process。get是动词,表示取得;而Process是操作的对象,表示进程。

二是参数的问题。跟普通的CMD命令一样,在PowerShell中也可以带一些参数,来实现特定的功能,或者对显示的结果进行过滤。在实际工作中,通过参数可以简化显示的结果。而且PowerShell在参数这方面的功能比较强大,如其中的很多参数还可以使用通配符。如Get-Process W*。这表示显示所有以W开头的进程。

三是需要注意Cmdlet工具的一个局限性。当Cmdlet在执行命令时,一次只执行一个单独的命令。如果某个功能(如将某个文件复制到其他一个地方,然后再对这个原文件进行重命名)可能需要通过多个动作来完成,此时必须要通过两个命令来完成。不过有些功能的动作有可能有十几个命令构成,此时如果使用Cmdlet来实现的话,并不是很合适。在这种情况下,可能需要用到我们下面要介绍的脚本功能。

二、脚本执行批量的维护工作。

在谈到Cmdlet这个工具时,笔者强调过,其一次性只可以执行一个命令。如果要执行多个命令的话,则需要通过脚本来实现。其实这里谈的脚本,就是存放在硬盘中的一个文件。而这个文件中可能有多个Cmdlet指令。通过调用这个文件,可以让系统一次性同时执行多个命令,以完成特定的维护任务。

PowerShell指的脚本是一个以.PSL为扩展名的文件。系统工程师在需要时可以随时进行访问。这个脚本可以运行于PowerShell会话中。这里值得一提的是,制作好的脚本,还可以运行在普通的Cmd环境中。也就是说,脚本与Windows操作系统传统的CMD具有很好的兼容性。不过在调用掉本时,CMD环境还是有点区别。如果要从CMD命令提示符下运行PowerShell脚本,需要先做一个工作。即使用CD命令来更改脚本所在的目录位置,或者将这个脚本文件复制到特定的位置中。然后使用命令参数并制定要运行的脚本以运行PowerShell可执行文件。虽然如此,但是在大部分情况下,笔者还是建议在Powershell中来调用脚本。这可以避免路径不对的烦恼。在运行某个脚本时,系统工程师可以根据需要,决定是否需要使用参数。

三、函数可以对当前实例进行维护。

在其他编程语言中,都会有过程或者函数的方法。通过这种方式,可以实现某个特定的任务。如定期更新某组数据等等。在PowerShell中的函数,其实起到的也是这方面的作用。PowerShell的函数,提供了给命令列表分配名称的途径。在掌握这个功能时,笔者认为需要注意如下几点。

一是需要注意,函数与脚本之间的区别。函数也可以同时执行多个命令。他们两个之间的区别,主要对于实例的依赖关系。一般来说,每个Shell脚本都会自动启动Shell的新实例。而函数只会运行在同一个Shell的当前实例中。简单的说,就是一个脚本对应一个实例。而多个函数对应于一个实例。在实际工作中,这是系统工程师判断使用脚本还是函数的重要依据。另外,在有效性上也有所区别。命令行中定义的函数只会在当前的PowerShell会话期间有效,并且只处于局部作用域中。对于后续新的会话,并不生效。也就是说,如果要在所有会话中(特别是后续新添加的会话中也有效的话),就需要使用脚本,而不是函数。

二是重复利用的问题。虽然在命令行上定义的函数是在PowerShell环境中动态创建一系列命令集合的有效方法。但是需要注意,这些函数通常情况下只保存在内存中。当PowerShell关闭后者重新启动后会自动删除这些函数。这也就是说,函数并不会独立的保存在硬盘上,为此其可重复利用性比较差。在实际工作中,虽然有可能动态的创建复杂函数,但是我们往往不这么做。有经验的系统工程师会将函数保存在脚本文件中。然后通过调用脚本文件来调用自定义的函数。这就可以提高函数的可用性。

在使用函数这个功能时,主要是需要关注与脚本文件之间的差异,并明确函数是一次性的。当Powershell关闭时函数也就不存在了。在实际工作中,通常是将函数与脚本文件结合使用。通过文件的形式将函数固化下来,以实现重复调用的目的。

四、本地命令来调用系统的外部程序。

用过Cmd的用户知道,Cmd可以分为内部命令与外部命令。虽然外部命令不经常使用,但是其功能还是很强大的。在遇到一些特定的需求时,使用外部命令能够迅速的解决问题。其实在Powershell中,将程序分为内部程序与外部程序。如果需要调用外部程序的话,则需要通过本地命令来调用。本地命令包含操作系统可以运行的外部程序。在使用本地命令来调用外部程序时,需要注意如下内容。

一是运行本地命令的话,系统必须要创建新的进程。此时可能会影响系统的性能。如果进程数达到饱和的话,系统工程师还无法调用外部程序。故大部分情况下,这个命令并没有其他类型的PowerShell命令来的有效。
    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-7603-1.html
网站维护教程更新时间:2012-02-23 01:11:48  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer