千家信息网

【AD】【组策略】利用启动脚本为域普通用户安装字体的方法

发表于:2024-12-12 作者:千家信息网编辑
千家信息网最后更新 2024年12月12日,默认情况下安装字体需要管理员权限。如果只是把字体文件复制到%systemroot%\fonts内,是无法被系统认定为字体已经安装的。同时需要在以下位置的注册表写入一个项。hklm\SOFTWARE\M
千家信息网最后更新 2024年12月12日【AD】【组策略】利用启动脚本为域普通用户安装字体的方法

默认情况下安装字体需要管理员权限。
如果只是把字体文件复制到%systemroot%\fonts内,是无法被系统认定为字体已经安装的。同时需要在以下位置的注册表写入一个项。
hklm\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts,具体格式你可以自己查看。
那么知道怎么算正确安装脚本后。就可以使用启动脚本来做了。因为启动脚本用的是nt authority\system权限。

安装前字体文件夹内默认如下:

注册表内如下:

脚本执行完安装后如下:

注册表:

脚本内容如下:


@echo off
::以下内容为了测试脚本是否正常执行可删除
::---------------------------------------------------------------------------
rem 该脚本会在启动时在C盘根目录创建一个计算机名称加日期的文件夹
set y=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%
md "c:\%y%+%computername%"
::----------------------------------------------------------------------------

::下面是为了设置fonts的名字
set x=%date:~0,4%%date:~5,2%%date:~8,2%

::共享路径
set paath=\192.168.1.160\abc
::共享主机的访问权限
set usr=administrator@kaedeleo.com
set psd=1
::共享IP
set ip=192.168.1.160

::因为是启动脚本所以要先创建空连接目标计算机
net use \%ip%\ipc$ /user:%usr% %psd%

::测试空连接有没有正常,要有写入权限,测试,可删除。
::---------------------------------------------------------------------------
whoami >%paath%\1.txt
::----------------------------------------------------------------------------

::利用当天日期的一个txt文档名来判断是否需要执行下面的内容,这样,这个脚本就可控了。
if exist %paath%\%x%.txt goto abc else goto xyz

:abc
::复制字体到字体目录内并添加如下注册表信息
xcopy %paath%\%x%.TTF %systemroot%\fonts && reg add "hklm\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts" /v %x%(TrueType) /t reg_sz /d %x%.ttf
xcopy %paath%\%x%1.TTF %systemroot%\fonts && reg add "hklm\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts" /v %x%1(TrueType) /t reg_sz /d %x%1.ttf
xcopy %paath%\%x%2.TTF %systemroot%\fonts && reg add "hklm\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts" /v %x%2(TrueType) /t reg_sz /d %x%2.ttf
xcopy %paath%\%x%3.TTF %systemroot%\fonts && reg add "hklm\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts" /v %x%3(TrueType) /t reg_sz /d %x%3.ttf
xcopy %paath%\%x%4.TTF %systemroot%\fonts && reg add "hklm\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts" /v %x%4(TrueType) /t reg_sz /d %x%4.ttf

::必须重启才能生效
shutdown /r /t 00 /f

:xyz
exit


脚本内容应该都看得明白,里面测试的东西是方便你排错,用好了可以删掉,做个脱水版。说下里面一些为什么这么做。
设计部门可能会使用字体的情况比较多,设置这个脚本日常启动就行。
【if exist %paath%\%x%.txt goto abc else goto xyz】
里面也写了,这是为了控制。如果平时不需要安装字体,到这一步就结束了。
需要安装,你只需要将字体改成当天的日期就行,比如将微软雅黑.ttf改成20180523.ttf放到对应的目录就行。
如果是多个,就根据脚本里的内容改名。默认给了5个。
如下图:

假如A用户要你安装某个字体,你就把字体按照上图改成当天的日期后改名放到目录内。新建一个当天日期的txt放里面。告知用户A,重启计算机,重启完毕后什么都不要操作,安装完字体后电脑会自动重启,要生效必须重启。然后登录即可。
有人会问会不会无限重启,如果源ttf一直在的话。
不会,第二次执行的时候因为目标文件夹已经有文件,会询问是否覆盖而不执行下去。然后你把日期.ttf删掉即可。
过了10分钟,A用户又要你安装某个字体了。
那么如果你一开始用的20180523,那么就用下面的名字,叫他重启,就自动安装完了。


因为思考这个的关系,引申出是不是我可以做一个永久自动运行的启动脚本与登陆脚本。
这个脚本也是由共享目录内的日期.txt来控制是否执行。
这个脚本本身不执行多余操作,只通过共享目录的日期.txt来激活,启动另一个BAT或Powershell。
这样我就可以很方便的再执行其他脚本,而不需要再做新的组策略刷新等操作。避免莫名原因的失败。
那么为了避免无限loop,用xcopy覆盖不执行下面命令和if exsit来判断解决。
这个脚本起先应该将计算机或用户名回写到共享目录,让IT管理员知道哪些失败了,以保证所有人都获取到这个"根"脚本。

脚本 字体 日期 目录 内容 文件 用户 权限 注册表 计算机 测试 文件夹 名字 情况 目标 管理员 面的 控制 管理 策略 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 我的世界联机外部服务器连接不上 软件开发经理转正个人总结 服务器机柜要多大电源 安卓数据库的建立 转码软件开发公司 在深圳软件开发月薪多少 付软件开发费用怎么分录 数据库同步cannl 计算机软件开发类公司有哪些 新浪万联网络技术有限公司 金山区品质软件开发销售电话 网络安全在我心中论文 济南博赛技术网络技术公司 软件开发客服怎么样 数据库删除表的操作、 网络技术工程师要求的能力 网络安全实践能力竞赛试题 税控盘服务器集中管理软件 两个电脑怎么共享一个服务器 网络安全中最关键的部分是 加工中心编程数据库设计 逆战迷城守护者是服务器么 金税数据库密码 北京服务器厂家直销 计算机应用技术和网络技术就业 中国网络安全50强 2019中国互联网科技巨头排名 魔兽世界服务器登不了 镇海应用软件开发平台 购买虚拟服务器多少钱
0