gpt4 book ai didi

powershell - 在 Windows 10 中使用 PS 将程序固定到任务栏

转载 作者:行者123 更新时间:2023-12-03 08:02:57 24 4
gpt4 key购买 nike

我正在尝试使用以下代码将程序固定到 Windows 10 (RTM) 中的任务栏:

$shell = new-object -com "Shell.Application"  
$folder = $shell.Namespace((Join-Path $env:SystemRoot System32\WindowsPowerShell\v1.0))
$item = $folder.Parsename('powershell_ise.exe')
$item.invokeverb('taskbarpin');

这适用于 Windows 8.1,但不再适用于 Windows 10。

如果我执行 $item.Verbs() ,我得到这些:
Application Parent Name
----------- ------ ----
&Open
Run as &administrator
&Pin to Start

Restore previous &versions

Cu&t
&Copy
Create &shortcut
&Delete
Rena&me
P&roperties

如您所见,没有将其固定到任务栏的动词。但是,如果我右键单击该特定文件,则会出现以下选项:
Available verbs in UI

问题:
我错过了什么吗?
Windows 10 中是否有将程序固定到任务栏的新方法?

最佳答案

非常好!我对那个 powershell 示例做了一些小的调整,希望你不要介意:)

param (
[parameter(Mandatory=$True, HelpMessage="Target item to pin")]
[ValidateNotNullOrEmpty()]
[string] $Target
)
if (!(Test-Path $Target)) {
Write-Warning "$Target does not exist"
break
}

$KeyPath1 = "HKCU:\SOFTWARE\Classes"
$KeyPath2 = "*"
$KeyPath3 = "shell"
$KeyPath4 = "{:}"
$ValueName = "ExplorerCommandHandler"
$ValueData =
(Get-ItemProperty `
("HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\" + `
"CommandStore\shell\Windows.taskbarpin")
).ExplorerCommandHandler

$Key2 = (Get-Item $KeyPath1).OpenSubKey($KeyPath2, $true)
$Key3 = $Key2.CreateSubKey($KeyPath3, $true)
$Key4 = $Key3.CreateSubKey($KeyPath4, $true)
$Key4.SetValue($ValueName, $ValueData)

$Shell = New-Object -ComObject "Shell.Application"
$Folder = $Shell.Namespace((Get-Item $Target).DirectoryName)
$Item = $Folder.ParseName((Get-Item $Target).Name)
$Item.InvokeVerb("{:}")

$Key3.DeleteSubKey($KeyPath4)
if ($Key3.SubKeyCount -eq 0 -and $Key3.ValueCount -eq 0) {
$Key2.DeleteSubKey($KeyPath3)
}

关于powershell - 在 Windows 10 中使用 PS 将程序固定到任务栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31720595/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com