1

我正在编写一个 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()

}
4

4 回答 4

9

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

没有这一点,这个单线将完成这项工作

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

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

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

于 2012-09-12T19:19:28.893 回答
7

Windows 8 和更高版本上的 PowerShell 3.0 附带一个Resolve-DnsNamecmdlet,可以获取以下信息:

(Resolve-DnsName $server_name)[0].IpAddress
于 2012-09-12T19:36:32.190 回答
0

只需使用:

Resolve-DnsName monServer | ? { # make selection here } | % { $_.IPAdress }  | select-object -first 1
于 2016-01-27T09:47:49.950 回答
0
#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 .\input\servers.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
于 2021-04-20T18:30:30.853 回答