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:
Gesamter Code:
Spoiler anzeigen
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
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
- Private Async Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- ExecuteParams()
- 'ver = Application.ProductVersion
- Dim ergebnis As String = Await Task.Run(Function() set_dasi(gen, typ, ver))
- Label1.Text = ergebnis
- If ergebnis = "Datensicherung erfolgreich" Then
- If shutdown = True Then
- Dim myProcessStartInfo As New ProcessStartInfo("shutdown.exe", "-s -f -t 300")
- myProcessStartInfo.WorkingDirectory = "C:\Windows\system32\"
- Process.Start(myProcessStartInfo) 'C:\Windows\System32\
- End If
- 'Timer1.Enabled = True
- ElseIf ergebnis = "Webserverfehler" Then
- Me.Opacity = 100%
- Me.BackColor = Color.IndianRed
- Timer1.Enabled = True
- End If
- End Sub
Gesamter Code:
VB.NET-Quellcode
- Imports System.IO
- Public Class Form1
- Public gen As String
- Public typ As String
- Public shutdown As Boolean = False
- Public ver As String = "2.1.1.4"
- Private Function set_dasi(ByVal gen As String, ByVal typ As String, ByVal ver As String) As String
- Try
- Dim uriString As String = "http://192.168.10.10:8080/ext/dasi.php?gen=" + gen + "&typ=" + typ + "&ver=" + ver
- Dim myWebClient As New Net.WebClient
- myWebClient.Encoding = System.Text.Encoding.UTF8
- Dim ergebnis As String = myWebClient.DownloadString(uriString)
- Return CStr(ergebnis)
- Catch ex As Exception
- End Try
- End Function
- Public Sub ExecuteParams()
- Dim args As String()
- args = Environment.GetCommandLineArgs()
- For i As Integer = 1 To args.Length - 1
- Select Case args(i).ToLower
- Case "-?"
- 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")
- Application.Exit()
- Case "-i"
- Me.Visible = False
- Me.ShowInTaskbar = False
- Case "-s"
- shutdown = True
- Case "-n"
- typ = "1"
- Case "-d"
- typ = "0"
- Case "-v"
- MsgBox("Programmversion " & ver & Chr(10) & Chr(13) & "Geschrieben von MIR" & Chr(10) & Chr(13) & "LANTECH Informationstechnik GmbH", MsgBoxStyle.Information, "Programmversion")
- Application.Exit()
- Case Else
- gen = args(i)
- End Select
- Next
- End Sub
- Private Async Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- ExecuteParams()
- 'ver = Application.ProductVersion
- Dim ergebnis As String = Await Task.Run(Function() set_dasi(gen, typ, ver))
- Label1.Text = ergebnis
- If ergebnis = "Datensicherung erfolgreich" Then
- If shutdown = True Then
- Dim myProcessStartInfo As New ProcessStartInfo("shutdown.exe", "-s -f -t 300")
- myProcessStartInfo.WorkingDirectory = "C:\Windows\system32\"
- Process.Start(myProcessStartInfo) 'C:\Windows\System32\
- End If
- 'Timer1.Enabled = True
- ElseIf ergebnis = "Webserverfehler" Then
- Me.Opacity = 100%
- Me.BackColor = Color.IndianRed
- Timer1.Enabled = True
- End If
- End Sub
- Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
- 'If shutdown = True Then
- 'Process.Start("C:\Windows\System32\shutdown.exe", "-s -t 300 -f")
- 'End If
- Application.Exit()
- End Sub
- Private Sub Timer2_Tick(sender As Object, e As EventArgs) Handles Timer2.Tick
- Application.Exit()
- End Sub
- 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)
PHP-Quellcode
- <?php
- include("../inc/config.php");
- require("../func/mailer/class.phpmailer.php");
- if($_GET["gen"] != "" and $_GET["typ"] != "")
- {
- $computerid = stripslashes($_GET["gen"]);
- $typ = stripslashes($_GET["typ"]);
- $ver = stripslashes($_GET["ver"]);
- if($_GET["typ"] == "1")
- {
- mysql_query("UPDATE ms_dasi SET dasi_n_ok = '".time()."' WHERE computerid = '".$computerid."'");
- }
- else
- {
- mysql_query("UPDATE ms_dasi SET dasi_ok = '".time()."' WHERE computerid = '".$computerid."'");
- }
- if($ver != "")
- mysql_query("UPDATE ms_dasi SET exe_version = '".$ver."' WHERE computerid = '".$computerid."'");
- mysql_query("INSERT INTO ms_dasi_log (computerid, letzte_aktion, typ) VALUES ('".$computerid."', '".time()."', '".$typ."''')");
- echo "Datensicherung erfolgreich";
- }
- else
- {
- echo "Webserverfehler";
- }
- ?>
Nein! Doch! OHH!
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „samson“ ()