2012-06-01 16 views
15

Cómo determino el módulo para un cmdlet dado para llamadas directas desde una función que anula el cmdlet.¿Cómo encuentro el módulo para un cmdlet determinado?

Por ejemplo, ¿cómo se supone que descubriré que Start-Transcript vive en Microsoft.Powershell.Host?

get-module Start-Transcript 

no cede nada

Actualización de respuesta a continuación. Esta es la salida:

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]} 

Respuesta

8

Uso

get-command start-transcript | fl *

para encontrar información sobre el comando.

+0

Hay una propiedad ModuleName que no aparece en la tabla predeterminada de get-command. (Busque ModuleName: Microsoft.PowerShell.Host) – user1324792

+1

Esto funciona mejor: get-command -type cmdlet start-transcript | seleccione ModuleName – user1324792

+5

Una versión más sucinta: '(Get-Command Start-Transcript) .ModuleName' –

2

Hay algunas opciones en PowerShell. Con el fin de Reducir selección a una información específica que está buscando - uno de los siguientes métodos se pueden utilizar:

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

o

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

o

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

Nota:

En general, se considera una buena práctica utilizar un nombre completo de cmdlet instalado alias (como fl, ft, select et c.) siempre que lo use dentro del script de PowerShell o desarrolle un módulo de PowerShell personalizado. Aumenta la legibilidad de tu código.

Cuestiones relacionadas