Ich möchte mit PowerShell eine Verknüpfung für diese ausführbare Datei erstellen:
C:\Program Files (x86)\ColorPix\ColorPix.exe
Wie kann das gemacht werden?
Ich möchte mit PowerShell eine Verknüpfung für diese ausführbare Datei erstellen:
C:\Program Files (x86)\ColorPix\ColorPix.exe
Wie kann das gemacht werden?
Antworten:
Ich kenne kein natives Cmdlet in Powershell, aber Sie können stattdessen ein com-Objekt verwenden:
Sie können ein Powershell-Skript erstellen, das als set-shortcut.ps1 in Ihrem $ pwd gespeichert ist
und nenne es so
Wenn Sie Argumente an die Ziel-Exe übergeben möchten, können Sie Folgendes tun:
vor $ Shortcut.Save ().
Der Einfachheit halber finden Sie hier eine modifizierte Version von set-shortcut.ps1. Es akzeptiert Argumente als zweiten Parameter.
quelle
Set-ShortCut
Cmdlet eher soMKLINK
, oderSet-Alias
wo der Alias oder Link als erstes Argument und dann als Ziel kommt.param ( [string]$LinkPath, [string]$TargetPath )
cmd /c mklink
ist ein sehr begrenzter Zeichensatz für die Benennung der .lnk-Datei. Ein Name mit einem → schlägt beispielsweise fehl. Eine Möglichkeit, dies zu umgehen , besteht darin, beim Erstellen der .lnk-Datei[Web.HttpUtility]::UrlEncode()
(nachAdd-Type -AN System.Web
) dem Dateinamen (nach ) dem Dateinamen zu suchen und ihn dann mit Rename-Item in den Namen UrlDecoded umzubenennen.SpecialFolders
Methode eines WScript-Objekts nützlich sein:$WshShell.SpecialFolders("Desktop")
Sie erhalten den wahren Pfad zu den Desktop-Ordner, den Sie später beim Aufrufen verwenden könnenCreateShortcut
.PS C:\Users\${myUser} $Shortcut = $WshShell.CreateShortcut("$C:\Users\${myUser}\home.lnk")
. Es wurde eine Verknüpfung erstellt, die im Windows Explorer angezeigt werden kann, aber als ichcd home
die PS selbst eintippte, wurde eine Fehlermeldungcd : Cannot find path 'C:\Users\carpb\home' because it does not exist.
Beginnend Powershell 5.0
New-Item
,Remove-Item
undGet-ChildItem
wurde erweitert , Erstellung und Verwaltung von symbolischen Links zu unterstützen. Der Parameter ItemType fürNew-Item
akzeptiert einen neuen Wert, SymbolicLink. Jetzt können Sie symbolische Links in einer einzelnen Zeile erstellen, indem Sie das Cmdlet New-Item ausführen.Seien Sie vorsichtig, ein SymbolicLink unterscheidet sich von einer Verknüpfung . Verknüpfungen sind nur eine Datei. Sie haben eine Größe (eine kleine, die nur darauf verweist, wohin sie zeigen) und sie benötigen eine Anwendung, die diesen Dateityp unterstützt, um verwendet zu werden. Ein symbolischer Link ist auf Dateisystemebene und wird von allen als Originaldatei angesehen. Eine Anwendung benötigt keine besondere Unterstützung, um einen symbolischen Link zu verwenden.
Wenn Sie mit Powershell eine Verknüpfung zum Ausführen als Administrator erstellen möchten, können Sie diese verwenden
Wenn jemand etwas anderes in einer .LNK-Datei ändern möchte, können Sie sich auf die offizielle Microsoft-Dokumentation beziehen .
quelle
New-Item
in erstellter Symlink"${env:AppData}\Microsoft\Windows\SendTo"
wird beispielsweise nicht im Explorer-Menü "Senden an" angezeigt und ermöglicht nicht das Anpassen von Verknüpfungseigenschaften wie Symbol oder Arbeitsverzeichnis.New-Item -ItemType SymbolicLink -RunAsAdmin ...
.& C:\temp\calc.lnk
) starten . Was erwartest du ?