Import-PSSession

Importa en la sesión actual comandos de otra sesión.

Syntax

Import-PSSession
      [-Prefix <String>]
      [-DisableNameChecking]
      [[-CommandName] <String[]>]
      [-AllowClobber]
      [-ArgumentList <Object[]>]
      [-CommandType <CommandTypes>]
      [-Module <String[]>]
      [-FullyQualifiedModule <ModuleSpecification[]>]
      [[-FormatTypeName] <String[]>]
      [-Certificate <X509Certificate2>]
      [-Session] <PSSession>
      [<CommonParameters>]

Description

El Import-PSSession cmdlet importa comandos , como cmdlets, funciones y alias, desde una PSSession en un equipo local o remoto en la sesión actual. Puede importar cualquier comando que el Get-Command cmdlet pueda encontrar en PSSession.

Use un Import-PSSession comando para importar comandos desde un shell personalizado, como un shell de Microsoft Exchange Server, o desde una sesión que incluya módulos y complementos de Windows PowerShell u otros elementos que no estén en la sesión actual.

Para importar comandos, use primero el New-PSSession cmdlet para crear una PSSession. A continuación, use el Import-PSSession cmdlet para importar los comandos. De forma predeterminada, Import-PSSession importa todos los comandos excepto los comandos que tienen los mismos nombres que los comandos de la sesión actual. Para importar todos los comandos, use el parámetro AllowClobber .

Puede usar comandos importados del mismo modo que utilizaría cualquier comando de la sesión. Al usar un comando importado, la parte importada del comando se ejecuta de manera implícita en la sesión desde la que se importó. Sin embargo, Windows PowerShell controla completamente las operaciones remotas. Ni siquiera necesita estar al tanto de dichas operaciones, salvo en lo relativo a que debe mantener abierta la conexión con la otra sesión (PSSession). Si la cierra, dejarán de estar disponibles los comandos importados.

Dado que los comandos importados pueden tardar más tiempo en ejecutarse que los comandos locales, Import-PSSession agrega un parámetro AsJob a todos los comandos importados. Este parámetro permite ejecutar el comando como un trabajo en segundo plano de Windows PowerShell. Para más información, consulte about_Jobs (Acerca de los trabajos).

Cuando se usa Import-PSSession, Windows PowerShell agrega los comandos importados a un módulo temporal que solo existe en la sesión y devuelve un objeto que representa el módulo. Para crear un módulo persistente que puede usar en sesiones futuras, use el Export-PSSession cmdlet .

El Import-PSSession cmdlet usa la característica de comunicación remota implícita de Windows PowerShell. Al importar los comandos en la sesión actual, se ejecutan de manera implícita en la sesión original o en una sesión similar en el equipo de origen.

A partir de Windows PowerShell 3.0, puede usar el Import-Module cmdlet para importar módulos desde una sesión remota a la sesión actual. Esta característica utiliza comunicación remota implícita. Equivale a usar Import-PSSession para importar módulos seleccionados desde una sesión remota a la sesión actual.

Ejemplos

Ejemplo 1: Importación de todos los comandos desde una PSSession

$S = New-PSSession -ComputerName Server01
Import-PSSession -Session $S

Este comando importa todos los comandos de una PSSession del equipo Server01 en la sesión actual, salvo aquellos comandos que tengan el mismo nombre que los comandos de la sesión actual.

Dado que este comando no usa el parámetro CommandName , también importa todos los datos de formato necesarios para los comandos importados.

Ejemplo 2: Importación de comandos que terminan con una cadena específica

$S = New-PSSession https://ps.testlabs.com/powershell
Import-PSSession -Session $S -CommandName *-test -FormatTypeName *
New-Test -Name Test1
Get-Test test1 | Run-Test

Estos comandos importan en la sesión local los comandos con nombres que acaben en "-test" de una PSSession y, a continuación, muestran cómo usar un cmdlet importado.

El primer comando usa el New-PSSession cmdlet para crear una PSSession. Guarda la PSSession en la $S variable .

