使用Windows PowerShell实现常见网络命令

2008-9-22  选择字号:  | |
打印本文章
正在加载数据...

  PowerShell是Windows Server 2008中的专门为系统管理员设计的一个新特性,利用PowerShell可以在命令行下实现强大的功能。本文通过一些例子,介绍了PowerShell如何实现常见网络命令,最后通过一个组合例子,介绍了PowerShell的两大特点。

  如果要求我们的Windows网络管理员在进行每天的管理操作时,都采用命令行的字符界面的方式,估计大多数的Windows的管理员都将反对这种做法,因为Windows的命令行工具的功能一向都很薄弱。随着的Windows PowerShell的发布,这种情况将得以改变。PowerShell可以让管理员们在命令行界面下,做很多以前做不了的事情。

  在本文中,我们介绍如何使用PowerShell命令行来执行一些常见的网络功能。

  1.什么是PowerShell?

  PowerShell是Windows Server 2008的一个新特性。要安装PowerShell,你需要在新增功能向导中选择安装Powershell特征,一分钟左右即可完成安装,之后您就可以体会到惊人的命令行脚本语言。与Windows中其他脚本语言不同的是, PowerShell是专门为系统管理员设计的。Powershell需要用到.NET框架和cmdlets命令集。作为PowerShell的用户,您可以使用系统自带的cmdlets,也可以自定义cmdlets,扩展实现更强大的功能。

  一旦你安装了PowerShell,您可以在开始菜单->所有程序中看到Windows PowerShell 1.0这一项,点击其中的Windows PowerShell选项。这时,你就可以看到一个蓝色的CLI窗口,如下图所示:

PowerShell

  图1:Windows Powershell命令行窗口

  在每个提示行之前,都有一句:

命令

  时刻提醒你,目前正在PowerShell命令行中。

  现在让我们来看看如何使用PowerShell来完成一些常见的网络命令。

  2.列出服务器的IP地址

  在Windows 2008中使用以下命令行,可以列出服务器IP地址:

IP地址

  你可以看到类似以下的输出结果:

Windows PowerShell列出IP地址

  图2:使用Windows PowerShell列出IP地址

  从图2可以看到,该Windows 2008服务器的适配器有一个IPV4的地址和一个IPV6的地址。这个功能本身并不令人吃惊,你可以尝试加上其他脚本功能。

  此命令输出结果是一个数组,如果你只想看到IP地址,可以修改“select-Object”参数项,使其禁用IPV6,命令行如下:

IPV6

  你可以看到类似以下的输出内容:

IPV6

  图3:使用Windows PowerShell只列出IPV4的地址

  3.使用PowerShell列出网络适配器配置信息

  通过以下命令,可以显示网络适配器的基本配置信息:

配置信息

  上面的命令执行后,你可以看到类似以下的输出内容:

PowerShell显示网络适配器

  图4:使用PowerShell显示网络适配器配置信息

  4.使用PowerShell实现Pinging的功能

  虽然在PowerShell命令行仍然可以执行所有常规的Windows命令(如ping),但使用PowerShell的话,功能将更强大,你可以很方便地根据自己需要调整输出项。

  下面的例子中,使用Win32_PingStatus输出结果,并使用select-Object来对结果进行解析,使得最后输出结果仅显示输出的响应时间和状态代码。

  命令行如所示:

select-Object

  你可以看到类似以下的输出内容:

select-Object

  图5:使用PowerShell中的select-Object对Ping的结果进行解析

  5.Windows Powershell共享一个文件夹

  下面这个PowerShell命令,将目录C:\temp共享为 “davidtemp”:

PowerShell命令

  你也可以直接使用net share命令,来实现目录共享的功能,如下所示:

net share命令

  6.使用PowerShell实现复杂的网络命令

  如果你只是想用PowerShell技术来实现最基本的网络管理,您可能会觉得非常沮丧而不使用它了。因为,与其他任何脚本语言一样,PowerShell也有一个学习曲线。一旦你过了这个学习曲线,学会了如何使用PowerShell,你将从中获益。采用PowerShell将会大大节省你的时间,并提升效率。

  大多数PowerShell命令都有个“computername”参数。如果当我们将该参数指定为("."),则表示是本地主机 。然而,我们也可以指定该参数为任意IP地址或局域网中的计算机名,这样PowerShell脚本创建好后,不仅可以运行于本机,也可以运行在网络上的所有计算机。

  比如,我们想知道局域网中计算机名为Dell9400这个机器的网卡配置信息,可以使用以下命令:

