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:
- PowerShell kısayoluna sağ tıklayın
- “Yönetici olarak çalıştır” seçeneğini seçin
- 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:
- Group Policy Management konsolunu açın
- Bir GPO oluşturun veya düzenleyin
- “User Configuration” > “Preferences” > “Windows Settings” > “Shortcuts” bölümüne gidin
- Sağ tıklayıp “New” > “Shortcut” seçin
- 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:
- Betiği bir ağ paylaşımında saklayın
- 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:
- Görev Zamanlayıcı’yı açın (taskschd.msc)
- “Temel Görev Oluştur” tıklayın
- Göreve bir isim verin, örn: “PublicDesktopKisayolOlustur”
- Tetikleyici olarak “Başlangıçta” seçin
- Eylem olarak “Program başlat” seçin
- Program/betik alanına:
powershell.exe
- Parametreler alanına:
-ExecutionPolicy Bypass -File "C:\Scripts\KisayolOlustur.ps1"
- “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!