T-SQL Kullanarak CMD Komutlarını Çalıştırma

Hasan Adıgüzel
2 min readFeb 13, 2021

--

Bu makalede T-SQL komutlarını ve Sql Server Management Studio programını kullanarak, işletim sisteminde komut satırı komutları çalıştırıp çıktılarını Management Studio’ da gözlemleyebilmemize dair içeriğe yer verilmiştir.

Görsel: T-SQL Commands

xp_cmdshell, Sql Server üzerinde yazacağımız T-SQL kodları ile işletim sisteminde komut satırı komutları çalıştırmamıza imkan sağlayan bir stored prosedürdür. Sql Server kurulumu yapıldığı zaman xp_cmdshell prosedürünün varsayılan durumu devre dışı olarak kullanıcıyı karşılamaktadır. Gerektiği zaman xp_cmdshell prosedürü çalıştırılabilir fakat bu işlem yapıldığında gerekli güvenlik önlemlerinin alınması gerekir aksi takdirde veri kaybı veya siber güvenlik açıkları gibi hatalar oluşabilir.

xp_cmdshell prosedürünü kullanabilmek için Sql Server üzerinde xp_cmdshell prosedürünü aktifleştirmek gerekir. xp_cmdshell prosedürünü aktifleştirmek için ilk önce sp_configure stored prosedürünü kullanarak gelişmiş seçenekleri görüntüleyip, config_value değerini 1 olarak değiştirmemiz gerekmektedir ve devamında Reconfigure komutu ile yapmış olduğumuz değişiklikleri kaydetmemiz gerekir. sp_configure stored prosedürünün genel söz dizimi aşağıdaki gibidir:

sp_configure OptionName, ConfigValue

sp_configure prosedürü ile config_value değerini değiştirip değişiklikleri onayladıktan sonra xp_cmdshell prosedürünü aktifleştirmek için gerekli T-SQL kodlarını yazabiliriz. Bu işlemi sp_configure stored prosedürü ile gerçekleştireceğiz. sp_configure stored prosedürünü kullanarak xp_cmdshell seçeneğinin konfigürasyon değerini 1 olarak atamamız ve yapmış olduğumuz konfigürasyon değişikliklerini Reconfigure komutu ile kayıt etmemiz gerekmektedir. Bu işlemleri master veritabanı üzerinde gerçekleştirdiğimiz takdirde xp_cmdshell stored prosedürünü aktifleştirebiliriz.

Sql Server Management Studio üzerinde yeni bir sorgu penceresi açarak ve aşağıda yer alan T-SQL kodlarını sorgu penceresinde çalıştırarak xp_cmdshell prosedürünü aktifleştirebiliriz.

USE master;

EXEC sp_configure ‘show advanced options’, 1;

GO

Reconfigure;

GO

EXEC sp_configure ‘xp_cmdshell’, 1;

GO

Reconfigure;

GO

Aşağıda yer alan söz dizimini baz alarak yazacağımız T-SQL kodları ile komut satırı komutlarımızı Management Studio üzerinden çalıştırıp ekran çıktısını gözlemleyebiliriz.

EXEC xp_cmdshell ‘komut_satiri_kodumuz’;

Örneğin xp_cmdshell prosedürünü kullanarak bilgisayarımızın C dizininde bulunan bir klasörün içeriğini listelemek istediğimizde aşağıda yer alan T-SQL komutunu çalıştırmamız yeterli olacaktır.

EXEC xp_cmdshell ‘dir C:\newapp’;

Yukarı yer alan komutu çalıştırdığımız zaman bilgisayarımızın C dizininde bulunan newapp isimli klasör içinde bulunan dosyalarının listesine erişim sağlamamız gerekmektedir. Komutumuzu çalıştırdığımız zaman aşağıda yer alan ekran görüntüsünün bizi karşıladığı ve yapmış olduğumuz işlemin başarılı olduğunu gözlemleyebilmekteyiz.

Görsel: Sorgu Çıktısı

Kaynakça:

  1. https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/xp-cmdshell-server-configuration-option?view=sql-server-ver15

Yazar: Hasan Adıgüzel, Şubat 2021

Web Sitesi: http://hasanadiguzel.com.tr

--

--