当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 使用 Get-NetIPServerInfo 检索所有 Windows 服务器的 IP 配置

作者:精品下载站 日期:2024-12-14 20:38:16 浏览:14 分类:玩电脑

使用 Get-NetIPServerInfo 检索所有 Windows 服务器的 IP 配置


在这篇博文中,所有内容都是关于文档的。您知道 Windows 服务器的 IP 设置吗?你有文档吗?如果没有,那么您来对地方了。我将为您提供一个高级功能,使您能够获取所有服务器的IP配置。有了 PowerShell,还有什么?

输出

我们先来说说目标。我们想要检索 IP 地址、接口、默认网关以及最后但并非最不重要的配置的 DNS 服务器。如果您计划用新的域控制器替换域控制器并且使用与旧服务器不同的 IP 地址,则 DNS 服务器设置可能变得至关重要。

请注意,所有服务器应加入同一域。这是它的实际运行情况并采用列表格式:


Get-NetIPServerInfo

[玩转系统] 使用 Get-NetIPServerInfo 检索所有 Windows 服务器的 IP 配置

…以表格形式


Get-NetIPServerInfo | Format-Table -AutoSize

[玩转系统] 使用 Get-NetIPServerInfo 检索所有 Windows 服务器的 IP 配置

... html 格式


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

[玩转系统] 使用 Get-NetIPServerInfo 检索所有 Windows 服务器的 IP 配置

不错的。下一个是什么?当然有,代码。

获取 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://a-d.site

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 文件。下面的屏幕截图将会有很大的帮助。

[玩转系统] 使用 Get-NetIPServerInfo 检索所有 Windows 服务器的 IP 配置

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