Búsqueda de sitios web

Compruebe si el servicio se está ejecutando en PowerShell [3 formas]


Usando el cmdlet Get-Service

Utilice Get-Service con el cmdlet Where-Object para comprobar si un servicio concreto se está ejecutando en nuestra máquina local.

Utilice el cmdlet Get-Service:

Get-Service |
Where-Object {
($_.Status -EQ "Running") -and
($_.DisplayName -EQ "Workstation")
}

Producción :

Status   Name               DisplayName
------   ----               -----------
Running  LanmanWorkstation  Workstation

Si necesita poner esta condición, diríjase a esta sección.

Usamos el cmdlet Get-Service para obtener una lista de todos los servicios en una computadora local; Luego, la lista se canaliza al cmdlet Where-Object, que filtra la lista según los criterios especificados. El bloque de secuencia de comandos está entre llaves ({}) y contiene una secuencia de comandos que se ejecuta para cada servicio de la lista.

El bloque de script en este comando contenía dos condiciones que verificaban el estado de cada servicio ($_.Status) y el nombre para mostrar de cada servicio ($_.DisplayName). La condición era una expresión booleana que era True solo si el estado del servicio era Running (-EQ "Running") y el nombre para mostrar del servicio era Workstation (-EQ "Workstation"). El operador -and combinó las dos condiciones y devolvió True si ambas eran verdaderas.

El cmdlet Get-Service solo está disponible en la plataforma Windows y se utiliza para recuperar todos los servicios en nuestra computadora local o remota. Primero, obtiene los objetos representados como servicios en la computadora, que incluyen los servicios Detenido y En ejecución. Luego, muestra la información relacionada con el servicio, por ejemplo, Status, DisplayName y Name del servicio.

De forma predeterminada, cuando se ejecuta el cmdlet Get-Service sin parámetros, se devuelven todos los servicios de la computadora local. Podemos indicar a este cmdlet que recupere solo servicios concretos proporcionando el nombre del servicio o el nombre para mostrar de los servicios, o podemos canalizar objetos de servicio a este cmdlet.

La lista resultante incluye sólo los servicios que cumplen ambas condiciones. Si no hay servicios que cumplan ambas condiciones, la lista estará vacía.

Utilice el cmdlet Get-Service con el bloque if-else

Para comprobar si un servicio específico se está ejecutando en PowerShell:

  • Obtenga un objeto de servicio con un nombre de servicio WSearch y guárdelo en una variable.
  • Utilice el bloque if-else para evaluar la propiedad Longitud de un objeto de servicio (aquí utilizamos el objeto de servicio creado en el paso anterior).
  • Imprima Running si el valor de la propiedad .Length es mayor que 0; de lo contrario, Detenido.

Utilice el cmdlet Get-Service con el bloque if-else:

$service = Get-Service -Name WSearch -ErrorAction SilentlyContinue

if ($service.Length -gt 0) {
    Write-Host "Running"
}else{
Write-Host "Stopped"
}

Este script de PowerShell recuperó un objeto de servicio para el servicio con el nombre WSearch usando el cmdlet Get-Service y verificó la propiedad .Length del objeto de servicio. . Si es mayor que 0, entonces el servicio se está ejecutando y el script muestra un mensaje que dice Running; de lo contrario, el servicio se detiene y el mensaje diría Detenido.

Tenga en cuenta que este script no funcionará si el servicio está en pausa porque el objeto $service seguirá existiendo incluso si el servicio está Paused. Para comprobar si hay un servicio en pausa, deberá utilizar la propiedad .Status del objeto de servicio de esta manera:

Utilice el cmdlet Get-Service con el bloque if-else:

$service = Get-Service -Name WSearch -ErrorAction SilentlyContinue

if ($service.Status -eq "Running") {
    Write-Host "Running"
} elseif ($service.Status -eq "Paused") {
    Write-Host "Paused"
} else {
    Write-Host "Stopped"
}

El script anterior mostrará correctamente un mensaje según el estado del servicio, ya sea que esté ejecutándose, en pausa o detenido.

Hasta este punto, hemos aprendido cómo verificar el estado de un servicio, ya sea en ejecución, detenido o en pausa. ¿Qué pasa si tenemos una situación para crear una aplicación de servicio, ejecutarla y verificar su estado actual? Aprendamos eso en la siguiente sección, pero antes de eso, es esencial conocer la diferencia entre un servicio y una aplicación de servicio.

En PowerShell, un servicio se refiere a un proceso en segundo plano o componente del sistema que se ejecuta en una computadora local/remota. Los servicios son responsables de realizar diversas tareas, como ejecutar un servidor web, realizar copias de seguridad o monitorear el rendimiento del sistema.

