Hallo zusammen,
ich habe einen Windows Dienst mit Visual Basic (.NET 4.5) programmiert, der zeitgesteuert ein bestimmtes PowerShell-Skript starten soll. Der Dienst wird als LocalSystem registriert funktioniert auch ohne Probleme.
Nur der Start des Powershell-Skriptes will er nicht machen. Ich dachte bislang, dass ich ein Problem mit der Session 0 und Powershell habe, kann das aber auch nicht so recht verifizieren.
Der Aufruf als "Ausführen" unter Windows funktioniert jedenfalls (angemeldet als Administrator).
Der ReturnCode wird auch ins Log geschrieben und lautet "1". Irgendwie sehe ich den Wald vor lauter Bäumen nicht ...
Im Moment arbeite ich wie folgt:
Vielleicht kann mir ja einer auf die Sprünge helfen. Tante G. konnte es bisher nicht ...
ich habe einen Windows Dienst mit Visual Basic (.NET 4.5) programmiert, der zeitgesteuert ein bestimmtes PowerShell-Skript starten soll. Der Dienst wird als LocalSystem registriert funktioniert auch ohne Probleme.
Nur der Start des Powershell-Skriptes will er nicht machen. Ich dachte bislang, dass ich ein Problem mit der Session 0 und Powershell habe, kann das aber auch nicht so recht verifizieren.
Der Aufruf als "Ausführen" unter Windows funktioniert jedenfalls (angemeldet als Administrator).
Der ReturnCode wird auch ins Log geschrieben und lautet "1". Irgendwie sehe ich den Wald vor lauter Bäumen nicht ...
Im Moment arbeite ich wie folgt:
VB.NET-Quellcode
- Dim processStartInfo As ProcessStartInfo = New System.Diagnostics.ProcessStartInfo
- Dim myProcess As Process = New Process()
- processStartInfo.FileName = "cmd"
- processStartInfo.Arguments = "powershell -file C:\PowerShell\MeinSkriptMitAPCNamen.ps1 -CN APCName"
- processStartInfo.WindowStyle = ProcessWindowStyle.Normal
- processStartInfo.UseShellExecute = False
- myProcess.StartInfo = processStartInfo
- myProcess.Start()
- myProcess.WaitForExit(10000)
- Me.WriteToLogInClass("taskWorkerCallBack --> " & "ExitCode: " & myProcess.ExitCode & " " & "ExitTime: " & myProcess.ExitTime)
- If Not myProcess.HasExited Then
- myProcess.Kill()
- Me.WriteToLogInClass("taskWorkerCallBack --> " & "myProcess.Kill")
- End If
Vielleicht kann mir ja einer auf die Sprünge helfen. Tante G. konnte es bisher nicht ...