【发布时间】:2018-05-22 16:54:55
【问题描述】:
我正在为大量最终用户和 PC 推出定制的开始菜单。由于角色的复杂性,创建和导入 XML 并不理想。我还没有找到任何关于在菜单组或文件夹中添加固定磁贴的资源。我正在尝试修改此脚本以添加到现有菜单组中。关于在哪里可以找到插入文件夹指令的任何想法?
function Pin-App { param(
[string]$appname,
[switch]$unpin
)
try{
if ($unpin.IsPresent){
((New-Object -Com Shell.Application).NameSpace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}').Items() | ?{$_.Name -eq $appname}).Verbs() | ?{$_.Name.replace('&','') -match 'From "Start" UnPin|Unpin from start'} | %{$_.DoIt()}
return "App '$appname' unpinned from taskbar"
}else{
((New-Object -Com Shell.Application).NameSpace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}').Items() | ?{$_.Name -eq $appname}).Verbs() | ?{$_.Name.replace('&','') -match 'To "Start" Pin|Pin to Start'} | %{$_.DoIt()}
return "App '$appname' pinned to Start"
}
}catch{
Write-Error "Error Pinning/Unpinning App! (App-Name correct?)"
}
}
#Example of a pinned app
Pin-App "Calculator" -pin
这有效,但只能不分青红皂白地固定取消固定。对于我的项目,我需要找到一种方法来固定到组内的组或文件夹。有没有人遇到过这个?我的高级谷歌搜索是空的。 此外,我知道 Microsoft 并不热衷于允许这样做以防止滥用。我对第 3 方开始菜单不感兴趣。我只是在为运行 Windows 10 Pro 1703 的大型托管计算机组寻找实时添加文件夹和组结构的方向。
【问题讨论】:
-
Microsoft 非常清楚尝试阻止以编程方式访问“开始”菜单磁贴,并建议使用企业 GPO,它允许组策略的所有标准过滤方法满足不同的用例。
-
我知道这一点。但是如果可以通过安装/卸载和上面的脚本添加对象,则可以将它们添加到组中。不幸的是,微软似乎在他们的程序化访问规则中忽略了企业,这导致许多人绕过它们。
-
那么问题是什么?
-
虽然它被混淆了,但它们应该是一种方法。有没有办法改变我上面的内容来更改开始菜单?如果是这样,我将如何找到并重新创建它?
-
如果没有官方 API,我的假设是它是一个实现细节(因此可能随时更改,恕不另行通知)。
标签: c# windows powershell windows-10 startmenu