Windows'ta Kullanıcıya Özel Hizmetlerin (Per-User Services) Yönetimi

Windows'ta kullanıcı oturum açtığında oluşturulan ve oturum kapatıldığında silinen kullanıcıya özel hizmetleri (Per-User Services) anlama, listeleme ve yönetme adımları. Bu hizmetler kişiselleştirilmiş görevleri yerine getirir.

W
WOSHUB (Windows OS Hub)
12 görüntülenme
Windows'ta Kullanıcıya Özel Hizmetlerin (Per-User Services) Yönetimi

Windows'ta Kullanıcıya Özel Hizmetlere Giriş

Windows işletim sistemlerinde, sistem genelinde çalışan geleneksel hizmetlerin (services) yanı sıra, her bir kullanıcı için oturum açıldığında dinamik olarak oluşturulan ve kullanıcı oturumu sonlandığında otomatik olarak sonlandırılan özel hizmet türleri bulunur. Bunlara genellikle "Kullanıcıya Özel Hizmetler" (Per-User Services) adı verilir. Bu hizmetler, kullanıcının kişisel deneyimini (örneğin, arama dizinleme, kullanıcı arayüzü özelleştirmeleri veya belirli uygulama senkronizasyonları) desteklemek için tasarlanmıştır.

Kullanıcıya Özel Hizmetlerin Özellikleri

Bu hizmetler, SYSTEM veya LOCAL SERVICE gibi standart hizmet hesapları altında değil, oturum açan kullanıcının güvenlik bağlamında çalışır. Bu, onlara yalnızca o kullanıcıya özgü kaynaklara erişim yetkisi verirken, sistemin geri kalanını etkilemesini önler.

Kullanıcıya Özel Hizmetleri Listeleme ve Tanımlama

Bu hizmetleri standart services.msc yönetim konsolunda görmek genellikle zordur, çünkü bunlar oturum bazlıdır. Bu hizmetleri görüntülemek için genellikle PowerShell komutlarını kullanmak gerekir.

PowerShell Kullanarak Mevcut Kullanıcı Hizmetlerini Görüntüleme

Belirli bir kullanıcının oturumu için çalışan hizmetleri listelemek, sorun giderme ve denetim için kritik öneme sahiptir. Bu, Get-Service cmdlet'inin -IncludeUser parametresi veya WMI/CIM sınıfları kullanılarak yapılabilir.

  1. PowerShell'i Yönetici olarak açın.
  2. Aşağıdaki komutu kullanarak mevcut oturumdaki tüm kullanıcı hizmetlerini listelemek için Get-CimInstance kullanın:
Get-CimInstance -ClassName Win32_Service | Where-Object { $_.StartName -like "*\*" -and $_.State -eq "Running" } | Select-Object Name, DisplayName, State, StartName
Not: StartName sütununda kullanıcı adı/SID bilgisi içeren hizmetler genellikle kullanıcıya özeldir. Tam bir oturum listesi için, oturum kimliklerini (SessionID) kontrol etmek daha kesin sonuç verebilir. Örneğin, oturum 1'deki hizmetleri görmek için WMI sorgularını oturum ID'sine göre filtrelemeniz gerekebilir.

Kullanıcıya Özel Hizmetleri Yönetme

Kullanıcıya özel hizmetler, kullanıcı oturumdan çıktığında otomatik olarak durdurulur ve kaldırılır. Ancak, bir hizmetin yanlış davrandığı veya kaynak tükettiği durumlarda, oturum hala aktifken müdahale etmek gerekebilir.

Bir Kullanıcı Hizmetini Durdurma (Geçici Çözüm)

Bir hizmeti durdurmak için, hizmetin tam adını bilmeniz ve o kullanıcı bağlamında komutu çalıştırmanız gerekir. Standart Stop-Service komutu genellikle oturum bağlamını yönetemez, bu nedenle sc.exe veya taskkill ile süreç seviyesinde müdahale daha etkili olabilir.

  1. Hizmetin tam adını (örneğin, SearchIndexerSvc_username) belirleyin.
  2. Hizmetin çalıştığı süreci (Process ID - PID) bulun.
  3. Bu PID'yi sonlandırın.

Örneğin, bir hizmetin PID'sini bulmak için:

Get-Process -Name *search* | Select-Object Name, Id, SessionId

Ardından, ilgili oturum ID'sine (örneğin SessionID 2) sahip süreci sonlandırın:

Stop-Process -Id [PID_NUMARASI] -Force
Uyarı: Bir kullanıcı hizmetini doğrudan sonlandırmak, o kullanıcının oturumunda veri kaybına veya uygulamanın çökmesine neden olabilir. Bu işlem yalnızca kullanıcıyla iletişim kurulduktan veya sorun giderme amacıyla yapılmalıdır.

Hizmetlerin Otomatik Başlatılmasını Kontrol Etme

Bazı durumlarda, bir uygulamanın yüklediği kullanıcı hizmetinin oturum açıldığında otomatik olarak başlamasını engellemek isteyebilirsiniz. Bu tür hizmetler genellikle kayıt defterinde veya uygulama yapılandırma dosyalarında tanımlanır. Kayıt Defteri Yolu:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

veya sistem genelinde hizmet tanımları için:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services

Ancak, Per-User hizmetlerinin çoğu, Windows oturum yöneticisi (Session Manager) tarafından dinamik olarak yönetildiği için, manuel kayıt defteri düzenlemesi yerine uygulama ayarlarını kullanmak daha güvenlidir.

Özet

Kullanıcıya özel hizmetler, modern Windows ortamlarında kişiselleştirilmiş deneyimin temelini oluşturur. Bunları yönetmek, standart hizmet yönetiminden farklıdır ve genellikle oturum bağlamını dikkate alan gelişmiş PowerShell komutları gerektirir. Sorun giderme sırasında, hizmetin PID'sini bulup sonlandırmak en yaygın müdahale yöntemidir.