Add-Type
Agrega una clase de Microsoft .NET a una sesión de PowerShell.
Sintaxis
FromSource (Es el valor predeterminado).
Add-Type
[-TypeDefinition] <String>
[-Language <Language>]
[-ReferencedAssemblies <String[]>]
[-OutputAssembly <String>]
[-OutputType <OutputAssemblyType>]
[-PassThru]
[-IgnoreWarnings]
[-CompilerOptions <String[]>]
[<CommonParameters>]
FromMember
Add-Type
[-Name] <String>
[-MemberDefinition] <String[]>
[-Namespace <String>]
[-UsingNamespace <String[]>]
[-Language <Language>]
[-ReferencedAssemblies <String[]>]
[-OutputAssembly <String>]
[-OutputType <OutputAssemblyType>]
[-PassThru]
[-IgnoreWarnings]
[-CompilerOptions <String[]>]
[<CommonParameters>]
FromPath
Add-Type
[-Path] <String[]>
[-ReferencedAssemblies <String[]>]
[-OutputAssembly <String>]
[-OutputType <OutputAssemblyType>]
[-PassThru]
[-IgnoreWarnings]
[-CompilerOptions <String[]>]
[<CommonParameters>]
FromLiteralPath
Add-Type
-LiteralPath <String[]>
[-ReferencedAssemblies <String[]>]
[-OutputAssembly <String>]
[-OutputType <OutputAssemblyType>]
[-PassThru]
[-IgnoreWarnings]
[-CompilerOptions <String[]>]
[<CommonParameters>]
FromAssemblyName
Add-Type
-AssemblyName <String[]>
[-PassThru]
[<CommonParameters>]
Description
El cmdlet Add-Type permite definir una clase de Microsoft .NET Core en la sesión de PowerShell. A continuación, puede crear instancias de objetos mediante el cmdlet New-Object y usar los objetos igual que usaría cualquier objeto de .NET Core. Si agrega un comando Add-Type al perfil de PowerShell, la clase está disponible en todas las sesiones de PowerShell.
Puede especificar el tipo especificando un ensamblado existente o archivos de código fuente, o bien puede especificar el código fuente insertado o guardado en una variable. Incluso puede especificar solo un método y Add-Type define y genera la clase . En Windows, puede usar esta característica para realizar llamadas de invocación de plataforma (P/Invoke) a funciones no administradas en PowerShell. Si especifica código fuente, Add-Type compila el código fuente especificado y genera un ensamblado en memoria que contiene los nuevos tipos de .NET Core.
Puede usar los parámetros de Add-Type para especificar un lenguaje alternativo y un compilador, C# es el valor predeterminado, las opciones del compilador, las dependencias del ensamblado, el espacio de nombres de clase, los nombres del tipo y el ensamblado resultante.
A partir de PowerShell 7, Add-Type no compila un tipo si ya existe un tipo con el mismo nombre. Además, Add-Type busca ensamblados en una carpeta ref en la carpeta que contiene pwsh.dll.
Ejemplos
Ejemplo 1: Adición de un tipo de .NET a una sesión
En este ejemplo se agrega la clase basicTest de a la sesión especificando el código fuente almacenado en una variable. La clase BasicTest se usa para agregar enteros, crear un objeto y multiplicar enteros.
$Source = @"
public class BasicTest
{
public static int Add(int a, int b)
{
return (a + b);
}
public int Multiply(int a, int b)
{
return (a * b);
}
}
"@
Add-Type -TypeDefinition $Source
[BasicTest]::Add(4, 3)
$BasicTestObject = New-Object BasicTest
$BasicTestObject.Multiply(5, 2)
La variable $Source almacena el código fuente de la clase . El tipo tiene un método estático denominado Add y un método no estático denominado Multiply.
El cmdlet Add-Type agrega la clase a la sesión. Dado que usa código fuente insertado, el comando usa el parámetro TypeDefinition para especificar el código en la variable $Source.
El método estático
El cmdlet New-Object crea una instancia de la clase BasicTest. Guarda el nuevo objeto en la variable $BasicTestObject.
$BasicTestObject usa el método Multiply. Los enteros se multiplican y se muestra el producto.
Ejemplo 2: Examen de un tipo agregado
En este ejemplo se usa el cmdlet Get-Member para examinar los objetos que los cmdlets de Add-Type y New-Object creados en ejemplo 1.
[BasicTest] | Get-Member
TypeName: System.RuntimeType
Name MemberType Definition
---- ---------- ----------
AsType Method type AsType()
Clone Method System.Object Clone(), System.Object ICloneable.Clone()
Equals Method bool Equals(System.Object obj), bool Equals(type o)
FindInterfaces Method type[] FindInterfaces(System.Reflection.TypeFilter filter...
...
[BasicTest] | Get-Member -Static
TypeName: BasicTest
Name MemberType Definition
---- ---------- ----------
Add Method static int Add(int a, int b)
Equals Method static bool Equals(System.Object objA, System.Object objB)
new Method BasicTest new()
ReferenceEquals Method static bool ReferenceEquals(System.Object objA, System.Object objB)
$BasicTestObject | Get-Member
TypeName: BasicTest
Name MemberType Definition
---- ---------- ----------
Equals Method bool Equals(System.Object obj)
GetHashCode Method int GetHashCode()
GetType Method type GetType()
Multiply Method int Multiply(int a, int b)
ToString Method string ToString()
El cmdlet Get-Member revela que es un objeto System.RuntimeType, que se deriva de la clase System.Object.
El parámetro Add.
El cmdlet Get-Member obtiene los miembros del objeto almacenados en la variable $BasicTestObject.
$BasicTestObject es una instancia de la clase BasicTest y que incluye un miembro denominado Multiply.
Ejemplo 3: Agregar tipos de un ensamblado
En este ejemplo se agregan las clases del ensamblado JsonSchema.NET.dll a la sesión actual.
Set-Location -Path $PSHOME
$AccType = Add-Type -AssemblyName *jsonschema* -PassThru
Set-Location usa el parámetro path de para especificar la variable $PSHOME. La variable hace referencia al directorio de instalación de PowerShell donde se encuentra el archivo DLL.
La variable $AccType almacena un objeto creado con el cmdlet Add-Type.
Add-Type usa el parámetro AssemblyName para especificar el nombre del ensamblado. El carácter comodín asterisco (*) le permite obtener el ensamblado correcto incluso cuando no está seguro del nombre o su ortografía. El parámetro PassThru genera objetos que representan las clases que se agregan a la sesión.
Ejemplo 4: Llamada a las API nativas de Windows
En este ejemplo se muestra cómo llamar a las API nativas de Windows en PowerShell.
Add-Type usa el mecanismo de invocación de plataforma (P/Invoke) para llamar a una función en User32.dll desde PowerShell. Este ejemplo solo funciona en equipos que ejecutan el sistema operativo Windows.
$Signature = @"
[DllImport("user32.dll")]public static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow);
"@
$addTypeSplat = @{
MemberDefinition = $Signature
Name = "Win32ShowWindowAsync"
Namespace = 'Win32Functions'
PassThru = $true
}
$ShowWindowAsync = Add-Type @addTypeSplat
# Minimize the PowerShell console
$ShowWindowAsync::ShowWindowAsync((Get-Process -Id $PID).MainWindowHandle, 2)
# Restore the PowerShell console
$ShowWindowAsync::ShowWindowAsync((Get-Process -Id $PID).MainWindowHandle, 4)
La variable $Signature almacena la firma de C# de la función ShowWindowAsync. Para asegurarse de que el método resultante está visible en una sesión de PowerShell, la palabra clave public se agregó a la firma estándar. Para obtener más información, vea función showWindowAsync.
La variable Add-Type agrega la función ShowWindowAsync a la sesión de PowerShell como método estático. El comando usa el parámetro MemberDefinition para especificar la definición del método guardada en la variable $Signature. El comando usa los parámetros Name y Espacio de nombres para especificar un nombre y un espacio de nombres para la clase . El parámetro PassThru genera un objeto que representa los tipos.
El nuevo ShowWindowAsync método estático se usa en los comandos para minimizar y restaurar la consola de PowerShell. El método toma dos parámetros: el identificador de ventana y un entero que especifica cómo se muestra la ventana.
Para minimizar la consola de PowerShell, ShowWindowAsync usa el cmdlet Get-Process con la variable automática $PID para obtener el proceso que hospeda la sesión actual de PowerShell. A continuación, usa la propiedad mainWindowHand le del proceso actual y un valor de 2, que representa el valor de SW_MINIMIZE.
Para restaurar la ventana, ShowWindowAsync usa un valor de 4 para la posición de la ventana, que representa el valor de SW_RESTORE.
Para maximizar la ventana, use el valor de 3 que representa SW_MAXIMIZE.
Parámetros
-AssemblyName
Especifica el nombre de un ensamblado que incluye los tipos.
Add-Type toma los tipos del ensamblado especificado. Este parámetro es necesario cuando se crean tipos basados en un nombre de ensamblado.
Escriba el nombre completo o simple, también conocido como nombre parcial, de un ensamblado. Se permiten caracteres comodín en el nombre del ensamblado. Si escribe un nombre simple o parcial, Add-Type lo resuelve en el nombre completo y, a continuación, usa el nombre completo para cargar el ensamblado.
El uso de los parámetros Path o LiteralPath garantiza que está cargando el ensamblado que pretende cargar. Cuando se usa el parámetro AssemblyName, PowerShell pide a .NET que resuelva el nombre del ensamblado mediante el proceso de resolución de ensamblados de .NET estándar. Dado que .NET busca primero la carpeta de la aplicación, Add-Type podría cargar un ensamblado desde $PSHOME en lugar de la versión de la carpeta actual. Para obtener más información, vea Ubicación del ensamblado.
Si .NET no puede resolver el nombre, PowerShell busca en la ubicación actual para encontrar el ensamblado. Cuando se usan caracteres comodín en el parámetro AssemblyName, el proceso de resolución de ensamblados de .NET produce un error que hace que PowerShell busque en la ubicación actual.
Propiedades del parámetro
| Tipo: | String[] |
| Valor predeterminado: | None |
| Admite caracteres comodín: | True |
| DontShow: | False |
| Alias: | UN |
Conjuntos de parámetros
FromAssemblyName
| Posición: | Named |
| Mandatory: | True |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-CompilerOptions
Especifica las opciones del compilador de código fuente. Estas opciones se envían al compilador sin revisión.
Este parámetro permite dirigir al compilador para generar un archivo ejecutable, insertar recursos o establecer opciones de línea de comandos, como la opción /unsafe.
Propiedades del parámetro
| Tipo: | String[] |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
FromSource
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
FromMember
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
FromPath
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
FromLiteralPath
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-IgnoreWarnings
Omite las advertencias del compilador. Use este parámetro para evitar que Add-Type controle las advertencias del compilador como errores.
Propiedades del parámetro
| Tipo: | SwitchParameter |
| Valor predeterminado: | False |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
FromSource
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
FromMember
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
FromPath
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
FromLiteralPath
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-Language
Especifica el idioma que se usa en el código fuente. El valor aceptable para este parámetro es CSharp.
Propiedades del parámetro
| Tipo: | Language |
| Valor predeterminado: | CSharp |
| Valores aceptados: | CSharp |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
FromSource
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
FromMember
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-LiteralPath
Especifica la ruta de acceso a archivos de código fuente o archivos DLL de ensamblado que contienen los tipos. A diferencia de path, el valor del parámetro LiteralPath se usa exactamente como se escribe. Ninguno de los caracteres se interpreta como caracteres comodín. Si la ruta de acceso incluye caracteres de escape, escríbala entre comillas simples. Las comillas simples indican a PowerShell que no interprete ningún carácter como secuencias de escape.
El uso de los parámetros Path o LiteralPath garantiza que está cargando el ensamblado que pretende cargar.
Propiedades del parámetro
| Tipo: | String[] |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
| Alias: | PSPath, LP |
Conjuntos de parámetros
FromLiteralPath
| Posición: | Named |
| Mandatory: | True |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-MemberDefinition
Especifica nuevas propiedades o métodos para la clase .
Add-Type genera el código de plantilla necesario para admitir las propiedades o métodos.
En Windows, puede usar esta característica para realizar llamadas de invocación de plataforma (P/Invoke) a funciones no administradas en PowerShell.
Propiedades del parámetro
| Tipo: | String[] |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
FromMember
| Posición: | 1 |
| Mandatory: | True |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-Name
Especifica el nombre de la clase que se va a crear. Este parámetro es necesario al generar un tipo a partir de una definición de miembro.
El nombre de tipo y el espacio de nombres deben ser únicos dentro de una sesión. No se puede descargar un tipo ni cambiarlo. Para cambiar el código de un tipo, debe cambiar el nombre o iniciar una nueva sesión de PowerShell. De lo contrario, se produce un error en el comando.
Propiedades del parámetro
| Tipo: | String |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
FromMember
| Posición: | 0 |
| Mandatory: | True |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-Namespace
De forma predeterminada, este comando crea el tipo en el espacio de nombres Microsoft.PowerShell.Commands.AddType.AutoGeneratedTypes. Cuando se usa este parámetro, el tipo se crea en el espacio de nombres especificado. Si el valor es una cadena vacía, el tipo se crea en el espacio de nombres global.
Propiedades del parámetro
| Tipo: | String |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
| Alias: | NS |
Conjuntos de parámetros
FromMember
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-OutputAssembly
Genera un archivo DLL para el ensamblado con el nombre especificado en la ubicación. Escriba una ruta de acceso opcional y un nombre de archivo. Se permite el uso de caracteres comodín. De forma predeterminada, Add-Type genera el ensamblado solo en memoria. Si genera el ensamblado en un archivo, debe incluir el parámetro PassThru para devolver el tipo del ensamblado recién creado.
Propiedades del parámetro
| Tipo: | String |
| Valor predeterminado: | None |
| Admite caracteres comodín: | True |
| DontShow: | False |
| Alias: | ED |
Conjuntos de parámetros
FromSource
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
FromMember
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
FromPath
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
FromLiteralPath
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-OutputType
Especifica el tipo de salida del ensamblado de salida. De forma predeterminada, no se especifica ningún tipo de salida. Este parámetro solo es válido cuando se especifica un ensamblado de salida en el comando . Para obtener más información sobre los valores, vea OutputAssemblyType (enumeración).
Los valores aceptables para este parámetro son los siguientes:
ConsoleApplicationLibraryWindowsApplication
Importante
A partir de PowerShell 7.1, ConsoleApplication y WindowsApplication no se admiten y PowerShell produce un error de terminación si se especifican como valores para el parámetro OutputType.
Propiedades del parámetro
| Tipo: | OutputAssemblyType |
| Valor predeterminado: | None |
| Valores aceptados: | ConsoleApplication, Library, WindowsApplication |
| Admite caracteres comodín: | False |
| DontShow: | False |
| Alias: | OT |
Conjuntos de parámetros
FromSource
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
FromMember
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
FromPath
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
FromLiteralPath
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-PassThru
Devuelve un objeto System.Runtime que representa los tipos que se agregaron. De forma predeterminada, este cmdlet no genera ninguna salida. Use este parámetro si usó OutputAssembly para crear un archivo DLL y desea devolver el tipo del ensamblado recién creado.
Propiedades del parámetro
| Tipo: | SwitchParameter |
| Valor predeterminado: | False |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-Path
Especifica la ruta de acceso a archivos de código fuente o archivos DLL de ensamblado que contienen los tipos.
Si envía archivos de código fuente, Add-Type compila el código en los archivos y crea un ensamblado en memoria de los tipos. La extensión de archivo especificada en el valor de Path determina el compilador que Add-Type usa.
El uso de los parámetros Path o LiteralPath garantiza que está cargando el ensamblado que pretende cargar.
Propiedades del parámetro
| Tipo: | String[] |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
FromPath
| Posición: | 0 |
| Mandatory: | True |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-ReferencedAssemblies
Especifica los ensamblados en los que depende el tipo. De forma predeterminada, Add-Type hace referencia a System.dll y System.Management.Automation.dll. A partir de PowerShell 6, ensamblados a los que se hace referencia no incluye los ensamblados de .NET predeterminados. Debe incluir una referencia específica a ellos en el valor pasado a este parámetro.
Propiedades del parámetro
| Tipo: | String[] |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
| Alias: | RA |
Conjuntos de parámetros
FromSource
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
FromMember
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
FromPath
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
FromLiteralPath
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-TypeDefinition
Especifica el código fuente que contiene las definiciones de tipo. Escriba el código fuente en una cadena o una cadena aquí, o escriba una variable que contenga el código fuente. Para obtener más información sobre here-strings, vea about_Quoting_Rules.
Incluya una declaración de espacio de nombres en la definición de tipo. Si omite la declaración de espacio de nombres, es posible que el tipo tenga el mismo nombre que otro tipo o el acceso directo para otro tipo, lo que provoca una sobrescritura involuntaria. Por ejemplo, si define un tipo denominado Exception, se producirá un error en los scripts que usan Exception como acceso directo para System.Exception.
Propiedades del parámetro
| Tipo: | String |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
FromSource
| Posición: | 0 |
| Mandatory: | True |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-UsingNamespace
Especifica otros espacios de nombres necesarios para la clase . Esto es muy similar a la palabra clave de C#, Using.
De forma predeterminada, Add-Type hace referencia al espacio de nombres System. Cuando se usa el parámetro MemberDefinition, Add-Type también hace referencia al espacio de nombres System.Runtime.InteropServices de forma predeterminada. Se hace referencia a los espacios de nombres que agregue mediante el parámetro using UsingNamespace, además de los espacios de nombres predeterminados.
Propiedades del parámetro
| Tipo: | String[] |
| Valor predeterminado: | System namespace |
| Admite caracteres comodín: | False |
| DontShow: | False |
| Alias: | Uso |
Conjuntos de parámetros
FromMember
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
CommonParameters
Este cmdlet admite los parámetros comunes: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction y -WarningVariable. Para obtener más información, vea about_CommonParameters.
Entradas
None
No se pueden canalizar objetos a este cmdlet.
Salidas
None
De forma predeterminada, este cmdlet no devuelve ninguna salida.
Type
Cuando se usa el parámetro PassThru, este cmdlet devuelve un objeto System.Type que representa el nuevo tipo.
Notas
Los tipos que agregue solo existen en la sesión actual. Para usar los tipos de todas las sesiones, agréguelos al perfil de PowerShell. Para obtener más información sobre el perfil, consulte about_Profiles.
Los nombres de tipo y los espacios de nombres deben ser únicos dentro de una sesión. No se puede descargar un tipo ni cambiarlo. Si necesita cambiar el código de un tipo, debe cambiar el nombre o iniciar una nueva sesión de PowerShell. De lo contrario, se produce un error en el comando.
En Windows PowerShell (versión 5.1 y posteriores), debe usar Add-Type para cualquier elemento que aún no esté cargado. Normalmente, esto se aplica a los ensamblados que se encuentran en la caché global de ensamblados (GAC).
En PowerShell 6 y versiones posteriores, no hay ninguna GAC, por lo que PowerShell instala sus propios ensamblados en $PSHOME.
Estos ensamblados se cargan automáticamente a petición, por lo que no es necesario usar Add-Type para cargarlos. Sin embargo, el uso de Add-Type todavía está permitido permitir que los scripts sean implícitamente compatibles con cualquier versión de PowerShell.
Los ensamblados de la GAC se pueden cargar por nombre de tipo, en lugar de por ruta de acceso. La carga de ensamblados desde una ruta de acceso arbitraria requiere Add-Type, ya que esos ensamblados no se pueden cargar automáticamente.