如何找到给定cmdlet的模块?

时间:2012-06-01 17:20:59

标签: powershell

如何确定给定cmdlet的模块,以便从覆盖cmdlet的函数直接调用?

例如,我怎么能发现Start-Transcript存在于Microsoft.Powershell.Host?

Get-Module Start-Transcript

不会产生任何结果


更新以下答案。

这是输出:

PS C:\Windows> Get-Command -type cmdlet start-transcript | fl *

HelpUri             : http://go.microsoft.com/fwlink/?LinkID=113408
DLL                 : C:\Windows\assembly\GAC_MSIL\Microsoft.PowerShell.ConsoleHost\1.0.0.0__31bf3856ad364e35\Microsoft
                      .PowerShell.ConsoleHost.dll
Verb                : Start
Noun                : Transcript
HelpFile            : Microsoft.PowerShell.ConsoleHost.dll-Help.xml
PSSnapIn            : Microsoft.PowerShell.Host
ImplementingType    : Microsoft.PowerShell.Commands.StartTranscriptCommand
Definition          : Start-Transcript [[-Path] <String>] [-Append] [-Force] [-NoClobber] [-Verbose] [-Debug] [-ErrorAc
                      tion <ActionPreference>] [-WarningAction <ActionPreference>] [-ErrorVariable <String>] [-WarningV
                      ariable <String>] [-OutVariable <String>] [-OutBuffer <Int32>] [-WhatIf] [-Confirm]

DefaultParameterSet :
OutputType          : {}
Name                : Start-Transcript
CommandType         : Cmdlet
Visibility          : Public
ModuleName          : Microsoft.PowerShell.Host <------------ HERE IT IS
Module              :
Parameters          : {[Path, System.Management.Automation.ParameterMetadata], [Append, System.Management.Automation.Pa
                      rameterMetadata], [Force, System.Management.Automation.ParameterMetadata], [NoClobber, System.Man
                      agement.Automation.ParameterMetadata]...}
ParameterSets       : {[[-Path] <String>] [-Append] [-Force] [-NoClobber] [-Verbose] [-Debug] [-ErrorAction <ActionPref
                      erence>] [-WarningAction <ActionPreference>] [-ErrorVariable <String>] [-WarningVariable <String>
                      ] [-OutVariable <String>] [-OutBuffer <Int32>] [-WhatIf] [-Confirm]}

2 个答案:

答案 0 :(得分:11)

使用

Get-Command Start-Transcript | fl *

查找有关该命令的信息。

答案 1 :(得分:7)

PowerShell中有一些选项。为了将结果缩小到您正在寻找的特定信息 - 可以使用以下方法之一:

(Get-Command -Name Start-Transcript).ModuleName

Get-Command -Name Start-Transcript | Select-Object -Property ModuleName

Get-Command -Name Start-Transcript | Format-List -Property ModuleName

注意:

在PowerShell脚本中使用完整的cmdlet名称(如fl,ft,select等)时,通常认为这是一种很好的做法,或者开发自定义PowerShell模块。它提高了代码的可读性。