我使用這個鏈接提供了以下建議文本列表獲取服務器名稱和IP: Experts-ExchangePowerShell的 - 從
我試圖把一臺服務器(主機名)列表,並保存在主機名和IP地址在.csv文件中。
使用以下Powershell代碼,我確實在結果窗格中看到了每臺服務器的主機名,但IP地址相同。
$servers = get-content "C:\TEMP\servers.txt"
$serversAndIps = "C:\TEMP\List_of_servers_with_ips.csv"
$results [email protected]()
foreach ($server in $servers) {
$results [email protected]()
$result = "" | Select ServerName , ipaddress
$result.ipaddress = [System.Net.Dns]::GetHostAddresses($server)
foreach($a in $addresses) {
"{0},{1}" -f $server, $a.IPAddressToString
}
$result.servername = $server
$results += $result
}
$results | export-csv -NoTypeInformation $serversandips
當我打開.csv文件,我得到這個:
"ServerName","ipaddress"
"Server_name_1","System.Net.IPAddress[]"
如果我運行這個PowerShell腳本,我可以得到主機名,並在結果窗格中正確的IP地址。我只需要知道如何將結果傳輸到.csv文件。
$servers = get-content "C:\TEMP\servers.txt"
foreach ($server in $servers) {
$addresses = [System.Net.Dns]::GetHostAddresses($server)
foreach($a in $addresses) {
"{0},{1}" -f $server, $a.IPAddressToString
}
}
有什麼建議嗎?
嘗試採取的是$結果= @()圈外的內部。 – mjolinor
@mjolinor我把它拿出來,現在我得到的所有主機名,但我仍然得到「Server_Name_1」,「System.Net.IPAddress []」 –
您正在存儲'[System.Net.Dns] :: GetHostAddresses($ server) 數組中的對象。如果您執行Get-Member,您將看到您的數組正在存儲System.Net.IPAddress類型的對象。你可能需要這樣做,而不是:$ result.ipaddress =([System.Net.Dns] :: GetHostAddresses($ server))。IPAddressToString – mortenya