CMD ile Ağ Paylaşımı ve Uzak Bağlantı: net use ve mstsc Kullanımı

Ağ yönetiminde GUI araçları her zaman elinin altında olmayabilir. Özellikle uzak sunuculara bağlandığında, minimal kurulumlu sistemlerde çalışırken ya da toplu işlemleri otomatize etmen gerektiğinde komut satırı senin en iyi arkadaşın olur. net use ve mstsc komutları, Windows ortamında ağ paylaşımları ve uzak masaüstü bağlantıları için temel araçlardır. Bu iki komutu gerçekten iyi öğrendiğinde, günde onlarca tekrarlayan işi dakikalar içinde halledebilirsin.

net use Komutu Nedir ve Ne İşe Yarar

net use, Windows’ta ağ sürücülerini bağlamak, bağlantıları yönetmek ve paylaşılan klasörlere erişim sağlamak için kullanılan bir komut satırı aracıdır. Aslında “net” komutunun bir alt komutu olup Windows’un en eski ve en güvenilir araçlarından biridir. Active Directory ortamlarında, workgroup yapılandırmalarında ve domain dışı senaryolarda eşit derecede iyi çalışır.

Temel sözdizimi şu şekildedir:

net use [sürücü_harfi:] [\bilgisayarpaylaşım] [şifre] [/USER:kullanıcı] [seçenekler]

Bu komutu kullanmadan önce birkaç temel parametreyi anlamak önemlidir:

  • /USER: Bağlantı için farklı bir kullanıcı hesabı belirtir
  • /PERSISTENT: Bağlantının sistem yeniden başlatıldıktan sonra da devam edip etmeyeceğini kontrol eder (YES/NO)
  • /DELETE: Mevcut bir ağ bağlantısını kaldırır
  • /SAVECRED: Kimlik bilgilerini Windows Credential Manager’a kaydeder
  • *: Sürücü harfi olarak kullanıldığında, uygun bir harfi otomatik atar

Temel Ağ Sürücüsü Bağlama İşlemleri

En basit senaryodan başlayalım. Dosya sunucundaki bir paylaşımı Z: sürücüsüne bağlamak istiyorsun:

net use Z: \DOSYASERVERPaylasim

Bu komut, domain kullanıcın olarak mevcut kimlik bilgilerinle bağlantı kurar. Eğer farklı bir kullanıcı hesabı gerekiyorsa:

net use Z: \DOSYASERVERPaylasim /USER:DOMAINkullanici_adi Sifre123

Şifrenizi komut satırında düz metin olarak yazmanın güvenlik riski oluşturduğunu unutma. Özellikle paylaşılan ortamlarda veya log dosyalarının tutulduğu sistemlerde bu kullanımdan kaçın. Bunun yerine şifreyi gizli olarak girmek için yıldız işareti kullanabilirsin:

net use Z: \DOSYASERVERPaylasim * /USER:DOMAINkullanici_adi

Bu komut çalıştırıldığında sistem senden şifreyi interaktif olarak girmeni ister ve girdiğin karakterler ekranda görünmez.

Mevcut Ağ Bağlantılarını Listeleme

Hangi ağ bağlantılarının aktif olduğunu görmek için:

net use

Bu komutu çalıştırdığında şu tarz bir çıktı alırsın:

net use

Çıktıda bağlı sürücüler, uzak yollar ve bağlantı durumları görünür. “OK” durumu bağlantının sağlıklı olduğunu, “Disconnected” ise oturumun kesildiğini ama hâlâ tanımlı olduğunu gösterir. “Unavailable” görüyorsan ağ veya sunucu erişim sorunu var demektir.

Belirli bir bağlantının detaylarını görmek için:

net use Z:

Ağ Bağlantılarını Kaldırma

Bir sürücü bağlantısını kaldırmak için:

net use Z: /DELETE

Tüm ağ bağlantılarını tek seferde kaldırmak istiyorsan:

net use * /DELETE

Bu komut çalıştırıldığında sistem onay ister. Onayı atlamak ve scriptte kullanmak için /Y parametresini ekle:

net use * /DELETE /Y