El segundo comando usa el Import-PSSession cmdlet para importar comandos de PSSession en $S la sesión actual. Usa el parámetro CommandName para especificar comandos con el nombre Test y el parámetro FormatTypeName para importar los datos de formato de los comandos Test.

Los comandos tercero y cuarto usan los comandos importados en la sesión actual. Puesto que los comandos importados en realidad se agregan en la sesión actual, utilice la sintaxis local para ejecutarlos. No es necesario usar el Invoke-Command cmdlet para ejecutar un comando importado.

Ejemplo 3: Importación de cmdlets desde una PSSession

$S1 = New-PSSession -ComputerName s1
$S2 = New-PSSession -ComputerName s2
Import-PSSession -Session s1 -Type cmdlet -Name New-Test, Get-Test -FormatTypeName *
Import-PSSession -Session s2 -Type Cmdlet -Name Set-Test -FormatTypeName *
New-Test Test1 | Set-Test -RunType Full

Este ejemplo muestra que puede usar cmdlets importados del mismo modo que usaría cmdlets locales.

Estos comandos importan los New-Test cmdlets y Get-Test de una PSSession en el equipo Server01 y el Set-Test cmdlet desde una PSSession en el equipo Server02.

Aunque los cmdlets se importasen desde PSSessions diferentes, puede canalizar un objeto de un cmdlet a otro sin que se generen errores.

Ejemplo 4: Ejecución de un comando importado como trabajo en segundo plano

$S = New-PSSession -ComputerName Server01
Import-PSSession -Session $S -CommandName *-test* -FormatTypeName *
$batch = New-Test -Name Batch -AsJob
Receive-Job $batch

Este ejemplo muestra cómo ejecutar un comando importado como un trabajo en segundo plano.

Dado que los comandos importados pueden tardar más tiempo en ejecutarse que los comandos locales, Import-PSSession agrega un parámetro AsJob a todos los comandos importados. El parámetro AsJob le permite ejecutar el comando como un trabajo en segundo plano.

El primer comando crea una PSSession en el equipo Server01 y guarda el objeto PSSession en la $S variable .

El segundo comando usa Import-PSSession para importar los cmdlets test de PSSession en $S la sesión actual.

El tercer comando usa el parámetro AsJob del cmdlet importado New-Test para ejecutar un New-Test comando como un trabajo en segundo plano. El comando guarda el objeto de trabajo que New-Test devuelve en la $batch variable .

El cuarto comando usa el Receive-Job cmdlet para obtener los resultados del trabajo en la $batch variable .

Ejemplo 5: Importación de cmdlets y funciones desde un módulo de Windows PowerShell

$S = New-PSSession -ComputerName Server01
Invoke-Command -Session $S {Import-Module TestManagement}
Import-PSSession -Session $S -Module TestManagement

En este ejemplo se muestra cómo importar en la sesión actual los cmdlets y las funciones desde un módulo de Windows PowerShell en un equipo remoto.

El primer comando crea una PSSession en el equipo Server01 y la guarda en la $S variable .

El segundo comando usa el Invoke-Command cmdlet para ejecutar un Import-Module comando en PSSession en $S.

Normalmente, el módulo se agregaría a todas las sesiones mediante un Import-Module comando en un perfil de Windows PowerShell, pero los perfiles no se ejecutan en PSSessions.

El tercer comando usa el parámetro Module de Import-PSSession para importar los cmdlets y funciones del módulo en la sesión actual.

Ejemplo 6: Creación de un módulo en un archivo temporal

PS C:\> Import-PSSession $S -CommandName Get-Date, SearchHelp -FormatTypeName * -AllowClobber

Name              : tmp_79468106-4e1d-4d90-af97-1154f9317239_tcw1zunz.ttf
Path              : C:\Users\User01\AppData\Local\Temp\tmp_79468106-4e1d-4d90-af97-1154f9317239_tcw1
zunz.ttf\tmp_79468106-4e1d-4d90-af97-1154f9317239_
tcw1zunz.ttf.psm1
Description       : Implicit remoting for http://server01.corp.fabrikam.com/wsman
Guid              : 79468106-4e1d-4d90-af97-1154f9317239
Version           : 1.0
ModuleBase        : C:\Users\User01\AppData\Local\Temp\tmp_79468106-4e1d-4d90-af97-1154f9317239_tcw1
zunz.ttf
ModuleType        : Script
PrivateData       : {ImplicitRemoting}
AccessMode        : ReadWrite
ExportedAliases   : {}
ExportedCmdlets   : {}
ExportedFunctions : {[Get-Date, Get-Date], [SearchHelp, SearchHelp]}
ExportedVariables : {}
NestedModules     : {}

