我正在尝试重新镜像几台计算机,并正在制作一个批处理文件来运行基本命令。是否有命令行代码可以让我将程序固定到任务栏?例如,Internet Explorer。
答案1
观点- 微软明确表示不想为用户提供添加/删除固定项目的方法。他们担心第三方应用程序会随意固定和取消固定项目,从而影响用户运行哪些程序。因此,他们在最新版本的 Windows 10 上让这一操作变得非常困难。
方法 1- 曾经有一种使用 VBScript 编写脚本的方法,该方法涉及枚举 FolderItem.Verbs 并激活名为“固定到任务栏”的选项。但是,Microsoft 已从 Verbs 集合中删除此项目,同时将其保留在 UI 上以供使用鼠标手动选择。有许多网站详细说明了如何使用 VB 脚本执行此操作,但此方法不适用于最新版本的 Windows 10。
方法 2- 可能是由于企业社区的强烈反对,微软现在提供了一种通过使用组策略来为新用户帐户创建一组默认取消固定或固定的项目的方法,但这似乎对一次性自定义固定没有用。在互联网上搜索以下术语将获得以下信息:组策略任务栏固定。
方法 3- 这里提供的另一个答案是,只需将链接文件复制到 User Pinned\Taskbar 文件夹,这在当前版本的 Windows 10 中将不起作用。它可能在某些时候起作用,但现在不再起作用了。
方法 4- 有一个名为 SYSPIN 的第三方实用程序。这是一个独立的 EXE,显然可以正常工作。该公司或网站名为 TECHNOSYS。
答案2
您需要创建一个快捷方式,然后将该快捷方式移动到用户固定文件夹中。
UserPinned 文件夹在这里:%AppData%\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar
在这里,我们将创建一个记事本快捷方式(notepad.lnk)并将其移动到用户固定文件夹。
您的应用程序唯一需要更改的是:
链接文件= 您的快捷方式的名称(通常为 application_Name.lnk)
oLink.目标路径= 根应用程序的路径 (c:\program files\program\program.exe)
@echo off
echo Set oWS = WScript.CreateObject("WScript.Shell") > C:\temp8\CreateShortcut.vbs
echo sLinkFile = "C:\temp8\notepad.lnk" >> C:\temp8\CreateShortcut.vbs
echo Set oLink = oWS.CreateShortcut(sLinkFile) >> C:\temp8\CreateShortcut.vbs
echo oLink.TargetPath = "C:\Windows\notepad.exe" >> C:\temp8\CreateShortcut.vbs
echo oLink.Save >> C:\temp8\CreateShortcut.vbs
cscript C:\temp8\CreateShortcut.vbs
del C:\temp8\CreateShortcut.vbs
copy "C:\temp8\notepad.lnk" "%AppData%\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\notepad.lnk"
pause
您可以删除pause
,我只是为了检查错误而删除的。将上面的代码复制到您的 bat 文件中。
编辑:深入解释:
本质上,>
和>>
符号将数据附加到文档中。在本例中,我们创建了一个名为的单独 .vbs 文件CreateShortcut.vbs
,并且 > 或 >> 之前的每个命令都会逐行放入该文件中。在批处理结束时,我们运行cscript CreateShort.vbs
它来执行我们刚刚构建的文件。
@echo off
REM Create a new obj for shell script and write as line 1 in new file call createshortcut.vbs
echo Set oWS = WScript.CreateObject("WScript.Shell") > C:\temp8\CreateShortcut.vbs
REM Name the shortcut whatever you want. It will end in .lnk and then write that command as the second line in the createshortcut.vbs file
echo sLinkFile = "C:\temp8\notepad.lnk" >> C:\temp8\CreateShortcut.vbs
REM takes the shortcut file and runs the builtin script "create Shortcut to generate the .lnk file and adds as the third line in the createshortcut.vbs file
echo Set oLink = oWS.CreateShortcut(sLinkFile) >> C:\temp8\CreateShortcut.vbs
REM this is physical path of the EXE or application you are making a shortcut for, then adds that path as the 4th line in the createshortcut.vbs file
echo oLink.TargetPath = "C:\Windows\notepad.exe" >> C:\temp8\CreateShortcut.vbs
REM saves everything and writes as the 5th line in the vbs file
echo oLink.Save >> C:\temp8\CreateShortcut.vbs
REM executes the createshortcut.vbs file that we built line by line above
cscript C:\temp8\CreateShortcut.vbs
REM Deletes the createshortcut.vbs script that we made after it ran so you can use this block of code in the same batch more than once
del C:\temp8\CreateShortcut.vbs
REM Copies the newly created shortcut file notepad.lnk to the directory that windows looks at to generate what icons/applications appear on the taskbar
copy "C:\temp8\notepad.lnk" "%AppData%\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\notepad.lnk"
答案3
我刚刚找到一个非常简单的解决方案这里。
只需创建脚本文件的快捷方式,然后转到其属性,并将目标从 更改"C:\path-to-your-batch"
为cmd.exe /C "path-to-your-batch"
。
此后,快捷方式的图标会发生变化,您可以将其拖放到任务栏上以固定它。
答案4
您可以使用任务栏文件夹固定程序,但您也必须更改注册表项。
我在一台计算机上所做的是,我固定了本地管理员帐户所需的程序。然后我运行了以下命令:
robocopy “%AppData%\ Microsoft \ Internet Explorer \ Quick Launch \ User Pinned \ TaskBar” C:\ Temp \ Taskbar
reg 导出 HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Taskband C:\Temp\Taskbar.reg
由于计算机位于域中,因此我能够从具有域管理员权限的另一台计算机运行以下命令:
robocopy \\SourcePC\C$\Temp\Taskbar \\DestinationPC\C$\Temp\Taskbar
robocopy \\SourcePC\C$\Temp \\DestinationPC\C$\Temp Taskbar.reg
从目标PC请确保备份当前注册表项以防万一!!!
reg 导出 HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Taskband C:\Temp\Taskbar-Backup.reg
robocopy C:\Temp\Taskbar“%AppData%\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar”
reg 导入 C:\Temp\Taskbar.reg
注销并重新登录,图标应固定在您的任务栏上。