Obtenga el estado del servicio desde una computadora remota usando PowerShell

Migel Hewage Nimesha 15 febrero 2024
Obtenga el estado del servicio desde una computadora remota usando PowerShell

Este artículo analizará la conexión a una computadora remota, el acceso a sus servicios y el estado del servicio mediante PowerShell.

Obtenga el estado del servicio desde una computadora remota usando PowerShell

Hay muchas formas de conectarse a una computadora remota y acceder a sus servicios. Windows PowerShell facilita esto mediante el cmdlet Get-WmiObject.

Se puede usar para administrar recursos en una computadora remota fácilmente. Puede ejecutar el comando Get-WmiObject con un nombre de clase WMI para acceder a los servicios informáticos locales.

Este comando se ejecuta en la máquina local de forma predeterminada.

Get-WmiObject Win32_Bus

Producción:

acceder a los servicios informáticos locales

El cmdlet Get-WmiObject proporciona el parámetro -ComputerName para especificar la computadora remota. Puede ser un nombre NetBIOS o una dirección IP de la máquina remota.

En algunos escenarios, es posible que también deba proporcionar un nombre de dominio completo. Este parámetro no depende del mecanismo de comunicación remota de Windows PowerShell.

Por lo tanto, no se basa en el protocolo WS-Management. Los usuarios no necesitan preocuparse por si su computadora está configurada para ejecutar comandos remotos de WM-Management.

Get-WmiObject -Class Win32_Bus -ComputerName 100.34.35.10

Esto debería conectarse a la computadora remota identificada por la dirección IP 100.34.35.10 y recuperar la información del recurso Win32_Bus.

En algunos escenarios, debe especificar el nombre de usuario y la contraseña para conectarse al host remoto. El cmdlet Get-WmiObject tiene un parámetro -Credential para especificar la información de inicio de sesión en la máquina remota.

Hay dos formas de pasar un argumento para el parámetro -Credential.

  1. Proporcione un nombre de usuario
  2. Proporcione un objeto PsCredential

Proporcione un nombre de usuario

El parámetro -Credential del cmdlet Get-WmiObject acepta solo un nombre de usuario o nombre de cuenta de usuario como texto, como se muestra a continuación.

Get-WmiObject Win32_Service -Credential user001 -ComputerName 100.43.10.11

Este comando intentará conectarse al host identificado por la dirección IP 100.43.10.11. La conexión utilizará el nombre de usuario proporcionado (usuario001) como usuario de registro.

Este comando le pedirá al usuario que ingrese la contraseña. Cuando se haya proporcionado la contraseña correcta, establecerá la conexión y recuperará la información de la instancia WMI Win32_Service.

Proporcione un objeto PSCredential

El parámetro -Credential del cmdlet Get-WmiObject acepta el objeto PSCredential como argumento. Esta es una forma muy segura de pasar sus credenciales a cualquier comando.

Podemos crear fácilmente un objeto PSCredential, como se muestra a continuación.

$credentialObj = Get-Credential

El cmdlet Get-Credential devuelve un objeto PSCredential y lo almacena en la variable $credentialObj. Cuando ejecuta el comando anterior en Windows PowerShell, aparecerá un cuadro de diálogo para ingresar los valores de nombre de usuario y contraseña de este objeto.

Cuadro de diálogo Introducir nombre de usuario y contraseña

Ingresemos el nombre de usuario y la contraseña de la siguiente manera.

Ingrese el nombre de usuario y la contraseña

Nombre de usuario: usuario01

Contraseña: usuario01

Comprobemos el valor almacenado en $credentialObj:

$credentialObj

Producción:

valor de $credentialObj

El Nombre de usuario se puede ver como usuario01, y la Contraseña es una Cadena segura de PowerShell. No se recomienda almacenar sus contraseñas en formato de texto sin formato.

Por lo tanto, el objeto PSCredential almacena la contraseña como un SecureString, que es más seguro.

Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.

Artículo relacionado - PowerShell Service