En este ejemplo se muestra que Import-PSSession crea un módulo en un archivo temporal en el disco. También muestra que todos los comandos se convierten en funciones antes de ser importados en la sesión actual.

El comando usa el Import-PSSession cmdlet para importar un Get-Date cmdlet y una función SearchHelp en la sesión actual.

El Import-PSSession cmdlet devuelve un objeto PSModuleInfo que representa el módulo temporal. El valor de la propiedad Path muestra que Import-PSSession creó un archivo de módulo de script (.psm1) en una ubicación temporal. La propiedad ExportedFunctions muestra que el Get-Date cmdlet y la función SearchHelp se importaron como funciones.

Ejemplo 7: Ejecutar un comando oculto por un comando importado

PS C:\> Import-PSSession $S -CommandName Get-Date -FormatTypeName * -AllowClobber

PS C:\> Get-Command Get-Date -All

CommandType   Name       Definition
-----------   ----       ----------
Function      Get-Date   ...
Cmdlet        Get-Date   Get-Date [[-Date] <DateTime>] [-Year <Int32>] [-Month <Int32>]

PS C:\> Get-Date
09074

PS C:\> (Get-Command -Type Cmdlet -Name Get-Date).PSSnapin.Name
Microsoft.PowerShell.Utility

PS C:\> Microsoft.PowerShell.Utility\Get-Date
Sunday, March 15, 2009 2:08:26 PM

En este ejemplo se muestra cómo ejecutar un comando que está oculto por un comando importado.

El primer comando importa un Get-Date cmdlet de PSSession en la $S variable . Dado que la sesión actual incluye un Get-Date cmdlet, el parámetro AllowClobber es necesario en el comando .

El segundo comando usa el parámetro All del Get-Command cmdlet para obtener todos los Get-Date comandos de la sesión actual. La salida muestra que la sesión incluye el cmdlet original Get-Date y una Get-Date función. La Get-Date función ejecuta el cmdlet importado Get-Date en PSSession en $S.

El tercer comando ejecuta un Get-Date comando. Dado que las funciones tienen prioridad sobre los cmdlets, Windows PowerShell ejecuta la función importada Get-Date , que devuelve una fecha juliana.

Los comandos cuarto y quinto muestran cómo utilizar un nombre completo para ejecutar un comando que está oculto por un comando importado.

El cuarto comando obtiene el nombre del complemento de Windows PowerShell que agregó el cmdlet original Get-Date a la sesión actual.

El quinto comando usa el nombre completo del complemento del Get-Date cmdlet para ejecutar un Get-Date comando.

Para obtener más información sobre la precedencia de comandos y los comandos ocultos, consulte about_Command_Precedence.

Ejemplo 8: Importación de comandos que tienen una cadena específica en sus nombres

PS C:\> Import-PSSession -Session $S -CommandName **Item** -AllowClobber

Este comando importa comandos cuyos nombres incluyen Item de PSSession en $S. Dado que el comando incluye el parámetro CommandName , pero no el parámetro FormatTypeData , solo se importa el comando.

Use este comando cuando use Import-PSSession para ejecutar un comando en un equipo remoto y ya tenga los datos de formato para el comando en la sesión actual.

Ejemplo 9: Uso del parámetro Module para detectar qué comandos se importaron en la sesión

PS C:\> $M = Import-PSSession -Session $S -CommandName *bits* -FormatTypeName *bits*
PS C:\> Get-Command -Module $M
CommandType     Name
-----------     ----
Function        Add-BitsFile
Function        Complete-BitsTransfer
Function        Get-BitsTransfer
Function        Remove-BitsTransfer
Function        Resume-BitsTransfer
Function        Set-BitsTransfer
Function        Start-BitsTransfer
Function        Suspend-BitsTransfer

