ค้นหาเว็บไซต์

ดึงข้อมูลการกำหนดค่า IP ของ Windows Servers ทั้งหมดด้วย Get-NetIPServerInfo


ในบล็อกโพสต์นี้เป็นข้อมูลเกี่ยวกับเอกสารประกอบ คุณรู้การตั้งค่า IP ของเซิร์ฟเวอร์ Windows ของคุณหรือไม่? คุณมีเอกสารหรือไม่? ถ้าไม่คุณก็มาถูกที่แล้ว ฉันจะให้ฟังก์ชันขั้นสูงแก่คุณซึ่งช่วยให้คุณได้รับการกำหนดค่า IP ของเซิร์ฟเวอร์ทั้งหมดของคุณ ด้วย PowerShell มีอะไรอีกบ้าง?

ผลลัพธ์

เรามาพูดถึงเป้าหมายกันก่อน เราต้องการดึงที่อยู่ IP, อินเทอร์เฟซ, เกตเวย์เริ่มต้น และสุดท้ายแต่ไม่ท้ายสุดคือเซิร์ฟเวอร์ DNS ที่กำหนดค่าไว้ การตั้งค่าเซิร์ฟเวอร์ DNS นั้นอาจมีความสำคัญหากคุณวางแผนที่จะแทนที่ตัวควบคุมโดเมนของคุณด้วยอันใหม่และที่อยู่ IP ที่แตกต่างจากเซิร์ฟเวอร์เก่า

โปรดทราบว่าเซิร์ฟเวอร์ทั้งหมดควรเข้าร่วมในโดเมนเดียวกัน นี่คือการดำเนินการและในรูปแบบรายการ:


Get-NetIPServerInfo

…ในรูปแบบตาราง


Get-NetIPServerInfo | Format-Table -AutoSize

… ในรูปแบบ html


Get-NetIPServerInfo | ConvertTo-Html -As Table | Set-Content C:\servers.htm

คนดี. แล้วไงต่อไป? แน่นอนรหัส

รับ-NetIPServerInfo

# .SYNOPSIS
# Get-NetIPServerInfo gets the IP configuration of all domain joined Windows servers.

# .DESCRIPTION
# Uses Test-Connection to check if the server is powered on and reachable.

# .EXAMPLE
# Get-NetIPServerInfo | Format-Table -AutoSize

# .NOTES
# Author: Patrick Gruenauer
# Web: https://sid-500.com

function Get-NetIPServerInfo {

$getc=(Get-ADComputer -Filter 'operatingsystem -like "*server*"-and enabled -eq "true"').Name
$test=Test-Connection -Destination $getc -Count 1 `
-ErrorAction SilentlyContinue
$reach=$test | Select-Object -ExpandProperty Address
$result=@()

foreach ($c in $reach)

{
$i=Invoke-Command -ComputerName $c -ScriptBlock {

Get-NetIPConfiguration |
Select-Object `
-Property InterfaceAlias,Ipv4Address,DNSServer
Get-NetRoute -DestinationPrefix '0.0.0.0/0' |
Select-Object -ExpandProperty NextHop}

$result +=New-Object -TypeName PSCustomObject -Property ([ordered]@{
'Server'= $c
'Interface' = $i.InterfaceAlias -join ','
'IPv4Address' = $i.Ipv4Address.IPAddress -join ','
'Gateway' = $i | Select-Object -Last 1
'DNSServer' = ($i.DNSServer |
Select-Object -ExpandProperty ServerAddresses) -join ','

})

}
$result
}

วิธีการใช้งาน

คัดลอกโค้ดลงในเซสชัน PowerShell ISE ของคุณแล้วเรียกใช้โค้ด จากนั้นพิมพ์คำสั่งและสนุกกับมัน

หากคุณต้องการให้ฟังก์ชันนี้ใช้งานได้อย่างถาวร เพื่อให้ฟังก์ชันดังกล่าวปรากฏทุกครั้งที่คุณเริ่ม PowerShell คุณต้องสร้างโฟลเดอร์ใน C:\Program Files\WindowsPowerShell\Modules ตั้งชื่อมันว่า Get-NetIPServerInfo จากนั้นบันทึกโค้ดเป็นไฟล์ .psm1 ในโฟลเดอร์นั้น ภาพหน้าจอด้านล่างจะช่วยได้มาก

บทความที่เกี่ยวข้อง