0

Im Folgenden wird über den Taskplaner ausgeführt wird, werden die beiden Befehle ausführen, um die gleiche Aufgabe mit (nur Änderung des Triggerzeitpunktes) und ich abzumelden den Server, bevor die Task Triggerzeit auftritt arbeiten.Geplante sqlcmd Aufgabe nicht

Wenn ich eine Batch-Datei für den folgenden Befehl erstellen, wird es gut ausgeführt (es erstellt die Protokolldateien und schreibt die sqlcmd-Ausgabe in die Datei), außerdem ist die Ausgabe in der Protokolldatei 1, was erklärt, dass das Konto die Batch-Datei hat die Erlaubnis, die gespeicherte Prozedur auszuführen:

sqlcmd -E -S .\SQLEXPRESS -d WEDFUTtest -Q"select HAS_PERMS_BY_NAME('sp_DBMaintenance', 'OBJECT', 'EXECUTE')" -o %FILENAMEANDPATH% 

Wenn ich bearbeiten sie die Batchdatei (so unterhält die gleichen Berechtigungen usw.) mit dem folgenden Befehl:

sqlcmd -S .\SQLEXPRESS -E -Q "EXEC sp_DBMaintenance @dbName=TestDB, @FragmentationThresholdForReorganizeTableLowerLimit='5.0', @FragmentationThresholdForRebuildTableLowerLimit='30.0'" -d TestDB -o %FILENAMEANDPATH% 

und Abmelde und lassen sie den Task Scheduler, um es zu starten, es funktioniert nicht, dh gibt es keine Protokolldatei und die ganze Aufgabe ausführt, in sehr kurzer Zeit, manchmal weniger als 1 Sekunde ... und ich weiß, dass das sp_DBMaintenance Skript über 20 Minuten in Anspruch nimmt keine Fehlermeldungen zu beenden ... es gibt ...

Darüber hinaus (auf dem Domain-Administrator-Konto angemeldet) kann ich manuell den 2. (nicht funktionierenden) Befehl manuell entweder über cmd oder durch Rechtsklick auf die Aufgabe in Taskplaner ausführen und alles funktioniert gut.

Die Frage ist also, warum nicht der zweite Befehl richtig funktioniert?

P.S. % FILENAMEANDPATH% von der Form SP_Log_23-11-2016_11-41-00.log

Antwort

0

Ich werde die ‚Antwort‘ hier für den Fall gestellt hilft es jemand ein ähnliches Problem ...

Sowohl die erste Begegnung und 2. Befehl haben identische Einstellungen für den Task Scheduler ...

Auf die off chance habe ich die Sicherheitsoption "Run mit höchsten Privilegien" deaktiviert und der 2. Befehl funktioniert jetzt?!?!?!?!? Ich verstehe nicht, warum, aber jetzt funktioniert es ...

von Genommen Technet

„Wenn Sie das Kontrollkästchen Run mit höchsten Privilegien, Taskplaner wählen, wird die Aufgabe ausführen, um eine erhöhte Privilegien mit Token und nicht als Least Privileges (UAC) token ... "

Was mich verblüfft ist, wie der 1. Befehl ausgeführt sqlcmd mit 'Run mit höchsten Privilegien', aber die 2. sqlcmd funktioniert nur ohne es?! ??!?!?!?!

Verwandte Themen