Este comando muestra cómo usar el parámetro Module de Get-Command para averiguar qué comandos se importaron en la sesión mediante un Import-PSSession comando.

El primer comando usa el Import-PSSession cmdlet para importar comandos cuyos nombres incluyen "bits" de PSSession en la $S variable . El Import-PSSession comando devuelve un módulo temporal y el comando guarda el módulo en la $m variable .

El segundo comando usa el Get-Command cmdlet para obtener los comandos exportados por el módulo en la $M variable .

El parámetro Module toma un valor de cadena, que está diseñado para el nombre del módulo. Sin embargo, al enviar un objeto de módulo, Windows PowerShell usa el método ToString en el objeto module, que devuelve el nombre del módulo.

El Get-Command comando es el equivalente de Get-Command $M.Name".

Parámetros

-AllowClobber

Indica que este cmdlet importa los comandos especificados, incluso si tienen los mismos nombres que los comandos de la sesión actual.

Si importa un comando con el mismo nombre que un comando de la sesión actual, el comando importado oculta o reemplaza los comandos originales. Para obtener más información, vea about_Command_Precedence.

De forma predeterminada, Import-PSSession no importa comandos que tengan el mismo nombre que los comandos de la sesión actual.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ArgumentList

Especifica una matriz de comandos resultantes del uso de los argumentos especificados (valores de parámetro).

Por ejemplo, para importar la variante del Get-Item comando en la unidad de certificado (Cert:) de PSSession en $S, escriba Import-PSSession -Session $S -Command Get-Item -ArgumentList cert:.

Type:Object[]
Aliases:Args
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Certificate

Especifica el certificado de cliente que se usa para firmar los archivos de formato (*. Format.ps1xml) o archivos de módulo de script (.psm1) en el módulo temporal que Import-PSSession crea.

Introduzca una variable que contenga un certificado o un comando o una expresión que obtenga el certificado.

Para buscar un certificado, use el Get-PfxCertificate cmdlet o use el Get-ChildItem cmdlet en la unidad Certificado (Cert:). Si el certificado no es válido o no tiene autoridad suficiente, el comando genera un error.

Type:X509Certificate2
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CommandName

Especifica comandos con los nombres o patrones de nombre especificados. Se permiten los caracteres comodín. Use CommandName o su alias, Name.

De forma predeterminada, Import-PSSession importa todos los comandos de la sesión, excepto los comandos que tienen los mismos nombres que los comandos de la sesión actual. Esto evita que los comandos importados oculten o reemplacen a los comandos de la sesión. Para importar todos los comandos, incluso aquellos que ocultan o reemplazan otros comandos, use el parámetro AllowClobber .

Si usa el parámetro CommandName , los archivos de formato de los comandos no se importan a menos que use el parámetro FormatTypeName . Del mismo modo, si usa el parámetro FormatTypeName , no se importa ningún comando a menos que use el parámetro CommandName .

Type:String[]
Aliases:Name
Position:2
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CommandType

Especifica el tipo de objetos de comando. El valor predeterminado es Cmdlet. Use CommandType o su alias, Type. Los valores permitidos para este parámetro son los siguientes:

  • Alias: alias de Windows PowerShell en la sesión remota.
  • All: los cmdlets y funciones de la sesión remota.
  • Application: todos los archivos que no son archivos de Windows-PowerShell en las rutas de acceso que aparecen en la variable de entorno Path ($env:path) de la sesión remota, incluidos los archivos .txt, .exe y .dll.
  • Cmdlet: los cmdlets de la sesión remota. "Cmdlet" es el valor predeterminado.
  • ExternalScript: los archivos .ps1 de las rutas de acceso enumeradas en la variable de entorno Path ($env:path) en la sesión remota.
  • Filter y Function: las funciones de Windows PowerShell en la sesión remota.
  • Script: el script se bloquea en la sesión remota.

