Get-PSSession
Obtiene las sesiones de Windows PowerShell en equipos locales y remotos.
Sintaxis
Get-PSSession
[-Name <String[]>]
[<CommonParameters>]
Get-PSSession
[-ComputerName] <String[]>
[-ApplicationName <String>]
[-ConfigurationName <String>]
[-Name <String[]>]
[-Credential <PSCredential>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[-Port <Int32>]
[-UseSSL]
[-ThrottleLimit <Int32>]
[-State <SessionFilterState>]
[-SessionOption <PSSessionOption>]
[<CommonParameters>]
Get-PSSession
[-ComputerName] <String[]>
[-ApplicationName <String>]
[-ConfigurationName <String>]
-InstanceId <Guid[]>
[-Credential <PSCredential>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[-Port <Int32>]
[-UseSSL]
[-ThrottleLimit <Int32>]
[-State <SessionFilterState>]
[-SessionOption <PSSessionOption>]
[<CommonParameters>]
Get-PSSession
[-ConnectionUri] <Uri[]>
[-ConfigurationName <String>]
[-AllowRedirection]
[-Name <String[]>]
[-Credential <PSCredential>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[-ThrottleLimit <Int32>]
[-State <SessionFilterState>]
[-SessionOption <PSSessionOption>]
[<CommonParameters>]
Get-PSSession
[-ConnectionUri] <Uri[]>
[-ConfigurationName <String>]
[-AllowRedirection]
-InstanceId <Guid[]>
[-Credential <PSCredential>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[-ThrottleLimit <Int32>]
[-State <SessionFilterState>]
[-SessionOption <PSSessionOption>]
[<CommonParameters>]
Get-PSSession
[-InstanceId <Guid[]>]
[<CommonParameters>]
Get-PSSession
[-Id] <Int32[]>
[<CommonParameters>]
Description
El cmdlet Get-PSSession obtiene las sesiones de PowerShell administradas por el usuario (PSSessions) en equipos locales y remotos.
A partir de Windows PowerShell 3.0, las sesiones se almacenan en los equipos al final remoto de cada conexión. Puede usar los parámetros ComputerName o ConnectionUri de Get-PSSession para obtener las sesiones que se conectan al equipo local o a los equipos remotos, incluso si no se crearon en la sesión actual.
Sin parámetros, get-PSSession obtiene todas las sesiones que se crearon en la sesión actual.
Use los parámetros de filtrado, incluidos Name, ID, InstanceID, State, ApplicationNamey ConfigurationName para seleccionar entre las sesiones que get-PSSession devuelve.
Use los parámetros restantes para configurar la conexión temporal en la que se ejecuta el comando get-PSSession
NOTA: En Windows PowerShell 2.0, sin parámetros, get-PSSession obtiene todas las sesiones que se crearon en la sesión actual. El parámetro ComputerName obtiene sesiones que se crearon en la sesión actual y se conectan al equipo especificado.
Para obtener más información sobre las sesiones de PowerShell, consulte about_PSSessions.
Ejemplos
Ejemplo 1: Obtención de sesiones creadas en la sesión actual
Get-PSSession
Este comando obtiene todas las PSSessions que se crearon en la sesión actual. No obtiene PSSessions que se crearon en otras sesiones o en otros equipos, incluso si se conectan a este equipo.
Ejemplo 2: Obtener sesiones conectadas al equipo local
Get-PSSession -ComputerName "localhost"
Este comando obtiene el PSSessions que están conectados al equipo local. Para indicar el equipo local, escriba el nombre del equipo, localhost o un punto (.)
El comando devuelve todas las sesiones del equipo local, incluso si se crearon en sesiones diferentes o en equipos diferentes.
Ejemplo 3: Obtener sesiones conectadas a un equipo
Get-PSSession -ComputerName "Server02"
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
2 Session3 Server02 Disconnected ITTasks Busy
1 ScheduledJobs Server02 Opened Microsoft.PowerShell Available
3 Test Server02 Disconnected Microsoft.PowerShell Busy
Este comando obtiene el PSSessions que están conectados al equipo Server02.
El comando devuelve todas las sesiones de Server02, incluso si se crearon en sesiones diferentes o en equipos diferentes.
La salida muestra que dos de las sesiones tienen un estado Desconectado y una disponibilidad ocupada. Se crearon en sesiones diferentes y actualmente están en uso. La sesión ScheduledJobs, que está abierta y disponible, se creó en la sesión actual.
Ejemplo 4: Guardar los resultados de este comando
New-PSSession -ComputerName Server01, Server02, Server03
$s1, $s2, $s3 = Get-PSSession
En este ejemplo se muestra cómo guardar los resultados de un comando get-PSSession de en varias variables.
El primer comando usa el cmdlet new-PSSession
El segundo comando usa un cmdlet de
Cuando PowerShell asigna una matriz de objetos a una matriz de variables, asigna el primer objeto a la primera variable, el segundo objeto a la segunda variable, etc. Si hay más objetos que variables, asigna todos los objetos restantes a la última variable de la matriz. Si hay más variables que objetos, no se usan las variables adicionales.
Ejemplo 5: Eliminación de una sesión mediante un identificador de instancia
Get-PSSession | Format-Table -Property ComputerName, InstanceID
$s = Get-PSSession -InstanceID a786be29-a6bb-40da-80fb-782c67f7db0f
Remove-PSSession -Session $s
En este ejemplo se muestra cómo obtener un de PSSession de
El primer comando obtiene todas las PSSessions que se crearon en la sesión actual.
Envía el
El segundo comando usa el cmdlet get-PSSession de
El tercer comando usa el cmdlet Remove-PSSession para eliminar el de PSSession de
Ejemplo 6: Obtener una sesión con un nombre determinado
Los comandos de este ejemplo buscan una sesión que tiene un formato de nombre determinado y usa una configuración de sesión determinada y, a continuación, se conectan a la sesión. Puede usar un comando como este para buscar una sesión en la que un compañero inició una tarea y conectarse para finalizar la tarea.
Get-PSSession -ComputerName Server02, Server12 -Name BackupJob* -ConfigurationName ITTasks -SessionOption @{OperationTimeout=240000}
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
3 BackupJob04 Server02 Disconnected ITTasks None
$s = Get-PSSession -ComputerName Server02 -Name BackupJob04 -ConfigurationName ITTasks | Connect-PSSession
$s
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
5 BackupJob04 Server02 Opened ITTasks Available
El primer comando obtiene sesiones en los equipos remotos Server02 y Server12 que tienen nombres que comienzan por BackupJob y usan la configuración de sesión de ITTasks. El comando usa el parámetro Name para especificar el patrón de nombre y el parámetro ConfigurationName para especificar la configuración de sesión. El valor del parámetro SessionOption es una tabla hash que establece el valor del OperationTimeout a 240000 milisegundos (4 minutos). Esta configuración proporciona al comando más tiempo para completarse. Los parámetros ConfigurationName y SessionOption se usan para configurar las sesiones temporales en las que el cmdlet Get-PSSession se ejecuta en cada equipo. La salida muestra que el comando devuelve la sesión BackupJob04. La sesión está desconectada y la disponibilidad es None, lo que indica que no está en uso.
El segundo comando usa el cmdlet Get-PSSession para acceder a la sesión de BackupJob04 y al cmdlet Connect-PSSession para conectarse a la sesión. El comando guarda la sesión en la variable $s.
El tercer comando obtiene la sesión en la variable $s. La salida muestra que el comando Connect-PSSession se realizó correctamente. La sesión está en el estado Abierto y está disponible para su uso.
Ejemplo 7: Obtener una sesión mediante su identificador
Get-PSSession -Id 2
Este comando obtiene el psSession de
Parámetros
-AllowRedirection
Indica que este cmdlet permite el redireccionamiento de esta conexión a un identificador uniforme de recursos (URI) alternativo. De forma predeterminada, PowerShell no redirige las conexiones.
Este parámetro configura la conexión temporal que se crea para ejecutar un comando
Este parámetro se introdujo en Windows PowerShell 3.0.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | False |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-ApplicationName
Especifica el nombre de una aplicación. Este cmdlet solo se conecta a sesiones que usan la aplicación especificada.
Escriba el segmento de nombre de la aplicación del URI de conexión.
Por ejemplo, en el siguiente URI de conexión, el nombre de la aplicación es WSMan: https://localhost:5985/WSMAN
.
El nombre de aplicación de una sesión se almacena en la propiedad Runspace.ConnectionInfo.AppName de la sesión.
El valor de este parámetro se usa para seleccionar y filtrar sesiones. No cambia la aplicación que usa la sesión.
Tipo: | String |
Posición: | Named |
Valor predeterminado: | All sessions |
Requerido: | False |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | False |
-Authentication
Especifica el mecanismo que se usa para autenticar las credenciales de la sesión en la que se ejecuta el comando Get-PSSession.
Este parámetro configura la conexión temporal que se crea para ejecutar un comando
Los valores aceptables para este parámetro son:
- Predeterminado
- Básico
- Credssp
- Digerir
- Kerberos
- Negociar
- NegotiateWithImplicitCredential.
El valor predeterminado es Default.
Para obtener más información sobre los valores de este parámetro, vea AuthenticationMechanism Enumeration en MSDN Library.
PRECAUCIÓN: La autenticación del proveedor de soporte técnico de seguridad de credenciales (CredSSP), en la que las credenciales del usuario se pasan a un equipo remoto para autenticarse, está diseñada para comandos que requieren autenticación en más de un recurso, como el acceso a un recurso compartido de red remoto. Este mecanismo aumenta el riesgo de seguridad de la operación remota. Si el equipo remoto está en peligro, se pueden usar las credenciales que se pasan a ella para controlar la sesión de red.
Este parámetro se introdujo en Windows PowerShell 3.0.
Tipo: | AuthenticationMechanism |
Valores aceptados: | Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos |
Posición: | Named |
Valor predeterminado: | Default |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-CertificateThumbprint
Especifica el certificado de clave pública digital (X509) de una cuenta de usuario que tiene permiso para crear la sesión en la que se ejecuta el comando Get-PSSession. Escriba la huella digital del certificado.
Este parámetro configura la conexión temporal que se crea para ejecutar un comando
Los certificados se usan en la autenticación basada en certificados de cliente. Solo se pueden asignar a cuentas de usuario locales; no funcionan con cuentas de dominio.
Para obtener una huella digital de certificado, use un comando Get-Item o Get-ChildItem en la unidad Cert: de PowerShell.
Este parámetro se introdujo en Windows PowerShell 3.0.
Tipo: | String |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-ComputerName
Especifica una matriz de nombres de equipos. Obtiene las sesiones que se conectan a los equipos especificados. No se permiten caracteres comodín. No hay ningún valor predeterminado.
A partir de Windows PowerShell 3.0, objetos psSession se almacenan en los equipos al final remoto de cada conexión. Para obtener las sesiones en los equipos especificados, PowerShell crea una conexión temporal a cada equipo y ejecuta un comando Get-PSSession.
Escriba el nombre NetBIOS, una dirección IP o un nombre de dominio completo de uno o varios equipos. Para especificar el equipo local, escriba el nombre del equipo, localhost o un punto (.).
Nota: Este parámetro obtiene sesiones solo de equipos que ejecutan Windows PowerShell 3.0 o versiones posteriores de PowerShell. Las versiones anteriores no almacenan sesiones.
Tipo: | String[] |
Alias: | Cn |
Posición: | 0 |
Valor predeterminado: | None |
Requerido: | True |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | False |
-ConfigurationName
Especifica el nombre de una configuración. Este cmdlet solo se obtiene a las sesiones que usan la configuración de sesión especificada.
Escriba un nombre de configuración o el URI de recurso completo para una configuración de sesión.
Si especifica solo el nombre de configuración, se antepone el siguiente URI de esquema: https://schemas.microsoft.com/powershell
.
El nombre de configuración de una sesión se almacena en la propiedad ConfigurationName de la sesión.
El valor de este parámetro se usa para seleccionar y filtrar sesiones. No cambia la configuración de sesión que usa la sesión.
Para obtener más información sobre las configuraciones de sesión, consulte about_Session_Configurations.
Tipo: | String |
Posición: | Named |
Valor predeterminado: | All sessions |
Requerido: | False |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | False |
-ConnectionUri
Especifica un URI que define el punto de conexión para la sesión temporal en la que se ejecuta el comando Get-PSSession. El URI debe estar completo.
Este parámetro configura la conexión temporal que se crea para ejecutar un comando
El formato de esta cadena es:
<transport>://<ComputerName>:<Port>/<ApplicationName>
El valor predeterminado es: https://localhost:5985/WSMAN.
Si no especifica un
Si el equipo de destino redirige la conexión a un URI diferente, PowerShell impide el redireccionamiento a menos que use el parámetro allowRedirection en el comando.
Este parámetro se introdujo en Windows PowerShell 3.0.
Este parámetro obtiene sesiones solo de equipos que ejecutan Windows PowerShell 3.0 o versiones posteriores de Windows PowerShell. Las versiones anteriores no almacenan sesiones.
Tipo: | Uri[] |
Alias: | URI, CU |
Posición: | 0 |
Valor predeterminado: | Http://localhost:5985/WSMAN |
Requerido: | True |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | False |
-Credential
Especifica una credencial de usuario.
Este cmdlet ejecuta el comando con los permisos del usuario especificado.
Especifique una cuenta de usuario que tenga permiso para conectarse al equipo remoto y ejecute un comando get-PSSession. El valor predeterminado es el usuario actual.
Escriba un nombre de usuario, como User01
, Domain01\User01
o User@Domain.com
, o escriba un objeto de PSCredential, como uno devuelto por el cmdlet Get-Credential.
Al escribir un nombre de usuario, este cmdlet le pedirá una contraseña.
Este parámetro se configura en la conexión temporal que se crea para ejecutar un comando get-PSSession
Este parámetro se introdujo en Windows PowerShell 3.0.
Tipo: | PSCredential |
Posición: | Named |
Valor predeterminado: | Current user |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Id
Especifica una matriz de identificadores de sesión. Este cmdlet obtiene solo las sesiones con los identificadores especificados. Escriba uno o varios identificadores, separados por comas, o use el operador de intervalo (..) para especificar un intervalo de identificadores. No se puede usar el parámetro ID junto con el parámetro ComputerName .
Un identificador es un entero que identifica de forma única las sesiones administradas por el usuario en la sesión actual. Es más fácil recordar y escribir que el InstanceId, pero solo es único dentro de la sesión actual. El identificador de una sesión se almacena en la propiedad ID de la sesión.
Tipo: | Int32[] |
Posición: | 0 |
Valor predeterminado: | All sessions |
Requerido: | True |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | False |
-InstanceId
Especifica una matriz de identificadores de instancia de sesiones. Este cmdlet obtiene solo las sesiones con los identificadores de instancia especificados.
El identificador de instancia es un GUID que identifica de forma única una sesión en un equipo local o remoto.
El instanceID de
El identificador de instancia de una sesión se almacena en la propiedad InstanceID de la sesión.
Tipo: | Guid[] |
Posición: | Named |
Valor predeterminado: | All sessions |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Name
Especifica una matriz de nombres de sesión. Este cmdlet obtiene solo las sesiones que tienen los nombres descriptivos especificados. Se permiten caracteres comodín.
El nombre descriptivo de una sesión se almacena en la propiedad Name de la sesión.
Tipo: | String[] |
Posición: | Named |
Valor predeterminado: | All sessions |
Requerido: | False |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | True |
-Port
Especifica el puerto de red especificado que se usa para la conexión temporal en la que se ejecuta el comando
Antes de usar un puerto alternativo, debe configurar el agente de escucha winRM en el equipo remoto para que escuche en ese puerto. Para configurar el agente de escucha, escriba los dos comandos siguientes en el símbolo del sistema de PowerShell:
Remove-Item -Path WSMan:\Localhost\listener\listener* -Recurse
New-Item -Path WSMan:\Localhost\listener -Transport http -Address * -Port \<port-number\>
Este parámetro se configura en la conexión temporal que se crea para ejecutar un comando get-PSSession
No use el parámetro Port a menos que sea necesario.
El puerto de
Este parámetro se introdujo en Windows PowerShell 3.0.
Tipo: | Int32 |
Posición: | Named |
Valor predeterminado: | 5985, 5986 |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-SessionOption
Especifica opciones avanzadas para la sesión. Escriba un objeto SessionOption, como uno que cree mediante el cmdlet New-PSSessionOption o una tabla hash en la que las claves son nombres de opción de sesión y los valores son valores de opción de sesión.
Los valores predeterminados de las opciones se determinan mediante el valor de la variable de preferencia $PSSessionOption, si se establece. De lo contrario, las opciones establecidas en la configuración de sesión establecen los valores predeterminados.
Los valores de opción de sesión tienen prioridad sobre los valores predeterminados de las sesiones establecidas en la variable de preferencia $PSSessionOption y en la configuración de la sesión. Sin embargo, no tienen prioridad sobre los valores máximos, cuotas o límites establecidos en la configuración de sesión.
Para obtener una descripción de las opciones de sesión, incluidos los valores predeterminados, consulte New-PSSessionOption
.
Para obtener información sobre la variable de preferencia de $PSSessionOption
, vea about_Preference_Variables.
Para obtener más información sobre las configuraciones de sesión, consulte about_Session_Configurations.
Tipo: | PSSessionOption |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-State
Especifica un estado de sesión. Este cmdlet solo obtiene sesiones en el estado especificado. Los valores aceptables para este parámetro son: All, Open, Disconnected, Closed y Broken. El valor predeterminado es All.
El valor de estado de sesión es relativo a las sesiones actuales. Las sesiones que no se crearon en las sesiones actuales y que no están conectadas a la sesión actual tienen un estado Desconectado incluso cuando están conectados a una sesión diferente.
El estado de una sesión se almacena en la propiedad State
Este parámetro se introdujo en Windows PowerShell 3.0.
Tipo: | SessionFilterState |
Valores aceptados: | All, Opened, Disconnected, Closed, Broken |
Posición: | Named |
Valor predeterminado: | All |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-ThrottleLimit
Especifica el número máximo de conexiones simultáneas que se pueden establecer para ejecutar el comando Get-PSSession. Si omite este parámetro o especifica un valor de 0 (cero), se usa el valor predeterminado, 32. El límite solo se aplica al comando actual, no a la sesión o al equipo.
Este parámetro se introdujo en Windows PowerShell 3.0.
Tipo: | Int32 |
Posición: | Named |
Valor predeterminado: | 32 |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-UseSSL
Indica que este cmdlet usa el protocolo Capa de sockets seguros (SSL) para establecer la conexión en la que se ejecuta el comando Get-PSSession. De forma predeterminada, no se usa SSL. Si usa este parámetro, pero SSL no está disponible en el puerto usado para el comando, se produce un error en el comando.
Este parámetro configura la conexión temporal que se crea para ejecutar un comando Get-PSSession con el parámetro ComputerName.
Este parámetro se introdujo en Windows PowerShell 3.0.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | False |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
Entradas
None
No se puede canalizar la entrada a este cmdlet.
Salidas
Notas
- Este cmdlet obtiene sesiones administradas por el usuario objetos psSession" como los creados mediante los cmdlets New-PSSession, Enter-PSSessiony Invoke-Command. No obtiene la sesión administrada por el sistema que se crea al iniciar PowerShell.
- A partir de Windows PowerShell 3.0, objetos PSSession se almacenan en el equipo que se encuentra en el lado servidor o recibe el final de una conexión. Para obtener las sesiones almacenadas en el equipo local o en un equipo remoto, PowerShell establece una sesión temporal en el equipo especificado y ejecuta comandos de consulta en la sesión.
- Para obtener sesiones que se conectan a un equipo remoto, use los parámetros ComputerName o ConnectionUri para especificar el equipo remoto. Para filtrar las sesiones que obtiene Get-PSSession, use los parámetros Name, ID, InstanceIDy State. Use los parámetros restantes para configurar la sesión temporal que usa Get-PSSession.
- Al usar los parámetros de ComputerName o ConnectionUri, get-PSSession obtiene solo sesiones de equipos que ejecutan Windows PowerShell 3.0 y versiones posteriores de PowerShell.
- El valor de la propiedad state
de un PSSession de de PSSession dees relativo a la sesión actual. Por lo tanto, un valor de de PSSession deDesconectado significa que elno está conectado a la sesión actual. Sin embargo, no significa que el psSession se desconecta de todas las sesiones. Puede estar conectado a otra sesión. Para determinar si puede conectarse o volver a conectarse al desde la sesión actual, use la propiedad Availability .
Un de disponibilidad
Para obtener más información sobre los valores de la propiedad state de
Para obtener más información sobre los valores de la propiedad availability