ibicis 10 Geschrieben 7. Oktober 2011 Melden Teilen Geschrieben 7. Oktober 2011 Die Anforderung: Wenn ein SQL-Dienst auf dem Server hängt, soll dieser per Batchbefehl neu gestartet werden können und eine Mail soll an den Admin gesendet werden. Da der ausführende Benutzer nicht zu den Admins hinzugefügt werden soll dachte ich, dass ich auf dem SQL-Server einen Job anlege, der unter dem Konto des Admins gestartet wird und darauf verlinke. Der Job heißt "SQL-Restart", er verweist auf diese Batch: net stop MSSQLSERVER rem *E-Mail Versenden mittels "Blat"* cd /d "C:\Blat v2.7.5" Blat -install sql-server1.domain.local sysadmin@domain.local Blat "C:\Blat v2.7.5\mail-body.txt" ^ -to sysadmin@domain.local -server imap.domain.local -u sysadmin@domain.local -pw p@ssw0rd ^ -debug -timestamp -log blatSMTPlog.txt ^ -subject "SQL-Neustart" net start MSSQLSERVER pause Da ich von einem anderen Computer diesen Job starten will legte ich auf dem SQL-Server eine weitere Batch (sched-sql.cmd) in einer Freigabe an, die diesen Befehl enthält C:\Windows\System32\schtasks.exe /RUN /TN "SQL-Restart" und zu der ich eine Verknüpfung auf dem Rechner erstelle, der diese Batch starten soll. Solange ich die Batch auf dem SQL-Server starte, wird der SQL-Dienst beendet, neugestartet und eine Benachrichtigung wird versendet. Aktiviere ich aber den Link zur Batch auf einem Remote-PC, bekomme ich die Fehlermeldung, dass der Task "sql-stop-mail" auf dem lokalen PC nicht vorhanden sei. Als Ziel für den Task wird also nicht der sql-server1 gesucht, sondern der lokale PC. Ist mein Vorhaben überhaupt realisierbar oder geht es so, wie ich es mir vorstelle, gar nicht? Falls nicht, wie bzw. womit kann ich mein Ziel erreichen? Danke vorab für jede Hilfe. Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 7. Oktober 2011 Melden Teilen Geschrieben 7. Oktober 2011 schtasks /? hätte dir das gesagt: /S "Server" Zitieren Link zu diesem Kommentar
ibicis 10 Geschrieben 7. Oktober 2011 Autor Melden Teilen Geschrieben 7. Oktober 2011 Mir sagt schtasks /? folgendes: C:\windows\system32>schtasks /? SCHTASKS /Parameter [Argumente] Beschreibung: Ermöglicht einem Administrator, geplante Aufgaben auf einem lokalen oder Remotecomputer zu erstellen, abzufragen, zu löschen, zu ändern, auszuführen und zu beenden. Parameterliste: /Create Erstellt eine neue geplante Aufgabe. /Delete Löscht geplante Aufgaben. /Query Zeigt alle geplanten Aufgaben an. /Change Ändert die Eigenschaften der geplanten Aufgabe. /Run Führt die geplante Aufgabe auf Anforderung aus. /End Beendet die aktive geplante Aufgabe. /ShowSid Zeigt die Sicherheits-ID an, die einem geplanten Aufgabennamen entspricht. /? Zeigt diese Hilfe an. Examples: SCHTASKS SCHTASKS /? SCHTASKS /Run /? SCHTASKS /End /? SCHTASKS /Create /? SCHTASKS /Delete /? SCHTASKS /Query /? SCHTASKS /Change /? SCHTASKS /ShowSid /? C:\windows\system32> Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 8. Oktober 2011 Melden Teilen Geschrieben 8. Oktober 2011 Dann eben "SCHTASKS /Run /?" Aber /S ist das, was du suchst. Zitieren Link zu diesem Kommentar
ibicis 10 Geschrieben 10. Oktober 2011 Autor Melden Teilen Geschrieben 10. Oktober 2011 Ich habe nun folgende Syntax eingegeben: runas /profile /env /user:meinedomain.local\administrator "schtasks /Run /S sql-server01 /U administrator /P p@ssw0rd /TN SQL-Restart" Dann bekomme ich die Aufforderung, mich zu authentifizieren. Nachdem ich das Admin-Password eingegeben habe, gibt cmd aus: "Es wird versucht, schtasks /Run /S sql-server01 /U administrator /P p@ssw0rd /TN SQL-Restart als Benutzer "meinedomain.local\administrator" zu starten..." Danach poppt ganz kurz ein CMD-Fenster auf "FEHLER: Zugriff verweigert". Kann mein Vorhaben so, wie ich es mir vorstelle, funktionieren? Wenn dies grundsätzlich möglich sein sollte, wo könnte der Fehler liegen? Im Job selber ist eingestellt, dass er unabhängig von der Benutzeranmeldung ausgeführt werden kann. Er wird als Administrator ausgeführt, die Anmeldedaten sind im Job hinterlegt. Der Job kann nur von der Gruppe Administratoren ausgeführt werden. Wenn ich einen Link zur Batch anlege, also den Taskplaner umgehe, bekomme ich den Fehler, dass das Objekt nicht gefunden wurde. Der Link schaut so aus: runas /profile /env /user:meinedomain.local\administrator \\sql-server01\sql-server01-SQL-Restart\SQL-Restart.cmd Die SQL-Restart.cmd wird also wieder lokal gesucht und nicht gefunden. Was läuft bei beiden Methoden falsch? ich bin echt ziemlich ratlos mittlerweile. Zitieren Link zu diesem Kommentar
ibicis 10 Geschrieben 11. Oktober 2011 Autor Melden Teilen Geschrieben 11. Oktober 2011 Habe es nun mit psexec gemacht, damit geht es einwandfrei. Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.