perform nslookup from PowerShell



我正在编写一个powershell来从服务器名称中精确获取ip,这需要我将nslookup代码嵌入到我的powershell 中

我该怎么做综合工作?

有人能帮我吗?

Add-PSSnapin Microsoft.SharePoint.PowerShell
$web = Get-SPWeb -Identity “http://nycs00058260/sites/usitp“
$server_status = "PROD"
$list=$web.Lists[”DNS_Status”]
$items = $list.items 
Foreach($item in $items){
    $item_name = $item["Server_name"]  #need to get the ip by this name
    /*nslook up*/
     $item_name.update()
}

如果安装PSCX模块,它会附带一个处理名称查找的cmdlet Resolve-Host

如果没有这一点,这艘班轮将完成的任务

[System.Net.Dns]::GetHostAddresses("www.msn.com")

您也可以传入一个IP地址,但结果会有所不同。

另请参阅http://blogs.msdn.com/b/powershell/archive/2006/06/26/647318.aspx&http://powershell.com/cs/media/p/210.aspx

Windows 8及更高版本上的PowerShell 3.0附带了Resolve-DnsName cmdlet,该cmdlet将获取以下信息:

(Resolve-DnsName $server_name)[0].IpAddress

简单使用:

Resolve-DnsName monServer | ? { # make selection here } | % { $_.IPAdress }  | select-object -first 1
#Here is a far better method for nslookup
# HOWTO ensure an nslookup results no errors but still gives the original names and column separations
$day = Get-Date -Format yyyyMMdd #<-- HOWTO set the day variable for today
$ErrorActionPreference = ‘SilentlyContinue’ #<-- HOWTO turn off error messages
$WarningActionPreference = 'SilentlyContinue' #<-- HOWTO turn off warning messages
$servers = Get-Content .inputservers.txt
Foreach ($server in $servers){
$result = Resolve-DnsName $server -Server $env:LOGONSERVER.Remove(0,2) -Type ALL #<-- NSLOOKUP using your logon server
write-host ($server+","+$result.Name+","+$result.IPAddress) #<-- HOWTO Write two variables separated by a comma
}
$ErrorActionPreference = ‘SilentlyContinue’ #HOWTO turn on error messages
$WarningActionPreference = 'SilentlyContinue' #HOWTO turn on warning messages

最新更新