Bu yürütülebilir dosya için PowerShell ile bir kısayol oluşturmak istiyorum:
C:\Program Files (x86)\ColorPix\ColorPix.exe
Bu nasıl yapılabilir?
Bu yürütülebilir dosya için PowerShell ile bir kısayol oluşturmak istiyorum:
C:\Program Files (x86)\ColorPix\ColorPix.exe
Bu nasıl yapılabilir?
Yanıtlar:
Powershell'de herhangi bir yerel cmdlet bilmiyorum ama bunun yerine com nesnesini kullanabilirsiniz:
$WshShell = New-Object -comObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut("$Home\Desktop\ColorPix.lnk")
$Shortcut.TargetPath = "C:\Program Files (x86)\ColorPix\ColorPix.exe"
$Shortcut.Save()
$ pwd dosyanıza set-kısayol.ps1 olarak kaydederek bir powershell betiği oluşturabilirsiniz
param ( [string]$SourceExe, [string]$DestinationPath )
$WshShell = New-Object -comObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut($DestinationPath)
$Shortcut.TargetPath = $SourceExe
$Shortcut.Save()
ve böyle çağır
Set-ShortCut "C:\Program Files (x86)\ColorPix\ColorPix.exe" "$Home\Desktop\ColorPix.lnk"
Hedef exe'ye argümanlar iletmek istiyorsanız, şu şekilde yapılabilir:
#Set the additional parameters for the shortcut
$Shortcut.Arguments = "/argument=value"
$ Shortcut.Save () öncesinde .
Kolaylık sağlamak için, set-kısayol.ps1'in değiştirilmiş bir sürümü burada. Argümanları ikinci parametresi olarak kabul eder.
param ( [string]$SourceExe, [string]$ArgumentsToSourceExe, [string]$DestinationPath )
$WshShell = New-Object -comObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut($DestinationPath)
$Shortcut.TargetPath = $SourceExe
$Shortcut.Arguments = $ArgumentsToSourceExe
$Shortcut.Save()
Set-ShortCut
daha gibi olmak için komutu MKLINK
veya Set-Alias
diğer ad veya bağlantı ilk argüman ve sonra hedef olarak giriyor. param ( [string]$LinkPath, [string]$TargetPath )
cmd /c mklink
geçici çözümlerin bir sınırlaması, .lnk dosyasını adlandırmak için çok sınırlı bir karakter kümesidir. Örneğin → içeren bir isim başarısız olur. Bunu aşmanın bir yolu, daha iyi karakter desteğine ihtiyacınız varsa , .lnk dosyasını oluştururken dosya adını [Web.HttpUtility]::UrlEncode()
(sonra Add-Type -AN System.Web
) ve ardından Yeniden Adlandır-Öğeyi kullanarak UrlDecoded adıyla yeniden adlandırmaktır.
SpecialFolders
bir WScript nesnesinin yöntemi kullanışlı olabilir: $WshShell.SpecialFolders("Desktop")
size doğru yolu verecektir. daha sonra arama sırasında kullanabileceğiniz masaüstü klasörü CreateShortcut
.
PS C:\Users\${myUser} $Shortcut = $WshShell.CreateShortcut("$C:\Users\${myUser}\home.lnk")
. Bu windows explorer görülebilir bir kısayol yarattı, ama ben daktilo ederken cd home
PS kendisinde bir hata alıyorumcd : Cannot find path 'C:\Users\carpb\home' because it does not exist.
PowerShell 5.0 başlayarak New-Item
, Remove-Item
ve Get-ChildItem
yaratmak ve sembolik bağlantıları yönetmek desteklemek üzere geliştirilmiştir. İçin ItemType parametresi, New-Item
yeni bir değer olan SymbolicLink'i kabul eder. Artık New-Item cmdlet'ini çalıştırarak tek bir satırda sembolik bağlantılar oluşturabilirsiniz.
New-Item -ItemType SymbolicLink -Path "C:\temp" -Name "calc.lnk" -Value "c:\windows\system32\calc.exe"
Dikkatli olun bir SymbolicLink bir farklıdır Kısayolunda kısayolları sadece dosya vardır. Boyutları vardır (sadece gösterdikleri yere işaret eden küçük bir boyut) ve kullanılmaları için o dosya türünü desteklemek için bir uygulamaya ihtiyaç duyarlar. Sembolik bir bağ, dosya sistemi seviyesidir ve her şey onu orijinal dosya olarak görür. Bir uygulamanın sembolik bağlantı kullanmak için özel bir desteğe ihtiyacı yoktur.
Her neyse, Powershell'i kullanarak Yönetici Olarak Çalıştır kısayolu oluşturmak istiyorsanız,
$file="c:\temp\calc.lnk"
$bytes = [System.IO.File]::ReadAllBytes($file)
$bytes[0x15] = $bytes[0x15] -bor 0x20 #set byte 21 (0x15) bit 6 (0x20) ON (Use –bor to set RunAsAdministrator option and –bxor to unset)
[System.IO.File]::WriteAllBytes($file, $bytes)
LNK dosyasında başka bir şeyi değiştirmek isteyen biri varsa, resmi Microsoft belgelerine başvurabilirsiniz .
New-Item
içinde "${env:AppData}\Microsoft\Windows\SendTo"
örneğin menüsünden için Explorer Gönder gösterilmeyecektir ve simgenin veya çalışma dizinine gibi Kısayol özelliklerini özelleştirme izin vermez.
New-Item -ItemType SymbolicLink -RunAsAdmin ...
.
& C:\temp\calc.lnk
) ile başlattığınızda yapar . Ne bekliyorsunuz ?