- PowerShell的 y CMD 允许详细的网络配置 Windows
- 使用脚本可以使重复性任务变得更容易并且实现配置自动化。
- 有多个 comandos 以及 Netsh、Get-NetIPConfiguration 或 New-NetIPAddress 等工具
- 除了IP之外,您还可以配置DNS,网关和计算机名称
在 Windows 中设置静态 IP 地址看起来像是图形环境中独有的任务,但事实上也可以从命令行快速有效地完成此任务。 CMD 作为 PowerShell 它们提供了强大的工具来修改计算机的网络设置,而无需浏览图形界面中的多个菜单。
此功能在服务器、非图形环境(例如 Server Core)或远程管理任务中尤其有用。在本文中,你将学习 如何从 CMD 或 PowerShell 分配静态 IP 地址,以及探索 Netsh 和 Sconfig 等替代方案以及脚本和自动化。
使用 PowerShell 配置 IP
PowerShell 允许您对网络配置进行详细且快速的更改。首先,必须获取可用网卡的当前信息。这可以通过以下命令实现:
Get-NetIPConfiguration
此命令显示网络接口的当前配置。要获取每个适配器的具体信息,可以使用:
Get-NetAdapter
这提供了适配器名称、连接速度或地址等详细信息 MAC.
要设置静态 IP,您需要使用以下 cmdlet:
New-NetIPAddress -IPAddress 192.168.1.101 -InterfaceAlias 'Ethernet' -DefaultGateway 192.168.1.1 -AddressFamily IPv4 -PrefixLength 24
此命令在以太网适配器上设置 IP 192.168.1.101,掩码为 255.255.255.0,网关为 192.168.1.1。
如果先前的配置已经存在,可以使用以下命令删除它:
Remove-NetIPAddress -IPAddress 192.168.1.101 -DefaultGateway 192.168.1.1
并配置 DNS 服务器:
Set-DnsClientServerAddress -InterfaceIndex 12 -ServerAddresses ('8.8.8.8','1.1.1.1')
使用 PowerShell 脚本实现自动化
避免每次都输入命令的一个非常有效的方法是使用 PowerShell 脚本,这在大规模部署中尤其有用。一个基本示例如下:
$direccionip = "192.168.1.101"
$prefijodered = "24"
$puertadeenlacegw = "192.168.1.1"
$dns = @("8.8.8.8", "1.1.1.1")
$interfaz = (Get-NetAdapter).ifIndex
New-NetIPAddress -IPAddress $ipaddress -PrefixLength $redprefix -InterfaceIndex $interface -DefaultGateway $gwgateway
设置DnsClientServerAddress-InterfaceIndex$interface-ServerAddresses$dns
此 脚本 批量配置 IP 和 DNS 服务器,方便管理多台计算机。您还可以在脚本中包含计算机名称更改:
$nombre = "Servidor01"
Rename-Computer -NewName $nombre -force
要运行此脚本,只需将其保存为 。Ps1 并以管理员权限从 PowerShell 运行它。
过程图像
使用图形工具可以最好地可视化此过程,但也可以通过输入以下命令从 PowerShell 监视它:
Get-NetIPAddress
Test-Connection google.com
第一个显示配置的 IP,而第二个执行 ping 来检查连接。
通过 CMD 或 PowerShell 使用 Netsh 进行配置
Netsh 是一种通过命令行配置网络的传统且仍然有用的工具。
查看当前接口配置:
netsh interface ipv4 show config
要设置静态 IP:
netsh interface ipv4 set address name="Ethernet0" static 192.168.100.6 255.255.255.0 192.168.100.253
配置主 DNS 和辅助 DNS:
netsh interface ipv4 set dns name="Ethernet0" static 1.1.1.1
netsh interface ipv4 set dns name="Ethernet0" static 8.8.8.8 index=2
或者使用命令 加 更为现代的是:
netsh interface ipv4 add dnsserver name="Ethernet0" address=1.1.1.1 index=1
netsh interface ipv4 add dnsserver name="Ethernet0" address=8.8.8.8 index=2
此方法在传统 CMD 和 PowerShell 中均有效,尽管对于复杂任务,Netsh 可能不如 PowerShell 灵活。
服务器核心的 Sconfig 实用程序
Windows Server Core 服务器没有图形界面,因此可以使用该工具 配置文件 可从 CMD 或 PowerShell 访问:
写 sconfig
然后按 Enter。将打开一个交互式菜单,其中包含更改网络设置、计算机名称、加入域等选项。
要更改 IP,请选择选项 8(网络设置),选择所需的卡,然后按选项 1。选择静态 IP 并填写所需数据:IP 地址、子网掩码和网关。
然后您可以使用选项 2 配置 DNS。
此方法对于快速服务器设置非常实用。
使用 WMI 和 CIM 进行高级配置
Windows 管理规范 (WMI) 和通用信息模型 (CIM) 是允许您使用详细方法从 PowerShell 操作设置的类。 这些工具可以简化复杂的任务,并允许您在深层次上实现网络管理自动化。
例如,获取所有活动 IP:
Get-CimInstance -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=$true | Select-Object -ExpandProperty IPAddress
查看所有属性:
Get-CimInstance -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=$true | Format-List
您还可以配置DNS:
$wql = 'SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled=True'
$args = @{ DnsDomain = 'miempresa.com' }
Invoke-CimMethod -MethodName SetDNSDomain -Arguments $args -Query $wql
释放或续订 DHCP 租约:
Invoke-CimMethod -ClassName Win32_NetworkAdapterConfiguration -MethodName ReleaseDHCPLeaseAll
Invoke-CimMethod -ClassName Win32_NetworkAdapterConfiguration -MethodName RenewDHCPLeaseAll
用于 IP 配置的经典 CMD
在较旧的计算机上或对于习惯使用经典 CMD 的用户,您可以使用该实用程序 的netsh 以及其他传统命令。 这些命令对于快速任务以及 PowerShell 不可用或不需要的环境仍然有用。
ipconfig /all
:查看所有当前设置。netsh interface ipv4 set address name="Ethernet" source=static address=192.168.1.10 gateway=192.168.1.1
:设置IP和网关。netsh interface ipv4 add dnsserver name="Ethernet" address=8.8.8.8 index=1
:添加DNS。
尽管不如 PowerShell 灵活,但它在基本脚本环境和兼容性至关重要的情况下仍然非常有用。
在许多专业环境中,在 Windows 中分配静态 IP 地址是一项必不可少的任务,尤其是对于需要固定地址来提供特定服务的服务器和计算机而言。正如您所见,您可以使用多种工具来完成此操作,从 PowerShell、Netsh 到 sconfig 实用程序。虽然每种方法都有其优势,但 PowerShell 以其自动化功能和丰富的配置深度脱颖而出。如果您正在管理网络或服务器,花时间掌握这些命令将为您省去很多麻烦,并有助于远程管理、部署和环境标准化。
对字节世界和一般技术充满热情的作家。我喜欢通过写作分享我的知识,这就是我在这个博客中要做的,向您展示有关小工具、软件、硬件、技术趋势等的所有最有趣的事情。我的目标是帮助您以简单而有趣的方式畅游数字世界。