首页 > 解决方案 > Get-Modules 中缺少 NetTCPIP 一分钟

问题描述

为什么不Get-Module显示所有已安装的模块?

有些 PC 没有安装 NetTCPIP 模块。我的有,但是当我打开一个新的 PowerShell ISE 窗口时

Get-Module | Where-Object Name -eq 'NetTCPIP' | Format-Table

返回空白。

一分钟后它返回:

ModuleType Version    Name                                ExportedCommands                                                                                                                                                                     
---------- -------    ----                                ----------------                                                                                                                                                                     
Manifest   1.0.0.0    NetTCPIP                            {Find-NetRoute, ...}         

奇怪的是:

Get-Command -Name Test-NetConnection

始终显示该命令存在于 Source: NetTCPIP。

现在更奇怪的是,在运行相同版本 PowerShell 的服务器操作系统上,从不显示 NetTCPIP 模块,但确实有 command Test-NetConnection

为什么不Get-Module显示所有已安装的模块?

标签: powershellnetworking

解决方案


Get-Module默认情况下仅列出当前导入的模块。如果要查看所有模块,可以使用Get-Module -ListAvailable.

从 PowerShell 3.0 开始,模块会在您首次使用该模块的 cmdlet 时动态导入。因此,如果您测试 cmdlet 以查看它是否存在(或者您使用Get-Command Test-NetConnection),PowerShell 会静默导入该模块,并在您下次使用Get-Module.


推荐阅读