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.
问问题
357 次
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 回答