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/

  • 相关阅读:
    JavaScript实现类的private、protected、public、static以及继承
    OSS网页上传和断点续传(STSToken篇)
    OSS网页上传和断点续传(OSS配置篇)
    Linq sum()时遇到NULL
    SQLSERVER事务日志已满 the transaction log for database 'xx' is full
    笔记本高分辨软件兼容问题,字体太小或模糊
    H5上传图片之canvas
    An error occurred while updating the entries. See the inner exception for details.
    无限级结构SQL查询所有的下级和所有的上级
    SQLserver 进程被死锁问题解决
  • 原文地址:https://www.cnblogs.com/fuhj02/p/1942758.html
Copyright © 2011-2022 走看看