网卡配置

  你可以看到类似以下的输出内容:

网卡配置

图6:使用Powershell列出远程计算机的网卡配置信息

  PowerShell有两个主要特点:  

  第一个特点在于能够获取远程计算机信息,这点从图6这个例子我们已经可以看出。

  另一个主要特点是能够过滤器输出,以及将一个命令的输出作为另一个命令的输入。看下面这个命令:

PowerShell

  上面这个命令,进行了3个步骤地操作:

  1)首先列出了3个IP地址和域名;

  2)这个列表中的3个数值,作为“ForEach-Object”的输入参数,对于每个数值,分别执行一次“Get-WmiObject”PingStatus命令,对每个IP地址或域名进行Ping操作;

  3)每次Ping的结果,作为输入参数,通过“select-Object”进行解析,只显示IP地址,远程响应时间和状态码三个字段。

  以下是输出结果:

PowerShell复合命令

  图7:PowerShell复合命令范例

  从这个例子中,我们可以看到PowerShell强大的地方。你可以通过组合,将将一个命令的输出作为另一个命令的输入,以完成系统管理的目的。

  7.小结

  Windows PowerShell功能非常强大。本文只是介绍了Powershell能够实现的一些功能,希望通过这些功能,能够激发你更多地去了解PowerShell。

  需要注意的是,虽然PowerShell是Windows Server 2008中的一个新特性,但是PowerShell并不是只能运行于Windows Server 2008中。在Windows XP、Vista或Server 2003中同样也可以使用PowerShell,只需要单独下载并安装一下PowerShell安装程序即可。

原文出处:http://tech.ccidnet.com/art/302/20080922/1576669_1.html
来源:赛迪网    作者:林善茂    
相关的专家答疑
Hyper-V Server 2008的图形化系统管理工具及简要操作,这是一款可爱的小巧的但绝对实用的小工具,通过GUI的方式来管理Hyper-V Server 2008系统的一些常见配置。
Hyper-V Server 2008发布有一些时间了,Hyper-V Server 2008可以说成是windows Server 2008 server core和Hyper-v角色的集合品,该如何管理?
在Windows Server 2008系统里如何提高文件搜索的效率?如何正确设置文件搜索选项?在本文中我们将一一为您解答。
不少朋友已经在不经意间与Windows Server 2008系统进行了亲密接触,在一段时间的接触之后,不知大家对该系统的文件搜索功能会有什么样的体会?
许多网络管理员常常会在局域网工作环境中,利用telnet命令来登录到远程工作站系统中进行远程控制操作,以便有效提高工作效率。不过……
在之前的专题里,我们学习了如何运行ESX Server以及它与免费的VMware Server的比较。在本专题中,我们将详细描述VMware ESX Server子操作系统性能的技巧。
随着VMware陆续推出新产品,越来越多的虚拟化管理更加关注在虚拟架构里的存储问题。虚拟化存储有哪些选择?如何提高存储效率?在配置存储的时候应该注意哪些事项?
Novell推出PlateSpin PowerConvert Version 7.0版本,新增备份与恢复功能,并扩充对多重平台的支持。那么如何安装PlateSpin PowerConvert?如何在具体环境中使用迁移和恢复功能?
最新更新
专家答疑
技巧
James E. Geis
使用两台非同步的或不同的服务器作为提供冗余的一种方式怎么样?但是由于增加了设备,容易引起管理混乱的问题。有没有更好的办法呢?
Anil Desai
使用虚拟硬盘(VHD)优劣势是什么?那么直接映射虚拟机到物理磁盘的优劣势呢?在具体的情况下如何进行选择?
Andrew Kurtz
虚拟机文件在VMware里如何处理?有识别虚拟机及其状态与位置的好用工具、标准做法或策略吗?您能比较追踪服务器信息与状态的方法吗?