2012-12-01 43 views
0

我想在啓動機器時獲得機器的ip add和hostname。我已經在vmware上用動態ip安裝了3個虛擬機。其格式爲: xxxx.xxxx.xxxx.xxxx。主機名。使用腳本獲取機器的ip add和hostname

+1

我建議你看看你正在使用VMware產品的文檔。 – arkascha

+1

你在虛擬機上運行什麼操作系統?在計算機上看到IP,還是需要在主機上運行腳本,而不是虛擬機? – nycynik

回答

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 
相關問題