我正在尝试创建一个脚本,为给定目录中的每个 Powershell 脚本创建一个具有管理员权限的快捷方式,目前我所做的是:
$scripts = Get-ChildItem -path "C:\Users\djcim\Google Drive\Powershell Scripts\*.ps1" -Recurse
foreach ($script in $scripts) {
$shortcutFile = [io.path]::ChangeExtension($script.FullName, '.lnk')
$WScriptShell = New-Object -ComObject WScript.Shell
$Shortcut = $WScriptShell.CreateShortcut($ShortcutFile)
$Shortcut.TargetPath = "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe"
$Shortcut.Save()
$bytes = [System.IO.File]::ReadAllBytes($ShortcutFile)
$bytes[0x15] = $bytes[0x15] -bor 0x20
[System.IO.File]::WriteAllBytes($ShortcutFile, $bytes)
Move-Item -Path $shortcutFile -Destination "C:\Users\djcim\Google Drive\Powershell Scripts\Admin Shortcuts" -force
}
上述操作成功为每个脚本创建了具有管理员权限的快捷方式,但目标仅仅是 Powershell,而不是脚本本身。
我确实需要快捷目标是 Powershell -f [脚本路径],例如:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -f "C:\Users\GJBalaich\Google Drive\Powershell Scripts\FFmpeg\FFclip.ps1"
但是,当我尝试通过 Powershell 将其设置为目标路径时,示例:
$Shortcut.TargetPath = "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -f " + "`"" + $script + "`""
$Shortcut.TargetPath = "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -f " + $script
它会引发错误“值不在预期范围内。”
有任何想法吗?
答案1
要将参数传递给目标,请执行以下操作:
'Set the additional parameters for the shortcut
$Shortcut.Arguments = "C:\Users\GJBalaich\Google Drive\Powershell Scripts\FFmpeg\FFclip.ps1"