Crear y ejecutar servicio en PowerShell

MD Aminul Islam 15 febrero 2024
Crear y ejecutar servicio en PowerShell

Los servicios son el programa de fondo que el sistema genera automáticamente para realizar una tarea específica. Pero al usar PowerShell, podemos crear un servicio manualmente.

En este artículo, veremos cómo podemos crear manualmente un servicio utilizando PowerShell. Además, facilitamos el tema mediante el uso de un ejemplo y explicaciones.

Crear y ejecutar el servicio mediante PowerShell

En nuestro ejemplo a continuación, crearemos un servicio simple llamado TestService. El código de nuestro ejemplo se encuentra a continuación.

if($args.count -eq 1)
{
  $Service_Name = "TestService" # Setting the service name
  $Service_Root_Path = "D:\TestService\" # Setting the service root path
  $Service_Path = $Service_Root_Path + "\TestService.exe" # Setting the service path
  $Service_Description = "My Test Service" # Providing some description of the service
  $Service_Config = $Service_Root_Path + "\appsettings.Production.json" # Service configuration
  $InstanceConfig = "D:\InstanceConfig.config" # Instance configuration

   (Get-Content -Path $Service_Config -Raw) -Replace "1024", $args[0] | Set-Content -Path $Service_Config

  Copy-Item $InstanceConfig -Destination $Service_Root_Path

  # Checking if the service already exists. If it exists, delete it.
  if (Get-Service -Name $Service_Name -ErrorAction SilentlyContinue)
  {
    Stop-Service -Name $Service_Name # Stop the service
    sc.exe delete $Service_Name # Delete the service
  }

  New-Service -Name $Service_Name -BinaryPathName $Service_Path -Description $Service_Description
  # Modify service configuration settings
  [System.Environment]::SetEnvironmentVariable('ASPNETCORE_ENVIRONMENT','Production',[System EnvironmentVariableTarget]::Machine)
  Set-Service -Name $Service_Name -StartupType Automatic
  Start-Service -Name $Service_Name # Start the service
  Get-Service -Name $Service_Name
}
else
{
  # If the user didn't provide an InstanceId, return an error message.
  $Message = "Required to specify InstanceId argument"
  write-output $Message
}

El propósito de cada línea del script de PowerShell anterior se deja como comentarios. Después de ejecutar el código de ejemplo anterior, obtendrá un resultado como el que se muestra a continuación.

Ejecute el programa usando el siguiente comando.

.\example.ps1 "YOUR_INSTANCE_ID"
Status   Name               DisplayName
------   ----               -----------
Stopped  TestService        TestService
Running  TestService        TestService

Servicio de prueba

Para verificar si el servicio está incluido, vaya a los servicios de su sistema y busque el servicio por nombre.

MD Aminul Islam avatar MD Aminul Islam avatar

Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.

LinkedIn

Artículo relacionado - PowerShell Service