ดึงข้อมูลการกำหนดค่า 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 ในโฟลเดอร์นั้น ภาพหน้าจอด้านล่างจะช่วยได้มาก