Estos valores se definen como una enumeración basada en marcas. Puede combinar varios valores para establecer varias marcas mediante este parámetro. Los valores se pueden pasar al parámetro CommandType como una matriz de valores o como una cadena separada por comas de esos valores. El cmdlet combinará los valores mediante una operación binary-OR. Pasar valores como una matriz es la opción más sencilla y también permite usar la finalización de tabulación en los valores.

Type:CommandTypes
Aliases:Type
Accepted values:Alias, Function, Filter, Cmdlet, ExternalScript, Application, Script, Workflow, Configuration, All
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DisableNameChecking

Indica que este cmdlet suprime el mensaje que le advierte al importar un cmdlet o una función cuyo nombre incluye un verbo no aprobado o un carácter prohibido.

De forma predeterminada, cuando un módulo que usted importa exporta cmdlets o funciones con verbos no aprobados en sus nombres, Windows PowerShell muestra el siguiente mensaje de advertencia:

"ADVERTENCIA: algunos nombres de comandos importados incluyen verbos no aprobados que podrían hacer que sean menos reconocibles. Use el parámetro Verbose para obtener más detalles o tipo Get-Verb para ver la lista de verbos aprobados".

Este mensaje es solo una advertencia. El módulo completo se importa de todos modos, incluidos los comandos que no cumplen las especificaciones. Aunque el mensaje se muestra a los usuarios del módulo, el autor del módulo debe corregir el problema de nomenclatura.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FormatTypeName

Especifica instrucciones de formato para los tipos de Microsoft .NET Framework especificados. Escriba los nombres de tipos. Se permiten los caracteres comodín.

El valor de este parámetro debe ser el nombre de un tipo devuelto por un Get-FormatData comando en la sesión desde la que se importan los comandos. Para obtener todos los datos de formato en la sesión remota, escriba *.

Si el comando no incluye el parámetro CommandName o FormatTypeName , Import-PSSession importa las instrucciones de formato para todos los tipos de .NET Framework devueltos por un Get-FormatData comando en la sesión remota.

Si usa el parámetro FormatTypeName , no se importa ningún comando a menos que use el parámetro CommandName .

Del mismo modo, si usa el parámetro CommandName , los archivos de formato de los comandos no se importan a menos que use el parámetro FormatTypeName .

Type:String[]
Position:3
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FullyQualifiedModule

El valor puede ser un nombre de módulo, una especificación de módulo completa o una ruta de acceso a un archivo de módulo.

Cuando el valor es una ruta de acceso, la ruta de acceso puede ser completa o relativa. Se resuelve una ruta de acceso relativa con respecto al script que contiene la instrucción using.

Cuando el valor es un nombre o especificación de módulo, PowerShell busca en el módulo especificado la psModulePath .

Una especificación de módulo es una tabla hash que tiene las siguientes claves.

  • ModuleName - Obligatorio Especifica el nombre del módulo.
  • GUID - Opcional Especifica el GUID del módulo.
  • También es necesario especificar al menos una de las tres claves siguientes.
    • ModuleVersion : especifica una versión mínima aceptable del módulo.
    • MaximumVersion : especifica la versión máxima aceptable del módulo.
    • RequiredVersion : especifica una versión exacta y necesaria del módulo. Esto no se puede usar con las otras claves de versión.

No se puede especificar el parámetro FullyQualifiedModule en el mismo comando que un parámetro Module . Los dos parámetros son mutuamente excluyentes.

