如何使用Powershell创build快捷方式

我想为这个可执行文件创build一个Powershell的快捷方式:

C:\Program Files (x86)\ColorPix\ColorPix.exe 

如何才能做到这一点?

我不知道在PowerShell的本地cmdlet,但你可以使用COM对象:

 $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中创build一个保存为set-shortcut.ps1的powershell脚本

 param ( [string]$SourceExe, [string]$DestinationPath ) $WshShell = New-Object -comObject WScript.Shell $Shortcut = $WshShell.CreateShortcut($DestinationPath) $Shortcut.TargetPath = $SourceExe $Shortcut.Save() 

并像这样称呼它

Set-ShortCut "C:\Program Files (x86)\ColorPix\ColorPix.exe" "$Home\Desktop\ColorPix.lnk"

如果您想将parameter passing给目标exe,可以通过以下方法来完成:

 'Set the additional parameters for the shortcut $Shortcut.Arguments = "/argument=value" 

$ Shortcut.Save() 之前

为方便起见,这里是set-shortcut.ps1的修改版本。 它接受参数作为第二个参数。

 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() 

开始PowerShell 5.0 New-ItemRemove-ItemGet-ChildItem已经增强,支持创build和pipe理符号链接。 New-ItemItemType参数接受一个新的值SymbolicLink。 现在,您可以通过运行New-Item cmdlet在一行中创build符号链接。

 New-Item -ItemType SymbolicLink -Path "C:\temp" -Name "calc.lnk" -Value "c:\windows\system32\calc.exe" 

要小心一个SymbolicLink不同于一个快捷方式 ,快捷方式只是一个文件。 他们有一个大小(一个小的,只是引用他们指向的地方),他们需要一个应用程序来支持该文件types才能使用。 符号链接是文件系统级别,一切都将其视为原始文件。 应用程序不需要特殊的支持来使用符号链接。

无论如何,如果你想使用Powershell创build一个运行pipe理员快捷方式,你可以使用

 $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文件中的其他内容,可以参考官方的Microsoft文档 。