Gerçek Dünya Senaryosu: Toplu Sürücü Bağlama Scripti

Sabah işe geldiğinde veya kullanıcılar logon yaptığında otomatik olarak ağ sürücülerini bağlaması gereken bir ortamda çalışıyorsun diyelim. Group Policy ile logon scripti olarak kullanabileceğin şu örneği incele:

@echo off
REM Departman sürücülerini bağla
REM Önce mevcut bağlantıları temizle
net use * /DELETE /Y

REM Ortak departman paylaşımı
net use H: \DOSYASERVER01Kullanici%USERNAME% /PERSISTENT:YES

REM Departman paylaşımı
net use K: \DOSYASERVER01DepartmanMuhasebe /PERSISTENT:YES

REM Şirket genel kaynak klasörü
net use L: \DOSYASERVER01Genel /PERSISTENT:YES

REM Yazıcı paylaşımı
net use LPT1: \YAZICISERVERMuhasebePrinter /PERSISTENT:YES

echo Ağ sürücüleri başarıyla bağlandı.
pause

Bu scripti \DOSYASERVER01SYSVOLdomain.localscripts konumuna koyup Group Policy üzerinden “Logon Script” olarak tanımlarsan, kullanıcılar her oturum açtığında sürücüleri otomatik bağlanır.

Yönetici Paylaşımlarına Erişim

Windows’un varsayılan yönetici paylaşımları (admin shares) olan C$, D$, ADMIN$ gibi paylaşımlara erişmek için:

net use Z: \UZAKBILGISAYARC$ /USER:UZAKBILGISAYARAdministrator

Bu özellikle uzak bilgisayarlarda dosya kopyalama, log toplama veya acil müdahale gerektiren durumlarda son derece kullanışlıdır. Ancak bu paylaşımlara erişim için hedef makinede local administrator yetkisine sahip olman gerekir.

Domain ortamında domain admin hesabıyla:

net use \UZAKBILGISAYARADMIN$ /USER:DOMAINdomainadmin

IPC$ Paylaşımı ve Null Session

IPC$ (Inter-Process Communication) paylaşımı, ağ üzerinden prosesler arası iletişim için kullanılır. Bazı eski uygulamalar veya araçlar bu paylaşıma ihtiyaç duyar:

net use \SUNUCUIPC$ /USER:DOMAINkullanici

Bağlantıyı test etmek veya sorun gidermek için bu teknik sıkça kullanılır.

mstsc ile Uzak Masaüstü Bağlantıları

mstsc (Microsoft Terminal Services Client), Windows’un yerleşik RDP (Remote Desktop Protocol) istemcisidir. GUI’den başlatmak yerine komut satırından çalıştırmanın büyük avantajları var: parametre geçebilir, batch dosyalarına ekleyebilir ve bağlantıları hızlıca otomatize edebilirsin.

Temel kullanım:

mstsc /v:SUNUCU_ADI_VEYA_IP

Önemli parametreler:

  • /v:sunucu[:port]: Bağlanılacak sunucu adı veya IP adresi, opsiyonel port numarasıyla
  • /f: Tam ekran modunda bağlan
  • /w:genişlik /h:yükseklik: Pencere boyutunu belirle
  • /admin: Yönetici oturumuna bağlan (eski /console parametresinin yerini aldı)
  • /multimon: Çoklu monitör desteğini etkinleştir
  • /span: Bağlantıyı tüm monitörlere yay
  • /edit:dosya.rdp: Mevcut RDP dosyasını düzenlemek için aç
  • /restrictedAdmin: Kısıtlı yönetici modunda bağlan (pass-the-hash saldırılarına karşı koruma)
  • /remoteGuard: Remote Credential Guard ile bağlan
  • /public: Genel bilgisayar modunda çalıştır (kimlik bilgileri önbelleğe alınmaz)
  • /prompt: Her zaman kimlik bilgisi iste

Pratik mstsc Örnekleri

Belirli bir porta RDP bağlantısı (varsayılan 3389 değil de özel port kullanan sunucular için):

mstsc /v:192.168.1.100:3390

Tam ekran ve belirli çözünürlük ile:

mstsc /v:WEBSERVER01 /f /w:1920 /h:1080

