用PowerShell把东西pin到开始菜单上

本文介绍如何使用PowerShell脚本来模拟pin操作,将指定的文件或快捷方式添加到Windows开始菜单中。通过创建一个COM对象并解析目标文件路径,我们能够调用特定的命令来实现这一功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我相信大家肯定有过把一些文件或者快捷方式pin到我们的开始菜单里,这样可以很方便的操作,甚至pin到任务栏上。

今天我们要用PowerShell来模拟pin的方式把我们的文件pin到开始菜单里,废话不多说,先放上写的代码,稍后我们来一步步讲解下原理。

Function Pin-Start
{
    Param
    (
        [String[]]$PinItems
    )

    $Shell = New-Object -ComObject Shell.Application
    $Desktop = $Shell.NameSpace(0X0)

    Foreach($item in $PinItems)
    {
        If(Test-Path -Path $item)
        {
            $itemLnk = $Desktop.ParseName($item)
    

            $itemVerbs = $itemLnk.Verbs()
            Foreach($itemVerb in $itemVerbs)
            {
                If($itemVerb.Name.Replace("&","") -match "Pin to Start")
                {
                    $itemVerb.DoIt()
                }
            }
        }
    }
}

Pin-Start -PinItems "C:\XMLSample"
实现效果如下(由于我这里用的是Windows 7之后的操作系统,所以效果会有些不一样):


我们可以看到XMLSample文件已经被我们pin到开始菜单里了。

那么让我们看看代码是如何做到的,我们首先定义了一个COM对象。

$Shell = New-Object -ComObject Shell.Application
$Desktop = $Shell.NameSpace(0X0)
这里的0X0在该名称空间里代表我们的桌面右键菜单,因为在这里很好的声明了该桌面实例,我们才能很好的去模拟菜单的动作。

紧接着,我们解析出我们要pin的item的路径,然后我们用一个判断语句来模拟我们手动去执行pin到开始菜单的动作。

$itemLnk = $Desktop.ParseName($item)
    

$itemVerbs = $itemLnk.Verbs()
Foreach($itemVerb in $itemVerbs)
{
    If($itemVerb.Name.Replace("&","") -match "Pin to Start")
    {
        <strong>$itemVerb.DoIt()</strong>
    }
}
最后最重要的一个动作就是DoIt(),我们用这个方法去告诉系统我们确定要执行该操作,最后我们成功了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值