Type:ModuleSpecification[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Module

Especifica y matriz de comandos en los complementos y módulos de Windows PowerShell. Escriba los nombres de módulo y complemento. No se permiten caracteres comodín.

Import-PSSession no puede importar proveedores desde un complemento.

Para obtener más información, consulte about_PSSnapins y about_Modules.

Type:String[]
Aliases:PSSnapin
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Prefix

Especifica un prefijo para los nombres de los nombres de los comandos importados.

Utilice este parámetro para evitar conflictos de nombres que se pueden producir cuando distintos comandos de la sesión tienen el mismo nombre.

Por ejemplo, si especifica el prefijo Remote y, a continuación, importa un Get-Date cmdlet, el cmdlet se conoce en la sesión como Get-RemoteDatey no se confunde con el cmdlet original Get-Date .

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Session

Especifica la PSSession desde la que se importan los cmdlets. Escriba una variable que contenga un objeto de sesión o un comando que obtenga un objeto de sesión, como un New-PSSession comando o Get-PSSession . Sólo puede especificar una sesión. Este parámetro es obligatorio.

Type:PSSession
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

Entradas

None

No se pueden canalizar objetos a este cmdlet.

Salidas

PSModuleInfo

Este cmdlet devuelve el mismo objeto de módulo que New-Module devuelven los cmdlets y Get-Module . Sin embargo, el módulo importado es temporal y sólo existe en la sesión actual. Para crear un módulo permanente en el disco, use el Export-PSSession cmdlet .

Notas

  • Import-PSSession se basa en la infraestructura de comunicación remota de PowerShell. Para usar este cmdlet, el equipo debe estar configurado para la comunicación remota de WS-Management. Para obtener más información, consulte about_Remote y about_Remote_Requirements.
  • Import-PSSession no importa variables ni proveedores de PowerShell.
  • Cuando se importan comandos con los mismos nombres que los comandos de la sesión actual, los comandos importados pueden ocultar alias, funciones y cmdlets de la sesión y pueden reemplazar las funciones y variables de la sesión. Para evitar conflictos de nombres, use el parámetro Prefix . Para obtener más información, vea about_Command_Precedence.
  • Import-PSSession convierte todos los comandos en funciones antes de importarlos. Como resultado, los comandos importados se comportan de manera un poco distinta a como lo harían si conservasen su tipo de comando original. Por ejemplo, si importa un cmdlet desde una PSSession y, a continuación, importa un cmdlet con el mismo nombre desde un módulo o un complemento, el cmdlet importado desde la PSSession se ejecuta siempre de forma predeterminada porque las funciones tienen prioridad frente a los cmdlets. Por el contrario, si importa un alias a una sesión que tenga un alias con el mismo nombre, el alias original se utiliza siempre, porque los alias tienen prioridad sobre las funciones. Para obtener más información, vea about_Command_Precedence.
  • Import-PSSession usa el Write-Progress cmdlet para mostrar el progreso del comando. Puede ver la barra de progreso mientras se ejecuta el comando.
  • Para buscar los comandos que se van a importar, Import-PSSession usa el Invoke-Command cmdlet para ejecutar un Get-Command comando en PSSession. Para obtener datos de formato para los comandos, usa el Get-FormatData cmdlet . Es posible que vea mensajes de error de estos cmdlets al ejecutar un Import-PSSession comando. Además, Import-PSSession no se pueden importar comandos desde una PSSession que no incluya los Get-Commandcmdlets , Get-FormatData, Select-Objecty Get-Help .
  • Los comandos importados tienen las mismas limitaciones que otros comandos remotos, incluida la incapacidad para iniciar un programa con una interfaz de usuario, como el Bloc de notas.
  • Dado que los perfiles de Windows PowerShell no se ejecutan en PSSessions, los comandos que agrega un perfil a una sesión no están disponibles para Import-PSSession. Para importar comandos desde un perfil, use un Invoke-Command comando para ejecutar el perfil en PSSession manualmente antes de importar comandos.
  • El módulo temporal que Import-PSSession crea podría incluir un archivo de formato, incluso si el comando no importa datos de formato. Si el comando no importa datos de formato, ninguno de los archivos de formato creados contendrá datos de formato.
  • Para usar Import-PSSession, la directiva de ejecución de la sesión actual no puede ser Restringida o AllSigned, ya que el módulo temporal que Import-PSSession crea contiene archivos de script sin firmar que están prohibidos por estas directivas. Para usar Import-PSSession sin cambiar la directiva de ejecución del equipo local, use el parámetro Scope de Set-ExecutionPolicy para establecer una directiva de ejecución menos restrictiva para un único proceso.
  • En Windows PowerShell 2.0, los temas de ayuda de los comandos que se importan desde otra sesión no incluyen el prefijo que se asigna mediante el parámetro Prefix . Para obtener ayuda sobre un comando importado en Windows PowerShell 2.0, utilice el nombre de comando original (sin prefijo).