Sunucunun konsol oturumuna bağlanmak için (özellikle eski sunucularda veya lisans sorunlarında):

mstsc /v:SUNUCU01 /admin

RDP Dosyaları Oluşturma ve Kullanma

mstsc‘nin güçlü yanlarından biri .rdp uzantılı yapılandırma dosyalarıyla çalışabilmesidir. Bu dosyalar tüm bağlantı ayarlarını içerir ve paylaşılabilir.

Bir RDP dosyasıyla bağlanmak için:

mstsc C:ConnectionsWebServer.rdp

RDP dosyasının içeriği aslında düz metin formatındadır ve bir metin editörüyle düzenleyebilirsin. Temel bir RDP dosyası şöyle görünür:

full address:s:192.168.1.50
username:s:DOMAINadminkullanici
screen mode id:i:2
desktopwidth:i:1920
desktopheight:i:1080
session bpp:i:32
audiomode:i:0
redirectclipboard:i:1
redirectprinters:i:0
redirectdrives:i:0

Bu dosyayı oluşturmak için mevcut bir bağlantıyı da dışa aktarabilirsin:

mstsc /edit:C:ConnectionsYeniSunucu.rdp

Gerçek Dünya Senaryosu: Sunucu Bakım Scripti

Diyelim ki her hafta 20 sunucuya sırayla bağlanıp Windows Update durumlarını kontrol etmen gerekiyor. Her birini tek tek aramak yerine şu yaklaşımı kullanabilirsin:

@echo off
setlocal

REM Sunucu listesi dosyasından oku
for /f "tokens=*" %%S in (C:Adminsunucu_listesi.txt) do (
    echo Bağlanılıyor: %%S
    mstsc /v:%%S /f
    echo %%S bağlantısı açıldı, diğer sunucu için Enter'a bas...
    pause
)

echo Tüm sunuculara bağlanıldı.

sunucu_listesi.txt dosyasında her satırda bir sunucu adı veya IP adresi bulunur. Bu script sırayla her sunucuya RDP açar ve senin müdahaleni bekler.

net use ve mstsc’yi Birlikte Kullanmak

Bu iki aracı birleştirerek çok daha güçlü senaryolar oluşturabilirsin. Örneğin, bir sunucuya RDP açmadan önce dosya sistemi erişimini kontrol etmek:

@echo off
set SUNUCU=APPSERVER01
set DOMAIN=SIRKET
set KULLANICI=yonetici

REM Önce ağ bağlantısını test et
net use \%SUNUCU%ADMIN$ /USER:%DOMAIN%%KULLANICI% *
if %ERRORLEVEL% NEQ 0 (
    echo HATA: %SUNUCU% sunucusuna erişilemiyor!
    pause
    exit /b 1
)

echo Bağlantı başarılı, RDP açılıyor...
net use \%SUNUCU%ADMIN$ /DELETE

REM RDP bağlantısını aç
mstsc /v:%SUNUCU% /admin

Sorun Giderme: Yaygın Hatalar ve Çözümleri

Hata 53: Ağ yolu bulunamadı

Bu hata genellikle DNS çözümleme veya ağ bağlantısı sorununu gösterir. Önce ping ve nslookup ile temel bağlantıyı test et:

ping DOSYASERVER01
nslookup DOSYASERVER01
net use \192.168.1.10Paylasim

IP adresiyle çalışıyorsa sorun DNS’tedir.

Hata 1326: Kullanıcı adı veya şifre hatalı

Kimlik bilgilerini doğrulamak için:

net use \SUNUCUIPC$ /USER:DOMAINkullanici *

Bu komut sadece kimlik doğrulama yapar. Başarılıysa “Komut başarıyla tamamlandı” mesajını görürsün.

Hata 1219: Aynı sunucuya birden fazla kullanıcıyla bağlantı sorunu

Aynı sunucuya farklı kimlik bilgileriyle iki ayrı bağlantı açmaya çalışırsan bu hatayı alırsın. Mevcut bağlantıyı önce temizle:

net use \SUNUCU /DELETE
net use Z: \SUNUCUPaylasim /USER:DOMAINyenikullanici

