Abaixo iremos demostrar um meio de usar o PowerShell para instalar fontes no Windows, usando como referência do código postado em Installing fonts with PowerShell & Intune | Powers Hell.
Executando
Abra o PowerShell (ou o PowerSell ISE) como administrador e execute o código (altere as partes em cinza, conforme sua realidade):
function Install-Each-Font {
param (
[Parameter(Mandatory = $true)]
[string]$FontFile
)
try {
$font = $fontFile | split-path -Leaf
If (!(Test-Path "c:\windows\fonts$($font)")) {
switch (($font -split "\.")[-1]) {
"TTF" {
$fn = "$(($font -split "\.")[0]) (TrueType)"
break
}
"OTF" {
$fn = "$(($font -split "\.")[0]) (OpenType)"
break
}
}
Copy-Item -Path $fontFile -Destination "C:\Windows\Fonts$font" -Force
New-ItemProperty -Name $fn -Path "HKLM:\Software\Microsoft\Windows NT\CurrentVersion\Fonts" -PropertyType string -Value $font
Write-Host "A fonte $font foi instalada"
}
Else {
Write-Host "A fonte $font já estava instalada"
}
}
catch {
write-warning $_.exception.message
}
}
function Install-Font {
param (
[Parameter(Mandatory = $true)]
[string]$Path
)
If (!(Test-Path -Path $Path) -OR ($Path -like "C:\Windows\Fonts*")) {
Write-Host "Path $Path incorreto"
break;
}
Else {
If (Test-Path -Path $Path -PathType Container) {
Get-ChildItem -Path $Path | Where {$_.extension -in @(".otf",".ttf")} | Foreach-Object {
$FullName = $_.FullName
Install-Each-Font $FullName
}
Else {
Install-Each-Font $Path
}
}
Else {
}
}
}
Após executar esses comandos, ainda com o PowerShell aberto, execute o seguinte comando para instalar fonte ou instalar todas as fontes de uma determinada pasta:
Install-Font Caminho_da_Fonte
Ou
Install-Font Pasta_com_as_fontes
Fontes/Referências
https://powers-hell.com/2020/06/09/installing-fonts-with-powershell-intune
https://stackoverflow.com/questions/39825440/check-if-a-path-is-a-folder-or-a-file-in-powershell
Mais Informações
Esperamos ter te ajudado e estaremos sempre a disposição para mais informações.
Se você tem interesse em algum assunto específico, tem alguma dúvida, precisa de ajuda, ou quer sugerir um post, entre em contato conosco pelo e-mail equipe@nvlan.com.br.