如何确定给定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]}
答案 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模块。它提高了代码的可读性。