Estos se administran mediante los cmdlets Get-Service, Start-Service, Stop-Service y Restart-Service. , que forman parte del marco integrado de PowerShell. Podemos usar estos cmdlets para recuperar una lista de todos los servicios en una computadora local/remota, iniciar o detener un servicio, o reiniciar un servicio.

Una aplicación de servicio es un tipo específico de servicio utilizado en una granja de servidores de SharePoint. Estas aplicaciones proporcionan diferentes funciones y características a SharePoint, como búsqueda, metadatos administrados o perfiles de usuario. Estos se administran mediante los cmdlets de SharePoint PowerShell, que forman parte del Shell de administración de SharePoint.

Podemos usar el cmdlet Get-SPServiceApplication para recuperar una lista de todas las aplicaciones de servicio en una granja de SharePoint (lo aprenderemos en la siguiente sección), y el Start-SPServiceApplication Cmdlets y Stop-SPServiceApplication para iniciar o detener una aplicación de servicio.

Entonces, un servicio es un término general que se refiere a un proceso en segundo plano o componente del sistema que se ejecuta en una computadora. Por el contrario, una aplicación de servicio es un tipo específico de servicio que se utiliza en una granja de servidores de SharePoint para proporcionar diversas funciones y características a SharePoint.

Usando el cmdlet Get-SPServiceApplication

Para crear y ejecutar aplicaciones de servicio en PowerShell:

  • Utilice el cmdlet Add-PSSnapin para agregar el complemento SharePoint PowerShell.
  • Utilice Get-SPServiceApplication para recuperar todas las aplicaciones de servicio en la granja actual.
  • Utilice Where-Object para filtrar los resultados recibidos del Paso 2 solo para tener aplicaciones de servicio que contengan DisplayName como Servicios de metadatos administrados.
  • Utilice el bloque if-else para comprobar si la aplicación de servicio no es igual a null y muestre un mensaje basado en la condición.

NOTA: Debemos tener SharePoint en nuestra máquina para utilizar los siguientes scripts.

Utilice el cmdlet Get-SPServiceApplication:

Add-PSSnapin microsoft.sharepoint.powershell -ErrorAction SilentlyContinue
$DisplayName="Managed Metadata Services"
$ServiceApp = Get-SPServiceApplication | Where-Object { $_.DisplayName -eq $DisplayName}

if($ServiceApp -ne $null){
    $ServiceApp.Status
}else{
 Write-Host "Service application either not found or not created!"
}

La secuencia de comandos anterior verificó el estado de la aplicación de servicio Servicios de metadatos administrados en SharePoint. Primero, usamos Add-PSSnapin para agregar el complemento SharePoint PowerShell, lo que nos permitió usar cmdlets de SharePoint en la sesión actual de PowerShell.

A continuación, configuramos una variable llamada $DisplayName en la cadena "Managed Metadata Services". Luego usó el cmdlet Get-SPServiceApplication para obtener todas las aplicaciones de servicio en la granja actual y filtró los resultados usando el cmdlet Where-Object para incluir solo aplicaciones de servicio cuyo La propiedad DisplayName coincide con el valor de la variable $DisplayName. Esta lista filtrada de aplicaciones de servicio se almacena en la variable $ServiceApp.

Luego, el script verifica si la variable $ServiceApp no es null, lo que indica que encontramos al menos una aplicación de servicio. Si $ServiceApp no es null, el script genera la propiedad Status de la aplicación de servicio utilizando $ServiceApp.Status expresión.

Si $ServiceApp es null, el script genera un mensaje que indica que la aplicación de servicio no se encontró o no se creó.

Si le preocupa el estado actual de una aplicación de servicio, el siguiente código sería su solución.

Utilice el cmdlet Get-SPServiceApplication:

$TypeName="Managed Metadata Service"
$SeviceApp = Get-SPServiceApplication | Where-Object {$_.TypeName -eq $TypeName}

Podemos usar la variable $ServiceApp para realizar varias operaciones en la aplicación de servicio, como obtener sus propiedades, iniciarla, detenerla o eliminarla. El siguiente ejemplo demuestra cómo se puede utilizar la variable $ServiceApp para iniciar la aplicación de servicio.

Utilice el cmdlet Get-SPServiceApplication:

$TypeName="Managed Metadata Service"
$ServiceApp = Get-SPServiceApplication | Where-Object {$_.TypeName -eq $TypeName}
$ServiceApp | Start-SPServiceInstance

Se trata de cómo comprobar si el servicio se está ejecutando en PowerShell.

Artículos relacionados