如何在没有管理员权限的情况下通过脚本更改默认程序?

如何在没有管理员权限的情况下通过脚本更改默认程序?

Windows 10 分配了最奇怪的默认程序,我需要能够在不同的机器上快速更改它们(即创建脚本)。我正在尝试使用副教授类型来实现这一点。

这是我尝试运行的批处理文件 - 非常简单。PS1 文件通常在记事本中打开,这没有意义,因为它们应该在 PowerShell ISE 中打开,所以我在这里尝试这样做:

@echo off
TITLE Associating File Types With Applications for %username%
assoc .ps1=Microsoft.PowerShellScript.1
ftype Microsoft.PowerShellScript.1=powershell_ise.exe
pause

暂停只是为了让我能够在运行时捕获以下错误:

Access is denied.
Error occurred while processing: .ps1.
Access is denied.
Error occurred while processing: Microsoft.PowerShellScript.1.
Press any key to continue . . .

拒绝双重访问!目前剧本的写作方式副教授或者类型可以工作。我可以通过 GUI 更改默认程序,因此我也应该能够编写脚本。不幸的是,如果您不是管理员,Microsoft 不会让您轻松编写脚本。

我不知道副教授部分实际上是必要的 - 似乎只有类型脚本中需要它,因为它实际上会更改文件关联。不过所有示例都包含它,所以我将其包括在内。

作为标准用户,我如何更改默认程序不具有任何管理权限? 值得庆幸的是,我们现在可以访问注册表,因此如果我可以对 REG 文件执行相同的操作,那么效果也很好。我需要能够将以下文件类型与以下程序关联:

  • PS1: PowerShell ISE
  • PDF:Adobe Acrobat Reader DC
  • 将 Windows 照片查看器(而非照片)设为所有类型图像的默认查看器。我已经有一个脚本,可将 WPV 添加到“打开方式”菜单。
  • 将 Windows Media Player 设为任何类型视频文件的默认查看器。
  • 将 Internet Explorer 设为默认浏览器(而不是 Edge)。我们的域有一项策略,即每次运行时都将 Chrome 设为默认浏览器,因此我可能会更频繁地重新应用此策略。
  • HTML/CSS/JS: “T:\Notepad++\Notepad++Portable.exe”

除 Chrome 外,域策略不会影响默认程序。

答案1

如果没有提升命令提示符的权限,您将无法运行这样的脚本。提升意味着您可以右键单击 cmd 并选择以管理员身份运行。

相关内容