windows - Opret genvej til at køre med Powershell med Powershell

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg er lidt tabt Jeg ønsker et powershell script, der skaber en genvej, der knytter til et andet powershell script.Denne genvej skal kunne køre som administrator og målet skal se sådan ud.Jeg lavede det manuelt sådan, og det virker.


Mål: C:system32windowspowershellv1.0powershell.exe -executionpolicy bypass -noexit "TARGETPATH est.ps1"


Dette er min kode, men argumenterne vises bag målbanen i stedet for.


Er der også mulighed for at erstatte standardlogoet til en bestemt? det vil sige den ene af powerhell


Nogen forslag?


Tak!


#Read current path
function Get-ScriptDirectory {
    $Invocation = (Get-Variable MyInvocation -Scope 1).Value
    Split-Path $Invocation.MyCommand.Path
}
$installpath = Get-ScriptDirectory

#create shortcut
$WshShell = New-Object -comObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut("$installpathEXE.lnk")
$Shortcut.TargetPath = """$installpath	est.ps1"""
$Shortcut.Arguments = "argumentA ArgumentB"
$Shortcut.WorkingDirectory = "$installpath"
$Shortcut.Save()

Bedste reference


Ikon og RunAs inkluderet


## Q:Test2018427SO\_50057555.ps1
#Read current path
function Get-ScriptDirectory {
    $Invocation = (Get-Variable MyInvocation -Scope 1).Value
    Split-Path $Invocation.MyCommand.Path
}
$installpath = Get-ScriptDirectory
$RunScript= "Test.ps1"
$ShCutLnk = "PwSh $RunScript.lnk"

#create shortcut
$WshShell = New-Object -comObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut("$installpath$ShCutLnk")
$Shortcut.TargetPath = "C:WindowsSystem32windowspowershellv1.0powershell.exe"
$Shortcut.IconLocation = "C:WindowsSystem32windowspowershellv1.0powershell.exe,0" # icon index 0
$Shortcut.Arguments = "-Nop -Executionpolicy bypass -NoExit ""$installPath$RunScript"""
$Shortcut.WorkingDirectory = "$installpath"
$Shortcut.Save()

## Make the Shortcut runas Administrator
## Source: https://stackoverflow.com/questions/28997799/how-to-create-a-run-as-administrator-shortcut-using-powershell
$bytes = [System.IO.File]::ReadAllBytes("$installpath$ShCutLnk")
$bytes[0x15] = $bytes[0x15] -bor 0x20 #set byte 21 (0x15) bit 6 (0x20) ON
[System.IO.File]::WriteAllBytes("$installpath$ShCutLnk", $bytes)


Indtast billedbeskrivelse her [4]