mstsc bağlantısı kurulamıyor

Hedef makinede RDP’nin etkin olup olmadığını ve güvenlik duvarı kurallarını kontrol et. CMD’den hızlı test:

telnet SUNUCU01 3389

Telnet yüklü değilse PowerShell ile de test edebilirsin ama CMD odaklı kalmak istiyorsak bu yeterli.

Güvenlik Notları ve En İyi Pratikler

Günlük kullanımda dikkat etmen gereken birkaç önemli nokta var:

  • Şifreleri düz metin olarak yazma: Batch dosyalarına veya komut geçmişine şifre yazma alışkanlığından kaçın. * parametresiyle interaktif giriş yap ya da Windows Credential Manager’ı kullan.
  • Persistent bağlantıları dikkatli kullan: /PERSISTENT:YES ile kaydedilen bağlantılar sistem yeniden başlatıldığında otomatik bağlanmaya çalışır. Şifre değişikliklerinde sorun çıkarabilir.
  • RDP portunu değiştirmeyi düşün: Varsayılan 3389 portu saldırganların tarama listesinin başında gelir. Registry üzerinden port değişikliği yapılabilir, mstsc /v:sunucu:YeniPort ile kullanılır.
  • NLA (Network Level Authentication) kullan: RDP bağlantılarında NLA zorunlu kılmak, oturum açmadan önce kimlik doğrulamasını tamamlar ve sunucu kaynaklarını korur.
  • Logları takip et: net use ile yapılan bağlantılar Windows Event Log’a kaydedilir. Event ID 4624 (başarılı logon) ve 4625 (başarısız logon) olaylarını izle.

CMD’de Credential Manager ile Entegrasyon

Kimlik bilgilerini güvenli bir şekilde saklamak için Windows Credential Manager’a cmdkey komutuyla erişebilirsin:

REM Kimlik bilgisi kaydet
cmdkey /add:DOSYASERVER01 /user:DOMAINkullanici /pass:Sifre123

REM Kaydedilmiş kimlik bilgilerini listele
cmdkey /list

REM Belirli bir kaydı sil
cmdkey /delete:DOSYASERVER01

cmdkey ile kaydettiğin kimlik bilgilerini net use otomatik olarak kullanır:

net use Z: \DOSYASERVER01Paylasim

Aynı şekilde mstsc da bu kimlik bilgilerini kullanır, bağlantı sırasında şifre sormaz.

PowerShell ile Karşılaştırma

“Neden PowerShell değil de CMD?” diye sorabilirsin. Birkaç geçerli neden var. Eski sistemlerde, Windows Server Core kurulumlarında veya kısıtlı ortamlarda PowerShell her zaman mevcut veya izinli olmayabilir. Ayrıca net use komutunun basitliği ve hızı bazı senaryolarda PowerShell’in New-PSDrive veya New-SmbMapping cmdlet’lerinden üstün olabilir. Her iki aracı da bilmek seni farklı ortamlara hazır kılar.

Sonuç

net use ve mstsc komutları, onlarca yıllık Windows geçmişine rağmen hâlâ aktif olarak kullanılan ve değerini koruyan araçlardır. Ağ paylaşımlarını otomatize etmek, toplu bağlantı yönetimi yapmak ve RDP bağlantılarını scriptlere entegre etmek istediğinde bu iki komut seni nadiren yarı yolda bırakır.

Özellikle net use ile oluşturulan logon scriptleri, küçük ve orta ölçekli ortamlarda Group Policy ile mükemmel uyum sağlar. mstsc‘nin RDP dosyası desteği ise farklı sunucu ortamları arasında geçiş yapan sysadminler için büyük kolaylık sunar. cmdkey ile bu araçları güvenli kimlik bilgisi yönetimiyle birleştirdiğinde, elimde sağlam ve güvenilir bir otomasyon seti elde etmiş olursun.

Bu komutları günlük iş akışına entegre etmek için küçük başla. Önce mevcut el işlerinden birini seç, bir batch scripti yaz ve test et. Zamanla bu komutların ne kadar çok senaryoya uygulanabildiğini göreceksin.

Yorum yapın