我需要一个脚本供我的客户搜索网络上的共享并安装字体。我已经在社区的支持下创建了一个脚本。那行得通,但是它一直想安装已经安装的字体。这会导致出现问题,因为将弹出一个框,询问你是否要覆盖。使用1000多种字体会引起一些问题。
客户需要在所有计算机上安装所有字体,因为需要在几台计算机上设计打印然后使用其他计算机进行打印。
搜索网络并将脚本连接在一起后,我设法使其正常运行。所以我想我会分享。如果它对我有所帮助,则可能对其他人有所帮助。
我永远不会称自己为编码员,因此其他人可能会找到更好的方法来做到这一点。但是使用该脚本时,它将查看你在$ Path =上选择的位置,然后检查C:\ Users $ username \ AppData \ Local \ Microsoft \ Windows \ Fonts是否已安装。它还将仅安装.fon .otf .ttc和.ttf的文件。我需要这一点,因为即使不告诉用户,用户往往也会在此位置放置一些图像。
$FONTS = 0x14
$Path="\\NAS LOCATION\Fonts"
$FontItem = Get-Item -Path $Path
$FontList = Get-ChildItem -Path "$FontItem\*" -Include ('*.fon','*.otf','*.ttc','*.ttf')
$objShell = New-Object -ComObject Shell.Application
$objFolder = $objShell.Namespace($FONTS)
$Fontdir = dir $Path
$username = $env:UserName
foreach($File in $FontList) {
if(!($file.name -match "pfb$"))
{
$try = $true
$installedFonts = @(Get-ChildItem C:\Users\$username\AppData\Local\Microsoft\Windows\Fonts | Where-Object {$_.PSIsContainer -eq $false} | Select-Object basename)
$name = $File.baseName
foreach($font in $installedFonts)
{
$font = $font -replace "_", ""
$name = $name -replace "_", ""
if ($font -match $name)
{
$try = $false
}
}
if ($try)
{
$objFolder.CopyHere($File.fullname)
}
}
}
捐赠 归以下人员/职位。Jordan Malcolm- https: //jordanmalcolm.com/deploying-windows-10-fonts-at-scale/ CloudCompanyApps- https : //cloudcompanyapps.com/2019/06/06/install-windows-fonts-with-powershell/