Windows Server’da Tüm Kullanıcılara Masaüstü Kısayolu Ekleme

Public Desktop

Bir ağ ortamında yönetici olarak çalışıyorsanız, kullanıcılarınızın önemli uygulamalara hızlı erişim sağlamasını isteyebilirsiniz. Bu yazımda, Windows Server ortamında tüm kullanıcıların masaüstüne otomatik olarak kısayol eklemenin birkaç farklı yolunu inceleyeceğiz.

Neden Public Desktop?

Bir Windows sunucusunda birden fazla kullanıcı hesabı bulunabilir. Her kullanıcı için ayrı ayrı kısayol oluşturmak yerine, Public Desktop klasörünü kullanarak tek bir kısayol ile tüm kullanıcıların erişimini sağlayabilirsiniz. Bu yaklaşım, özellikle Remote Desktop Services (Terminal Sunucuları) gibi paylaşımlı ortamlarda çok işe yarar.

Public Desktop klasörü genellikle şu konumda bulunur: C:\Users\Public\Desktop

PowerShell ile Kısayol Oluşturma

PowerShell, kısayol oluşturma işlemini otomatikleştirmek için harika bir araçtır. İşte, istediğiniz bir uygulamanın kısayolunu tüm kullanıcılar için oluşturan basit bir PowerShell betiği:

# Yönetici haklarıyla çalıştırılmalıdır
#Requires -RunAsAdministrator

$shortcutName = "Uygulama Adı.lnk"
$targetPath = "C:\Program\Uygulama.exe"
$iconLocation = "$targetPath,0"

# Public Desktop konumunu al
$publicDesktop = [Environment]::GetFolderPath("CommonDesktopDirectory")
$shortcutPath = Join-Path -Path $publicDesktop -ChildPath $shortcutName

try {
    # Kısayol oluştur
    $WshShell = New-Object -ComObject WScript.Shell
    $Shortcut = $WshShell.CreateShortcut($shortcutPath)
    $Shortcut.TargetPath = $targetPath
    $Shortcut.IconLocation = $iconLocation
    $Shortcut.Description = "Uygulama Açıklaması"
    $Shortcut.WorkingDirectory = Split-Path $targetPath -Parent
    $Shortcut.Save()
    
    Write-Host "Kısayol başarıyla oluşturuldu: $shortcutPath" -ForegroundColor Green
} catch {
    Write-Host "Kısayol oluşturma hatası: $_" -ForegroundColor Red
}

Yaygın Hata: Yetkisiz Erişim (Unauthorized Access)

Betiği çalıştırırken en sık karşılaşılan sorun “Unauthorized Access Exception” hatasıdır. Betiğin çıktısı şöyle görünebilir:

Unable to save shortcut "C:\Users\Public\Desktop\Uygulama Adı.lnk".
At line:17 char:1
+ $Shortcut.Save()
+ ~~~~~~~~~~~~~~~~
    + CategoryInfo          : OperationStopped: (:) [], UnauthorizedAccessException
    + FullyQualifiedErrorId : System.UnauthorizedAccessException

Çözüm 1: Yönetici Olarak Çalıştırma

Bu hatanın en yaygın çözümü, PowerShell’i Yönetici olarak çalıştırmaktır:

  1. PowerShell kısayoluna sağ tıklayın
  2. “Yönetici olarak çalıştır” seçeneğini seçin
  3. Betiği çalıştırın

Çözüm 2: Betiği Güçlendirme

Betik içinde yönetici kontrolü ekleyerek hata mesajlarını daha açıklayıcı hale getirebilirsiniz:

#Requires -RunAsAdministrator

# Veya şu kontrolü ekleyin
if (-NOT ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) {
    Write-Warning "Bu betik yönetici izinleri gerektirir. Lütfen PowerShell'i 'Yönetici olarak çalıştır' seçeneği ile başlatın."
    Break
}

Gerçek Dünya Örneği: Edge uygulaması

