使用 PowerShell 在 Windows 中加载字体

使用 PowerShell 在 Windows 中加载字体

每次我尝试在工作的 Windows 7 机器上安装字体时,都会出现错误:

"The requested file <font file>.ttf is not a valid font file" 

我使用的是信誉良好的字体来源,例如 Google Fonts。字体示例如下工作无忧

信息性问题,给出了打开 Windows 防火墙来安装字体的奇怪解决方案。由于我不是管理员,所以我无法打开它。

由于 Windows 错误消息不具参考意义,我想知道我是否可以做些什么,或者我是否一直在浪费时间尝试安装个人字体。

答案1

假设您的问题是无法在没有管理员权限的情况下安装字体,以下是不需要管理员的解决方案或其他可执行文件(因此即使在极其锁定的计算机上也可以工作):

使用 PowerShell 在 Windows 中加载字体

将以下脚本作为 PowerShell 脚本文件保存到您的机器上的某个位置,位于您要安装的 TTF 和 OTF 文件旁边:

Add-Type -Name Session -Namespace "" -Member @"
[DllImport("gdi32.dll")]
public static extern int AddFontResource(string filePath);
"@

$null = foreach($font in Get-ChildItem -Recurse -Include *.ttf, *.otf) {
    [Session]::AddFontResource($font.FullName)
}

该脚本将扫描其运行目录中的字体文件,并临时安装它们,而无需管理员访问权限.ttf.otf

此脚本的主要缺点是它只会在当前会话期间安装字体。一旦您注销或重新启动系统,您将需要再次运行它,但这可以自动完成(取决于您的计算机的配置方式,例如是否允许.ps在启动时运行脚本)。

答案2

我刚刚偶然发现了一个我还没有尝试过的解决方案:

  1. 安装PortableApps.com 平台
  2. 在安装过程中选择“选择自定义位置...”,然后选择一个无需管理员权限即可修改的文件夹(重要一步
  3. 在 PortableApps\PortableApps.com\Data 中创建一个 Fonts 文件夹
  4. 将字体文件复制到此文件夹中
  5. 关闭并重新启动PortableApps
  6. 就是这样 :)

来源:https://woorkup.com/install-fonts-without-administrator-access/

希望这对你有用

答案3

添加/删除系统字体是管理员的任务,因为有人可能会通过删除或替换标准系统字体来搞乱 Windows。除非您被授予对该\Windows\Fonts文件夹的写入权限,否则您将无法添加字体。

相关内容