PowerShell 字体部署为 1809

PowerShell 字体部署为 1809

1809 用户字体支持概述这里这里我过去用于进行字体管理安装的方法不再起作用,而是仅为运行安装的特定帐户安装字体。

这是一个非常标准的 PS 脚本,基于 powershell 库中的一个脚本。

$ShellAppFontNamespace = 0x14
...
$ShellApp = New-Object -ComObject Shell.Application
$FontsFolder = $ShellApp.NameSpace($ShellAppFontNamespace)
foreach ($Font in $Fonts) {
    Write-Host ('Installing font: {0}' -f $Font.BaseName)
    $FontsFolder.CopyHere($Font.FullName)
    break 
}

我是否需要为 copyhere 设置一些特定标志来表明这现在是系统范围的命令?就目前情况而言,它看起来完全没有记录。

编辑:

我认为这正确指向 C:\Windows\Fonts 文件夹。

PS C:\WINDOWS\system32> $FontsFolder.Self


Application  : System.__ComObject
Parent       : System.__ComObject
Name         : Fonts
Path         : C:\Windows\Fonts
GetLink      :
...

答案1

对于任何正在处理此问题的人,我都找到了解决方案。实际上,shell 路径/变量 0x14 被重载并重定向到用户的配置文件,而没有明确的方法来更改此行为。CopyHere结果,该命令无法保存到 C:\Windows\Fonts,而是直接转移到用户的配置文件。

避免使用 shell 变量,手动复制文件并手动添加注册表项即可正常工作。我打包更新版本如果有人需要的话,可以在 powershell 图库上找到。

相关内容