Dienst in PowerShell erstellen und ausführen

MD Aminul Islam 15 Februar 2024
Dienst in PowerShell erstellen und ausführen

Dienste sind das Hintergrundprogramm, das das System automatisch generiert, um eine bestimmte Aufgabe auszuführen. Aber durch die Verwendung von PowerShell können wir einen Dienst manuell erstellen.

In diesem Artikel werden wir sehen, wie wir einen Dienst mit PowerShell manuell erstellen können. Außerdem machen wir das Thema einfacher, indem wir ein Beispiel und Erklärungen verwenden.

Dienst mit PowerShell erstellen und ausführen

In unserem Beispiel unten erstellen wir einen einfachen Dienst namens TestService. Der Code für unser Beispiel ist unten.

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
}

Der Zweck jeder Zeile des obigen PowerShell-Skripts wird als Kommentar hinterlassen. Nachdem Sie den obigen Beispielcode ausgeführt haben, erhalten Sie eine Ausgabe wie die folgende.

Führen Sie das Programm mit dem folgenden Befehl aus.

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

Testservice

Um zu überprüfen, ob der Dienst enthalten ist, gehen Sie zu den Diensten Ihres Systems und suchen Sie den Dienst nach Namen.

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

Verwandter Artikel - PowerShell Service