如何确定哪个 Windows 功能/软件包提供了给定的 PowerShell cmdlet?类似于基于 RedHat 和 Debian 的系统上的 yum whatprovides 和 apt-file find。
我特别需要的 cmdlet 是 Set-NfsClientConfiguration:https://docs.microsoft.com/en-us/powershell/module/nfs/set-nfsclientconfiguration?view=win10-ps
我安装了 Enable-WindowsOptionalFeature 中所有三个包含字母 NFS 的软件包/功能,并重新启动了计算机,但无济于事。它们是 ClientForNFS-Infrastructure、NFS-Administration 和 ServicesForNFS-ClientOnly。
答案1
至于这个...
如何确定哪个 Windows 功能/包提供了给定的 PowerShell cmdlet?
...就这么做...
# List all available modules
Get-Module -ListAvailable
# Get exported commands in a module
Get-Command -Module '*nfs*'
CommandType Name Version Source
----------- ---- ------- ------
Function Disconnect-NfsSession 1.0 NFS
Function Get-NfsClientConfiguration 1.0 NFS
Function Get-NfsClientgroup 1.0 NFS
Function Get-NfsClientLock 1.0 NFS
...
根据您的评论更新
如果给定一个模块,按照...
Get-Module -ListAvailable
.. 不在您的机器上,未通过上述命令返回,则与 t 相关的任何内容都将为空/不返回任何内容,因此运行 cmdlet ...
Get-Command -Module '*SomeModuleNameFromThePreviousCommand*'
... 确实没有意义。
所有模块都存储并搜索您的环境路径。
$env:PSModulePath -split ';'
# Results
<#
C:\Users\...\Documents\WindowsPowerShell\Modules
C:\Program Files\WindowsPowerShell\Modules
C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules
...
#>
$env:Path -split ';'
# Results
<#
...
C:\WINDOWS\System32\WindowsPowerShell\v1.0\
...
C:\Program Files\PowerShell\7\
...
C:\Windows\System32\WindowsPowerShell\v1.0\
...
#>
如果您安装的模块不在那里,那么您需要通过 Import-Module cmdlet 明确告诉 PowerShell 它在哪里。
所有用户可用的默认安装模块在这里:
C:\Windows\System32\WindowsPowerShell\v1.0\Modules
...您应该在这里找到 NFS 模块。
C:\Windows\System32\WindowsPowerShell\v1.0\Modules\NFS