zoukankan      html  css  js  c++  java
  • PowerShell2.0之维护网络(二)处理适配器配置

    在处理所有适配器的状态后,还可以查询每个网络适配器的详细配置信息。可以通过选择“控制面板”|“网络和共享中心”|“网络连接”选项,打开“网络连接”窗口。在其中显示每个适配器的详细信息并做相应调整,如图1所示。

    image

    图1 在“网络连接”窗口中查看每个适配器的详细信息

    创建名为“GetNetAdapterConfig.ps1”的脚本收集特定网络适配器的用于排错的详细信息,并且通过指定关键字仅返回有关网络适配器的特定配置信息,其代码如下:

    param($computer="localhost",$query,$help)

    function funHelp()

    {

    $helpText=@"

    DESCRIPTION:

    NAME: GetNetAdapterConfig.ps1

    Produces a listing of network adapter configuration information

    on a local or remote machine.

    PARAMETERS:

    -computer Specifies the name of the computer to run the script

    -help prints help file

    -query the type of query < ip, dns, dhcp, all >

    SYNTAX:

    GetNetAdapterConfig.ps1 -computerName WebServer

    Lists default network adapter configuration on a

    computer named WebServer

    GetNetAdapterConfig.ps1 -computerName WebServer -query IP

    Lists IPaddress, IPsubnet, DefaultIPgateway, MACAddress

    on a computer named WebServer

    GetNetAdapterConfig.ps1 -computerName WebServer -query DNS

    Lists DNSDomain, DNSDomainSuffixSearchOrder, DNSServerSearchOrder,

    DomainDNSRegistrationEnabled on a computer named WebServer

    GetNetAdapterConfig.ps1 -computerName WebServer -query DHCP

    Lists Index,DHCPEnabled, DHCPLeaseExpires, DHCPLeaseObtained,

    DHCPServer on a computer named WebServer

    GetNetAdapterConfig.ps1 -computerName WebServer -query ALL

    Lists all network adapter configuration information on a computer

    named WebServer

    GetNetAdapterConfig.ps1 -help ?

    Prints the help topic for the script

    "@

    $helpText

    exit

    }

    if($help) { "Printing help now..." ; funHelp }

    $class="win32_networkadapterconfiguration"

    $IPproperty="IPaddress, IPsubnet, DefaultIPgateway, MACAddress"

    $dnsProperty="DNSDomain, DNSDomainSuffixSearchOrder, `

    DNSServerSearchOrder, DomainDNSRegistrationEnabled"

    $dhcpProperty="Index,DHCPEnabled, DHCPLeaseExpires, `

    DHCPLeaseObtained, DHCPServer"

    if($query)

    {

    switch($query)

    {

    "ip" { $query="Select $IPproperty from $class" }

    "dns" { $query="Select $dnsProperty from $class" }

    "dhcp" { $query="Select $dhcpProperty from $class" }

    "all" {

    $query = "Select * from $class" ; `

    Get-WmiObject -Query $query | format-list * ;

    exit

    }

    DEFAULT {

    $query = "Select * from $class" ; `

    Get-WmiObject -Query $query ; exit

    }

    }

    }

    ELSE

    {

    $query = "Select * from $class" ; `

    Get-WmiObject -Query $query ; exit

    }

    Get-WmiObject -query $query | format-table [a-z]* -AutoSize

    该脚本使用param语句定义了3个参数,即-computer、-query及-help。其中设置-computer的默认值为localhost。如果用户未指定计算机,则默认返回本地计算机的网络配置。

    接下来针对帮助信息创建的funhelp函数用于输出帮助信息,当用户未输入参数或输入错误的参数时,调用该函数提示输入的错误及正确的输入。脚本中使用if语句检查$help变量是否存在,因为只有用户在调用脚本时指定了-help参数,该变量才会存在。随后初始化用于WMI查询的变量,这些变量的存在是为了便于在后面对命令行应用中实现灵活调用。在用户输入的参数中包括-query参数时,脚本将会调用switch语句判断$query变量值。并执行相应的操作,输出ip、dns、dhcp和所有条目的信息。在$query变量无输入的情况下还特别使用ELSE语句将WMI对象中的所有属性发送给Get-WmiObject cmdlet查询,在控制台输出当前计算机中的所有网络连接的信息。在代码的最后将Get-WmiObject cmdlet查询的结果通过管道传递给Format-Table cmdlet格式化输出,在使用Format-Tables时需要指定符合Get-WmiObject cmdlet输出代码格式的参数。该脚本的执行结果如图2和图3所示。

    image

    图2 查询当前主机DHCP信息

    image

    图3 未指定检索项默认会输出所有的网络适配器信息

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

  • 相关阅读:
    Github
    Vocabulary in Computer
    js中三种定义变量的方式const, var, let的区别
    Node.js-1
    JSON_in_js
    JSON快速入门
    Mysql tinyint长度为1时在java中被转化成boolean型
    maven上解决循环依赖、又不想新加第三模块的方法
    关于springboot和tomcat的服务能力做下简单的测试
    tomcat各个端口的作用
  • 原文地址:https://www.cnblogs.com/fuhj02/p/1942758.html
Copyright © 2011-2022 走看看