VBS / Powershell将自定义应用程序固定到Windows 7开始菜单

时间:2016-01-08 13:03:50

标签: windows powershell vbscript

通过使用Powershell的PinnedApplications模块,我也取得了一些成功。我再次能够固定记事本,但不是我的自定义EXE,可能是因为尝试手动固定到任务栏需要在此应用上使用SHIFT+Right Click,而在记事本上我们只能使用right-click来执行此操作。 / p>

这让我相信这是一个需要在脚本中克服的步骤 - 但是在这种情况下如何模拟shift + right click

Powershell代码:

Set-PinnedApplication -Action PinToStartMenu -FilePath "C:\WINDOWS\system32\notepad.exe"

VBScript Run As Verbs的输出:

open
run as admin
open with brackets 
troubleshoot compatibility
edit with notepad++
git init here
git bash
add to archive ...
add to "selfhelp.rar"
compress and email ...
compress to "selfhelp.rar" and email
scan with webroot
restore previous versions
_____ (blank entry, looks like this corresponds with 'Send To' action)
Cut
copy
create shortcut
delete
rename
properties

我有一个名为IT Self Help.EXE的自定义应用,我希望使用VBScript自动将其固定到用户的开始菜单。

使用提供的代码here,我能够将记事本固定到开始菜单(其中notepad.exe保存在system32中):

Set objShell = CreateObject("Shell.Application")

  'Declare constants
Const CSIDL_COMMON_PROGRAMS = &H17 
Const CSIDL_PROGRAMS = &H2

strNotepadIcon = "notepad.exe"

Set objFolder = objShell.Namespace("C:\windows\system32")
Set objFolderItem = objFolder.ParseName(strNotepadIcon) 
Set colVerbs = objFolderItem.Verbs 
For Each objVerb in colVerbs 
    If Replace(objVerb.name, "&", "") = "Pin to Start Menu" Then objVerb.DoIt 
Next

但是,如果我将IT Self Help的副本保存到System32中,并运行以下脚本,则脚本完全没有响应(没有错误,也没有固定):

Set objShell = CreateObject("Shell.Application")

'Declare constants
Const CSIDL_COMMON_PROGRAMS = &H17 
Const CSIDL_PROGRAMS = &H2

strNotepadIcon = "IT Self Help.exe"

Set objFolder = objShell.Namespace("C:\windows\system32")
Set objFolderItem = objFolder.ParseName(strNotepadIcon) 
Set colVerbs = objFolderItem.Verbs 
For Each objVerb in colVerbs 
    If Replace(objVerb.name, "&", "") = "Pin to Start Menu" Then
    objVerb.DoIt 
Next

任何人都可以提供任何有关为什么这可能不起作用的提示吗?

我已经读过这种类型的访问是故意从Windows中删除的,但我似乎无法找到更多信息:

https://blogs.msdn.microsoft.com/oldnewthing/archive/2003/09/03/54760.aspx

有没有人知道究竟是什么阻止我添加IT自助帮助可以毫无问题地添加记事本?

1 个答案:

答案 0 :(得分:0)

此功能似乎仅适用于已安装在本机上的应用程序。

由于我的应用程序是一个独立的exe而没有任何安装,我认为这是不可能的,除非我把它打包到安装程序