我是 Windows 管理的新手,如果我写了一些愚蠢的东西,请原谅我:)
我接到一项任务,要求在有家长控制限制的 win7 用户帐户上启用特定应用程序的安装。用户不想进入家长控制的 GUI 界面 - 因为有很多 exe 文件需要启用,而且处理速度很慢。
因此我创建了一个简单的 .bat 文件,它修改注册表并允许指定用户执行 .exe。注册表更改工作正常 - exe 被添加到允许列表中(在家长控制设置 GUI 中可见)。
但是注册表更改似乎还不够。只有在 GUI 上发生更改(例如启用/禁用其他应用程序)时,更改才会应用。这让我想知道我是否错过了任何注册表项更改,或者是否存在某种家长控制应用程序的缓存层?(我尝试更改“上次设置更改”的注册表值,但没有帮助)
以下是一个应用程序的批处理文件的示例:
@echo off
set user=MyWinUser
set installkeyname={41e30d46-71eb-4e79-b5ed-28adb26ca9ff}
set installpath=C:\MyPath\app.exe
for /f "delims= " %%s in ('"wmic useraccount where name='%user%' get sid"') do (
if not "%%s"=="SID" (
set uid=%%s
goto :sid_end
)
)
:sid_end
: Add install path
C:\Windows\System32\reg.exe add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Parental Controls\Users\%uid%\App Restrictions\%installkeyname%" /v "Path" /t REG_SZ /d "%installpath%"
C:\Windows\System32\reg.exe add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Parental Controls\Users\%uid%\App Restrictions\%installkeyname%" /v "Allowed" /t REG_DWORD /d 1
: Set "SAFER_LEVELID_FULLYTRUSTED" for install path
C:\Windows\System32\reg.exe add "HKEY_USERS\%uid%\Software\Policies\Microsoft\Windows\Safer\CodeIdentifiers\262144\Paths\%installkeyname%" /v "Description" /t REG_SZ /d ""
C:\Windows\System32\reg.exe add "HKEY_USERS\%uid%\Software\Policies\Microsoft\Windows\Safer\CodeIdentifiers\262144\Paths\%installkeyname%" /v "ItemData" /t REG_SZ /d "%installpath%"
C:\Windows\System32\reg.exe add "HKEY_USERS\%uid%\Software\Policies\Microsoft\Windows\Safer\CodeIdentifiers\262144\Paths\%installkeyname%" /v "SaferFlags" /t REG_DWORD /d 0
C:\Windows\System32\reg.exe add "HKEY_USERS\%uid%\Software\Policies\Microsoft\Windows\Safer\CodeIdentifiers\262144\Paths\%installkeyname%" /v "LastModified" /t REG_QWORD /d 1435215704000036
pause