xp_cmdshell scheint sich aufzuhängen

By Frank Kalis

Posted on Jul 13, 2004 von in SQL Server

Man sollte keine Befehle mit xp_cmdshell ausführen, die irgendeine Interaktion mit dem Benutzer erwarten. Diese warten dann auf irgendwelche Aktionen seitens des Benutzer, die nicht stattfinden und scheinen sich *aufgehängt* zu haben.
Ein Bespiel hierfür ist:

exec master..xp_cmdshell 'time'

Hingegen liefert:

exec master..xp_cmdshell 'time/t'

output               
--------------------- 
22:11
NULL

(2 row(s) affected)

gute Ergebnisse

Anmerkung 21.07.2004: Ralph Hüttenmoser hat einen Workaround aufgezeigt. Dabei wird der SQL Server Dienst angepasst. Aktiviert man auf dem Tab "Anmelden" das Lokale Systemkonto, kann man die Option "Datenaustausch zwischen Dienst und Desktop zulassen" aktivieren. Anschliessend übernehmen und den Dienst neu starten. Danach kann man folgendes ohne Probleme ausführen:

exec master..xp_cmdshell 'time'

output                        
------------------------------ 
Aktuelle Zeit: 14:31:36,82
Geben Sie die neue Zeit ein: 

(2 row(s) affected)

Bevor man allerdings den Dienst so anpasst, sollte man in BOL nachlesen, was die Konsequenzen sind.

Dieser Eintrag wurde eingetragen von und ist abgelegt unter SQL Server. Tags: ,

Noch kein Feedback


Formular wird geladen...