Örnek olarak, “Edge” adlı uygulamanın kısayolunu tüm kullanıcılar için oluşturmak istediğimizi düşünelim. İşte tam betik:

#Requires -RunAsAdministrator

$shortcutName = "Edge.lnk"
$targetPath = "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"
$iconLocation = "$targetPath,0"  # Uygulamanın kendi ikonunu kullanır

# Yönetici haklarını kontrol et
if (-NOT ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) {
    Write-Warning "Bu betik yönetici izinleri gerektirir. Lütfen PowerShell'i 'Yönetici olarak çalıştır' seçeneği ile başlatın."
    Break
}

# Public Desktop konumunu al
$publicDesktop = [Environment]::GetFolderPath("CommonDesktopDirectory")
$shortcutPath = Join-Path -Path $publicDesktop -ChildPath $shortcutName

try {
    # Kısayol oluştur
    $WshShell = New-Object -ComObject WScript.Shell
    $Shortcut = $WshShell.CreateShortcut($shortcutPath)
    $Shortcut.TargetPath = $targetPath
    $Shortcut.IconLocation = $iconLocation
    $Shortcut.Description = "Edge"
    $Shortcut.WorkingDirectory = Split-Path $targetPath -Parent
    $Shortcut.Save()
    
    Write-Host "Kısayol başarıyla oluşturuldu: $shortcutPath" -ForegroundColor Green
} catch {
    Write-Host "Kısayol oluşturma hatası: $_" -ForegroundColor Red
}

Alternatif Yöntemler

Group Policy Kullanımı

Daha büyük ortamlarda, kısayolları Group Policy ile dağıtmak daha verimli olabilir:

  1. Group Policy Management konsolunu açın
  2. Bir GPO oluşturun veya düzenleyin
  3. “User Configuration” > “Preferences” > “Windows Settings” > “Shortcuts” bölümüne gidin
  4. Sağ tıklayıp “New” > “Shortcut” seçin
  5. Kısayol özelliklerini ayarlayın

Oturum Açma Betiği Kullanımı

Kullanıcılar oturum açtığında çalışacak bir betik hazırlayabilirsiniz:

  1. Betiği bir ağ paylaşımında saklayın
  2. Group Policy ile oturum açma betiği olarak ayarlayın (User Configuration > Windows Settings > Scripts > Logon)

Bilgisayar Başlangıcında Çalıştırma

Kısayol oluşturma betiğinizi bilgisayar başlangıcında otomatik olarak çalıştırmak için Görev Zamanlayıcı kullanabilirsiniz:

  1. Görev Zamanlayıcı’yı açın (taskschd.msc)
  2. “Temel Görev Oluştur” tıklayın
  3. Göreve bir isim verin, örn: “PublicDesktopKisayolOlustur”
  4. Tetikleyici olarak “Başlangıçta” seçin
  5. Eylem olarak “Program başlat” seçin
  6. Program/betik alanına: powershell.exe
  7. Parametreler alanına: -ExecutionPolicy Bypass -File "C:\Scripts\KisayolOlustur.ps1"
  8. “Son” düğmesine tıklayın

Windows Server ortamında tüm kullanıcıların masaüstüne kısayol eklemek, Public Desktop klasörünü kullanarak oldukça kolaydır. Bu yöntem, özellikle Remote Desktop Services ortamlarında kullanıcılara önemli uygulamalara hızlı erişim sağlar.

Karşılaşabileceğiniz en yaygın sorun yetkilendirme hatası olacaktır, bu nedenle betiği her zaman yönetici olarak çalıştırdığınızdan emin olun. Daha büyük ağlarda ise Group Policy kullanımı daha verimli bir çözüm sunabilir.


Bu yazıyı faydalı buldunuz mu? Yorumlarınızı aşağıda paylaşın ve diğer Windows Server yönetim ipuçları için blogumuzu takip etmeyi unutmayın!