Saltar al contenido

Cómo crear un acceso directo usando PowerShell

Necesitamos tu apoyo para extender nuestros posts con relación a las ciencias de la computación.

Solución:

No conozco ningún cmdlet nativo en PowerShell, pero puede usar el objeto com en su lugar:

$WshShell = New-Object -comObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut("$HomeDesktopColorPix.lnk")
$Shortcut.TargetPath = "C:Program Files (x86)ColorPixColorPix.exe"
$Shortcut.Save()

puede crear un script de powershell guardado como set-shortcut.ps1 en su $pwd

param ( [string]$SourceExe, [string]$DestinationPath )

$WshShell = New-Object -comObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut($DestinationPath)
$Shortcut.TargetPath = $SourceExe
$Shortcut.Save()

y llámalo así

Set-ShortCut "C:Program Files (x86)ColorPixColorPix.exe" "$HomeDesktopColorPix.lnk"

Si desea pasar argumentos al exe de destino, puede hacerlo de la siguiente manera:

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

antes de $Acceso directo.Guardar().

Para mayor comodidad, aquí hay una versión modificada de set-shortcut.ps1. Acepta argumentos como su segundo parámetro.

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

A partir de PowerShell 5.0 New-Item, Remove-Itemy Get-ChildItem se han mejorado para admitir la creación y gestión de enlaces simbólicos. los Tipo de artículo parámetro para New-Item acepta un nuevo valor, SymbolicLink. Ahora puede crear enlaces simbólicos en una sola línea ejecutando el cmdlet New-Item.

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

Ten cuidado a Enlace simbólico es diferente de un Atajo, los accesos directos son solo un archivo. Tienen un tamaño (uno pequeño, que solo hace referencia a donde apuntan) y requieren una aplicación que admita ese tipo de archivo para poder usarse. Un enlace simbólico está a nivel del sistema de archivos y todo lo ve como el archivo original. Una aplicación no necesita un soporte especial para usar un enlace simbólico.

De todos modos, si quieres crear un Ejecutar como administrador atajo usando Powershell que puedes usar

$file="c:tempcalc.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)

Si alguien quiere cambiar algo más en un archivo .LNK, puede consultar la documentación oficial de Microsoft.

Te mostramos comentarios y calificaciones

Eres capaz de añadir valor a nuestro contenido contribuyendo tu veteranía en las ilustraciones.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *