通过脚本或批处理文件从 Windows 10 中的任务栏取消固定文件资源管理器

通过脚本或批处理文件从 Windows 10 中的任务栏取消固定文件资源管理器

我的笔记本电脑上使用的公司图像一直强制将文件资源管理器固定到任务栏。我已经和他们讨论过这个问题(以及我遇到的其他问题),但我放弃了,因为其他问题都已经解决了。作为一种解决方法,我想要尝试完成的就是创建一个脚本,当我登录时可以运行该脚本,它将为我取消固定文件资源管理器从任务栏上。我在互联网上搜索过各种 powershell、vbscript 和批处理文件。大多数脚本对于固定到任务栏的任何内容都很有用,但文件资源管理器除外。大多数固定项目位于 %AppData%\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar 中,我可以在那里看到文件资源管理器。但是,我看到的所有脚本都使用对象的动词,并查找取消固定任务栏命令并运行它。文件资源管理器没有这个。我搜索了整个硬盘,无法使用文件资源管理器的取消固定命令归档文件。如果我删除该文件并移除 HKCU 中的任务栏注册表,则该项目不再固定,但仍显示在任务栏上。如果我单击它,它将崩溃并自行移除。如果我刷新 explorer.exe,则该项目将再次固定到任务栏。关于如何做到这一点,有什么想法吗?

答案1

它应该仍然可以使用PinTo10基于这种疯狂的方法您基本上将自己的可执行文件重命名为 explorer.exe 以获取 Windows 的固定权限。

似乎您还必须使用特殊链接而不是普通链接,但在我的测试中,如果您使用“C:\ProgramData\Microsoft\Windows\Start Menu Places”中的链接,它仍然有效。

因此这将是:

PinTo10v2.exe /unpintb "C:\ProgramData\Microsoft\Windows\Start Menu Places\01 - File Explorer.lnk"

如果你更喜欢纯脚本方法(应该足以取消固定,但不能固定),这将是类似

Set wso = CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
Set sho = CreateObject("Shell.Application")

sourcedir = fso.GetFile(WScript.ScriptFullName).ParentFolder
Set folder = sho.Namespace("C:\ProgramData\Microsoft\Windows\Start Menu Places")

For Each item In folder.Items
    If contains(item.Name,"Explorer") Then
        item.InvokeVerb("taskbarunpin")
    End If
Next

' Funktion um zu prüfen ob ein string einen anderen enthält
Function contains(sourceStr, checkStr)  
    contains=InStr(1, sourceStr, checkStr, vbTextCompare) > 0
End Function

(我无法使用最新的 Win 10 版本进行测试,但到目前为止他们从未触及过这部分,因为他们使它在 Windows 10 中完全不透明)

相关内容