[玩转系统] 执行网络任务
作者:精品下载站 日期:2024-12-14 03:02:37 浏览:11 分类:玩电脑
执行网络任务
该示例仅适用于Windows平台。
由于 TCP/IP 是最常用的网络协议,因此大多数低级网络协议管理任务都涉及 TCP/IP。在本节中,我们使用 PowerShell 和 WMI 来执行这些任务。
列出计算机的 IP 地址
要获取本地计算机上使用的所有 IP 地址,请使用以下命令:
Get-CimInstance -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=$true |
Select-Object -ExpandProperty IPAddress
由于 Win32_NetworkAdapterConfiguration 对象的 IPAddress 属性是一个数组,因此必须使用 Select-Object
的 ExpandProperty 参数查看完整的地址列表。
10.0.0.1
fe80::60ea:29a7:a233:7cb7
2601:600:a27f:a470:f532:6451:5630:ec8b
2601:600:a27f:a470:e167:477d:6c5c:342d
2601:600:a27f:a470:b021:7f0d:eab9:6299
2601:600:a27f:a470:a40e:ebce:1a8c:a2f3
2601:600:a27f:a470:613c:12a2:e0e0:bd89
2601:600:a27f:a470:444f:17ec:b463:7edd
2601:600:a27f:a470:10fd:7063:28e9:c9f3
2601:600:a27f:a470:60ea:29a7:a233:7cb7
2601:600:a27f:a470::2ec1
使用 Get-Member
cmdlet,您可以看到 IPAddress 属性是一个数组:
Get-CimInstance -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=$true |
Get-Member -Name IPAddress
TypeName: Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_NetworkAdapterConfiguration
Name MemberType Definition
---- ---------- ----------
IPAddress Property string[] IPAddress {get;}
每个网络适配器的 IPAddress 属性实际上是一个数组。定义中的大括号表示 IPAddress 不是 System.String 值,而是 System.String 值的数组。
列出 IP 配置数据
要显示每个网络适配器的详细 IP 配置数据,请使用以下命令:
Get-CimInstance -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=$true
网络适配器配置对象的默认显示是一组非常精简的可用信息。要进行深入检查和故障排除,请使用 Select-Object
或格式化 cmdlet(例如 Format-List
)来指定要显示的属性。
在现代 TCP/IP 网络中,您可能对 IPX 或 WINS 属性不感兴趣。您可以使用 Select-Object
的 ExcludeProperty 参数来隐藏名称以“WINS”或“IPX”开头的属性。
Get-CimInstance -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=$true |
Select-Object -ExcludeProperty IPX*,WINS*
此命令返回有关 DHCP、DNS、路由和其他次要 IP 配置属性的详细信息。
对计算机执行 Ping 操作
您可以使用 Win32_PingStatus 对计算机执行简单的 ping。以下命令执行 ping,但返回冗长的输出:
Get-CimInstance -Class Win32_PingStatus -Filter "Address='127.0.0.1'"
摘要信息的更有用的形式是显示地址、响应时间和状态代码属性,如以下命令生成的。 Format-Table
的 Autosize 参数调整表列的大小,以便它们在 PowerShell 中正确显示。
Get-CimInstance -Class Win32_PingStatus -Filter "Address='127.0.0.1'" |
Format-Table -Property Address,ResponseTime,StatusCode -Autosize
Address ResponseTime StatusCode
------- ------------ ----------
127.0.0.1 0 0
StatusCode 为 0 表示 ping 成功。
您可以使用阵列通过单个命令对多台计算机执行 ping 操作。由于地址不止一个,因此使用 ForEach-Object
分别 ping 每个地址:
'127.0.0.1','localhost','bing.com' |
ForEach-Object -Process {
Get-CimInstance -Class Win32_PingStatus -Filter ("Address='$_'") |
Select-Object -Property Address,ResponseTime,StatusCode
}
您可以使用相同的命令格式来 ping 一个子网上的所有地址,例如使用网络号 192.168.1.0 和标准 C 类子网掩码 (255.255.255.0) 的专用网络,只能 ping 192.168 范围内的地址。 1.1 到 192.168.1.254 是合法的本地地址(0 始终保留用于网络号,255 是子网广播地址)。
要在 PowerShell 中表示 1 到 254 之间的数字数组,请使用表达式 1..254
。通过将范围内的每个值添加到 ping 语句中的部分地址,可以执行完整的子网 ping:
1..254| ForEach-Object -Process {
Get-CimInstance -Class Win32_PingStatus -Filter ("Address='192.168.1.$_'") } |
Select-Object -Property Address,ResponseTime,StatusCode
请注意,这种生成地址范围的技术也可以用在其他地方。您可以通过以下方式生成完整的地址集:
$ips = 1..254 | ForEach-Object -Process {'192.168.1.' + $_}
检索网络适配器属性
之前,我们提到您可以使用 Win32_NetworkAdapterConfiguration 类检索常规配置属性。虽然不是严格意义上的 TCP/IP 信息,但网络适配器信息(例如 MAC 地址和适配器类型)对于了解计算机的运行情况非常有用。要获取此信息的摘要,请使用以下命令:
Get-CimInstance -Class Win32_NetworkAdapter -ComputerName .
为网络适配器分配 DNS 域
要分配自动名称解析的 DNS 域,请使用 Win32_NetworkAdapterConfiguration 的 SetDNSDomain 方法。 Invoke-CimMethod
的 Query 参数采用 WQL 查询字符串。该 cmdlet 调用在查询返回的每个实例上指定的方法。
$wql = 'SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled=True'
$args = @{ DnsDomain = 'fabrikam.com'}
Invoke-CimMethod -MethodName SetDNSDomain -Arguments $args -Query $wql
对 IPEnabled=True
进行过滤是必要的,因为即使在仅使用 TCP/IP 的网络上,计算机上的多个网络适配器配置也不是真正的 TCP/IP 适配器。它们是支持所有适配器的 RAS、VPN、QoS 和其他服务的通用软件元素,因此没有自己的地址。
执行 DHCP 配置任务
修改 DHCP 详细信息涉及使用一组网络适配器,就像 DNS 配置一样。您可以使用 WMI 执行多种不同的操作。
查找启用 DHCP 的适配器
要在计算机上查找启用 DHCP 的适配器,请使用以下命令:
Get-CimInstance -Class Win32_NetworkAdapterConfiguration -Filter "DHCPEnabled=$true"
要排除有 IP 配置问题的适配器,您可以仅检索启用 IP 的适配器:
Get-CimInstance -Class Win32_NetworkAdapterConfiguration -Filter "IPEnabled=$true and DHCPEnabled=$true"
检索 DHCP 属性
由于适配器的 DHCP 相关属性通常以 DHCP 开头,因此您可以使用 Format-Table 的 Property 参数仅显示这些属性:
Get-CimInstance -Class Win32_NetworkAdapterConfiguration -Filter "IPEnabled=$true and DHCPEnabled=$true" |
Format-Table -Property DHCP*
在每个适配器上启用 DHCP
要在所有适配器上启用 DHCP,请使用以下命令:
$wql = 'SELECT * from Win32_NetworkAdapterConfiguration WHERE IPEnabled=True and DHCPEnabled=False'
Invoke-CimMethod -MethodName ReleaseDHCPLease -Query $wql
使用过滤器语句 IPEnabled=True 和 DHCPEnabled=False
可以避免在已启用 DHCP 的情况下启用 DHCP。
释放和续订特定适配器上的 DHCP 租约
Win32_NetworkAdapterConfiguration 类的实例具有 ReleaseDHCPLease
和 RenewDHCPLease
方法。两者的使用方式相同。通常,如果您只需要释放或续订特定子网上的适配器的地址,请使用这些方法。过滤子网上适配器的最简单方法是仅选择使用该子网网关的适配器配置。例如,以下命令释放本地计算机上从 192.168.1.254 获取 DHCP 租约的适配器上的所有 DHCP 租约:
$wql = 'SELECT * from Win32_NetworkAdapterConfiguration WHERE DHCPServer="192.168.1.1"'
Invoke-CimMethod -MethodName ReleaseDHCPLease -Query $wql
续订 DHCP 租约的唯一变化是使用 RenewDHCPLease
方法而不是 ReleaseDHCPLease
方法:
$wql = 'SELECT * from Win32_NetworkAdapterConfiguration WHERE DHCPServer="192.168.1.1"'
Invoke-CimMethod -MethodName RenewDHCPLease -Query $wql
笔记
在远程计算机上使用这些方法时,请注意,如果通过已释放或续订租约的适配器连接到远程系统,您可能会失去对远程系统的访问权限。
释放和续订所有适配器上的 DHCP 租约
您可以使用 Win32_NetworkAdapterConfiguration 方法、ReleaseDHCPLeaseAll
和 RenewDHCPLeaseAll
在所有适配器上执行全局 DHCP 地址释放或续订。但是,该命令必须应用于 WMI 类,而不是特定适配器,因为全局释放和续订租约是在该类上执行的,而不是在特定适配器上执行的。 Invoke-CimMethod
cmdlet 可以调用类的方法。
Invoke-CimMethod -ClassName Win32_NetworkAdapterConfiguration -MethodName ReleaseDHCPLeaseAll
您可以使用相同的命令格式来调用 RenewDHCPLeaseAll 方法:
Invoke-CimMethod -ClassName Win32_NetworkAdapterConfiguration -MethodName RenewDHCPLeaseAll
创建网络共享
要创建网络共享,请使用Win32_Share的Create
方法:
Invoke-CimMethod -ClassName Win32_Share -MethodName Create -Arguments @{
Path = 'C:\temp'
Name = 'TempShare'
Type = [uint32]0 #Disk Drive
MaximumAllowed = [uint32]25
Description = 'test share of the temp folder'
}
这相当于 Windows 上的以下 net share
命令:
net share tempshare=c:\temp /users:25 /remark:"test share of the temp folder"
要调用带有参数的 WMI 类的方法,您必须知道哪些参数可用以及这些参数的类型。例如,您可以使用以下命令列出 Win32_Class 的方法:
(Get-CimClass -ClassName Win32_Share).CimClassMethods
Name ReturnType Parameters Qualifiers
---- ---------- ---------- ----------
Create UInt32 {Access, Description, MaximumAllowed, Name…} {Constructor, Implemented, MappingStrings, Stati…
SetShareInfo UInt32 {Access, Description, MaximumAllowed} {Implemented, MappingStrings}
GetAccessMask UInt32 {} {Implemented, MappingStrings}
Delete UInt32 {} {Destructor, Implemented, MappingStrings}
使用以下命令列出 Create
方法的参数。
(Get-CimClass -ClassName Win32_Share).CimClassMethods['Create'].Parameters
Name CimType Qualifiers ReferenceClassName
---- ------- ---------- ------------------
Access Instance {EmbeddedInstance, ID, In, MappingStrings…}
Description String {ID, In, MappingStrings, Optional}
MaximumAllowed UInt32 {ID, In, MappingStrings, Optional}
Name String {ID, In, MappingStrings}
Password String {ID, In, MappingStrings, Optional}
Path String {ID, In, MappingStrings}
Type UInt32 {ID, In, MappingStrings}
您还可以阅读 Win32_Share 类的 Create 方法的文档。
删除网络共享
您可以使用Win32_Share删除网络共享,但该过程与创建共享略有不同,因为您需要检索要删除的特定实例,而不是Win32_Share班级。以下示例删除共享 TempShare:
$wql = 'SELECT * from Win32_Share WHERE Name="TempShare"'
Invoke-CimMethod -MethodName Delete -Query $wql
连接 Windows 可访问的网络驱动器
New-PSDrive
cmdlet 可以创建映射到网络共享的 PowerShell 驱动器。
New-PSDrive -Name "X" -PSProvider "FileSystem" -Root "\Server01\Public"
但是,以这种方式创建的驱动器仅可用于创建它们的 PowerShell 会话。要映射 PowerShell 外部可用的驱动器(或映射到其他 PowerShell 会话),您必须使用 Persist 参数。
New-PSDrive -Persist -Name "X" -PSProvider "FileSystem" -Root "\Server01\Public"
笔记
在提升的上下文中运行时,持久映射的驱动器可能不可用。这是 Windows UAC 的默认行为。有关更多信息,请参阅以下文章:
- 当 UAC 配置为提示输入凭据时,无法从提升的提示中使用映射驱动器
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag