0

I would like to get ip add and hostname of machines when i start them. i already installed 3 virtual machine on vmware with dynamic ip . its form: xxxx.xxxx.xxxx.xxxx. hostname.

4

1 回答 1

0

尝试获取 Ipdata 功能:

Function Get-IPData {
#this function assumes admin credentials
[cmdletBinding()]
Param(
    [Parameter(Position=0,ValueFromPipeline=$True,ValueFromPipelineByPropertyName=$True)]
    [ValidateNotNullOrEmpty()]
    [Alias("name")]
    [string[]]$computername=$env:computername
)

Process {
    ForEach ($computer in $computername) {
        Write-Verbose "Querying $($computer.ToUpper())"
        Try 
        {
        #get NICS that are IP and DHCP enabled
         Get-WMIObject -Class win32_networkadapterconfiguration -computername $Computer `
        -Filter "IPEnabled='TRUE' AND DHCPEnabled='TRUE'" -ErrorAction "Stop" | 
        Select Description,DNSHostname,
        @{Name="IPAddress";Expression={$_.IPAddress[0]}},
        @{Name="SubnetMask";Expression={$_.IPSubnet[0]}},
        @{Name="DefaultGateway";Expression={$_.DefaultIPGateway[0]}},DNSDomain,
        @{Name="PrimaryDNS";Expression={$_.DNSServerSearchOrder[0]}},DHCPServer,
        @{Name="DHCPLease";Expression={$_.ConvertToDateTime($_.DHCPLeaseObtained)}},
        @{Name="DHCPExpires";Expression={$_.ConvertToDateTime($_.DHCPLeaseExpires)}},
        @{Name="DHCPTimeToLive";Expression={ $_.ConvertToDateTime($_.DHCPLeaseExpires) - (Get-Date)}},
        MACAddress,
        @{Name="Speed";Expression={
        #use an Associators Of query to get the NIC
          $nic=Get-WmiObject -query "associators of {Win32_NetworkAdapterConfiguration.Index=$($_.index)}" -computername $computer
          $nic.Speed
          }}
    } #close Try
    Catch
        {
            Write-Warning "Failed to retrieve IP configuration from $($computer.ToUpper())"
            Write-Warning $_.Exception.Message

        } #close Catch
    } #close ForEach
 } #close Process
} #end function
于 2012-12-03T05:16:22.230 回答