Fehlermeldung in Windows-Systemlog

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von Mono.

    Fehlermeldung in Windows-Systemlog

    Moin Moin zusammen,

    ich hab da mal wieder so ein merkwürdiges Problem.
    Auf meinem PC läuft ein Sicherungsprogramm namens Shadowprotect (Schattensicherungsprogramm).
    Dieses Programm kann nach einer Datensicherung ein Programm ausführen... jedoch erhalte ich, wenn ich meine Exe-Datei einstelle im Windows Systemlog (Bereich System) folgende Meldung:

    "Der Versuch von Benutzer Computername\Benutzer, Computer Computername neu zu starten bzw. herunterzufahren ist fehlgeschlagen."

    Hintergrund:
    Wenn die Datensicherung erfolgreich durchgeführt wurde, soll der PC heruntergefahren werden. Hier mal der Codeschnipsel den ich dafür verwende:

    VB.NET-Quellcode

    1. Private Async Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    2. ExecuteParams()
    3. 'ver = Application.ProductVersion
    4. Dim ergebnis As String = Await Task.Run(Function() set_dasi(gen, typ, ver))
    5. Label1.Text = ergebnis
    6. If ergebnis = "Datensicherung erfolgreich" Then
    7. If shutdown = True Then
    8. Dim myProcessStartInfo As New ProcessStartInfo("shutdown.exe", "-s -f -t 300")
    9. myProcessStartInfo.WorkingDirectory = "C:\Windows\system32\"
    10. Process.Start(myProcessStartInfo) 'C:\Windows\System32\
    11. End If
    12. 'Timer1.Enabled = True
    13. ElseIf ergebnis = "Webserverfehler" Then
    14. Me.Opacity = 100%
    15. Me.BackColor = Color.IndianRed
    16. Timer1.Enabled = True
    17. End If
    18. End Sub



    Gesamter Code:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Imports System.IO
    2. Public Class Form1
    3. Public gen As String
    4. Public typ As String
    5. Public shutdown As Boolean = False
    6. Public ver As String = "2.1.1.4"
    7. Private Function set_dasi(ByVal gen As String, ByVal typ As String, ByVal ver As String) As String
    8. Try
    9. Dim uriString As String = "http://192.168.10.10:8080/ext/dasi.php?gen=" + gen + "&typ=" + typ + "&ver=" + ver
    10. Dim myWebClient As New Net.WebClient
    11. myWebClient.Encoding = System.Text.Encoding.UTF8
    12. Dim ergebnis As String = myWebClient.DownloadString(uriString)
    13. Return CStr(ergebnis)
    14. Catch ex As Exception
    15. End Try
    16. End Function
    17. Public Sub ExecuteParams()
    18. Dim args As String()
    19. args = Environment.GetCommandLineArgs()
    20. For i As Integer = 1 To args.Length - 1
    21. Select Case args(i).ToLower
    22. Case "-?"
    23. MsgBox("-? Zeigt diese Information" & Chr(10) & Chr(13) & "-i Startet das Programm unsichtbar" & Chr(10) & Chr(13) & "-s Fährt den Computer nach 300 Sekunden herunter" & Chr(10) & Chr(13) & "-n für die Nachtsicherung" & Chr(10) & Chr(13) & "-d für die Dauersicherung" & Chr(10) & Chr(13) & "-v Zeigt die Programmversion an" & Chr(10) & Chr(13) & "xxx gibt die PC-Nummer vor", MsgBoxStyle.Information, "Parameterinformationen")
    24. Application.Exit()
    25. Case "-i"
    26. Me.Visible = False
    27. Me.ShowInTaskbar = False
    28. Case "-s"
    29. shutdown = True
    30. Case "-n"
    31. typ = "1"
    32. Case "-d"
    33. typ = "0"
    34. Case "-v"
    35. MsgBox("Programmversion " & ver & Chr(10) & Chr(13) & "Geschrieben von MIR" & Chr(10) & Chr(13) & "LANTECH Informationstechnik GmbH", MsgBoxStyle.Information, "Programmversion")
    36. Application.Exit()
    37. Case Else
    38. gen = args(i)
    39. End Select
    40. Next
    41. End Sub
    42. Private Async Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    43. ExecuteParams()
    44. 'ver = Application.ProductVersion
    45. Dim ergebnis As String = Await Task.Run(Function() set_dasi(gen, typ, ver))
    46. Label1.Text = ergebnis
    47. If ergebnis = "Datensicherung erfolgreich" Then
    48. If shutdown = True Then
    49. Dim myProcessStartInfo As New ProcessStartInfo("shutdown.exe", "-s -f -t 300")
    50. myProcessStartInfo.WorkingDirectory = "C:\Windows\system32\"
    51. Process.Start(myProcessStartInfo) 'C:\Windows\System32\
    52. End If
    53. 'Timer1.Enabled = True
    54. ElseIf ergebnis = "Webserverfehler" Then
    55. Me.Opacity = 100%
    56. Me.BackColor = Color.IndianRed
    57. Timer1.Enabled = True
    58. End If
    59. End Sub
    60. Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    61. 'If shutdown = True Then
    62. 'Process.Start("C:\Windows\System32\shutdown.exe", "-s -t 300 -f")
    63. 'End If
    64. Application.Exit()
    65. End Sub
    66. Private Sub Timer2_Tick(sender As Object, e As EventArgs) Handles Timer2.Tick
    67. Application.Exit()
    68. End Sub
    69. End Class



    Starte ich das Programm manuell mit übergabe (dasi-setter.exe 1 -d -s) funktioniert es, ebenfalls mit dem Herunterfahren.
    Lasse ich das Programm am Ende der Datensicherung laufen, erhalte ich die Meldung im Syslog.

    Jemand eine Idee wie man das lösen kann?

    Danke schon mal und Grüße,

    samson

    PS: Für alle die sich wundern warum da eine Weburl aufgerufen wird,... hier die Erklärung:
    Ich habe auf meinem Server der im Keller steht einen kleinen Webdienst laufen,...
    Hier werden alle Datensicherungen die erstellt wurden, per PHP in eine SQL Datenbank eingetragen, damit ich statistisch testen kann, wie oft die Datensicherung funktioniert hat.
    Dafür verwende ich diesen Code: (Falls jemand daran interesse hat, wie gesagt, alles im LAN)

    Spoiler anzeigen

    PHP-Quellcode

    1. <?php
    2. include("../inc/config.php");
    3. require("../func/mailer/class.phpmailer.php");
    4. if($_GET["gen"] != "" and $_GET["typ"] != "")
    5. {
    6. $computerid = stripslashes($_GET["gen"]);
    7. $typ = stripslashes($_GET["typ"]);
    8. $ver = stripslashes($_GET["ver"]);
    9. if($_GET["typ"] == "1")
    10. {
    11. mysql_query("UPDATE ms_dasi SET dasi_n_ok = '".time()."' WHERE computerid = '".$computerid."'");
    12. }
    13. else
    14. {
    15. mysql_query("UPDATE ms_dasi SET dasi_ok = '".time()."' WHERE computerid = '".$computerid."'");
    16. }
    17. if($ver != "")
    18. mysql_query("UPDATE ms_dasi SET exe_version = '".$ver."' WHERE computerid = '".$computerid."'");
    19. mysql_query("INSERT INTO ms_dasi_log (computerid, letzte_aktion, typ) VALUES ('".$computerid."', '".time()."', '".$typ."''')");
    20. echo "Datensicherung erfolgreich";
    21. }
    22. else
    23. {
    24. echo "Webserverfehler";
    25. }
    26. ?>

    Nein! Doch! OHH!

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „samson“ ()

    Guck dir mal per Thread.CurrentPrincipal an, mit welchem User dein Programm gestartet wird. Ggf. liegts an fehlenden Rechten.

    Edit: Ich glaube, ich bin retarded, habe das "Computername\Benutzer" vollkommen ignoriert. Vergiss das.
    "Der Versuch von Benutzer Computername\Benutzer, Computer Computername neu zu starten bzw. herunterzufahren ist fehlgeschlagen."


    Das Programm versucht mit dem Benutzer namens Computername\Benutzer den Pc herunterzufahren (und nicht mit PU), dieser darf das aber nicht.
    Das ist meine Signatur und sie wird wunderbar sein!
    @Rinecamo Danke für den Tipp, leider jedoch nein.
    Programm funktioniert einfach.
    Kann es daran liegen das das Sicherungsprogramm als Dienst ausgeführt wird?
    Hab es nun schon über eine Batch versucht... Sicherung ruft Batch auf, Batch löst shutdown aus und startet dann mein tool... Ohne Erfolg (gleiche Meldung).
    Nein! Doch! OHH!