我尝试过做:
Add-Type -AssemblyName System.Net
Add-Type -Path "C:Program FilesReference AssembliesMicrosoftFrameworkv3.5System.Net.dll"
[System.Reflection.Assembly]::LoadWithPartialName("system.net")
add-type -path "C:WindowsassemblyGAC_MSILSystem.Net3.5.0.0__b03f5f7f11d50a3aSystem.Net.dll"
所有这些似乎都成功并且不会产生错误。然而,[net]
(或[System.Net]
(仍然给予
找不到类型 [net]:确保已加载包含此类型的程序集。
是否无法从 Powershell 使用这些类,或者如何调用成员?我不知道 system.net 是否真的会得到我想要的东西,但我正在尝试弄清楚如何在Powershell中使用.Net类。
我正在尝试获取机器正在侦听的TCP或UDP端口列表,以避免必须创建一些程序来解析netstat输出。
根据您的评论:
我实际上正在尝试获取机器正在侦听的TCP或UDP端口列表,以避免必须创建一些程序来解析netstat输出
我根据 C# 找到了这个答案:
$Properties = [Net.NetworkInformation.IPGlobalProperties]::GetIPGlobalProperties()
$Connections = $Properties.GetActiveTcpConnections()
ForEach ($Conn in $Connections)
{
"$($Conn.LocalEndPoint) <==> $($Conn.RemoteEndPoint)"
}
进一步基于这个答案,您可以使用GetActiveTcpListeners()
方法找到所有听众:
$Listeners = $Properties.GetActiveTcpListeners()
有关此对象的更多信息,请参阅此处。