-
Notifications
You must be signed in to change notification settings - Fork 485
/
GroupPolicy_import_export_cn.bat
148 lines (135 loc) · 4.03 KB
/
GroupPolicy_import_export_cn.bat
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
@echo off
::设置颜色
color DE
echo 检查管理员身份...
net session >nul 2>&1
if %errorLevel% == 0 (
goto continue
) else (
echo,
echo 请以管理员身份运行该脚本!
echo 按任意键退出...
pause > nul
exit
)
:continue
::设置延迟变量
SetLocal EnableDelayedExpansion
::获取系统版本
for /f "tokens=1* delims=[" %%a in ('ver') do (
set b=%%b
)
::将版本信息赋值给变量b
set b=%b:* =%
::设置系统版本号命名的文件夹
for /f "tokens=1,3 delims=*." %%a in ("%b%") do (
set ver1=!ver1!_%%a
set ver3=!ver3!_%%b
)
for /f "tokens=2 delims=*." %%a in ("%b%") do (
set ver2=!ver2!_%%a
)
set version=!ver1!!ver2!!ver3!
:: 变量
set db_name=%set
set gp_name="%UserProfile%\Desktop\gp_config%version%\%db_name%.inf"
set gp_folder="%UserProfile%\Desktop\gp_config%version%\"
set gp_file="%Windir%\System32\GroupPolicy"
set gp_export_file="%UserProfile%\Desktop\GroupPolicy"
set logs="%WinDir%\security\logs\scesetup.log"
echo,
echo ∧____∧
echo (·ω·)つ━ ☆..*¨
echo ∈ ノ
echo * * * 欢迎进入组策略管理工具 copyright by Molly Lau * * *
echo * しーーJ *
echo * *
echo * 使用须知: *
echo * *
echo * · 只支持导入由本脚本预先导出的组策略文件 *
echo * · 组策略配置文件和系统内部版本号严格对应 *
echo * · 不支持导入与当前版本系统不同的组策略配置文件 *
echo * · 导入注册表配置文件过程不可逆,望三思谨慎操作 *
echo * · 本工具支持以下功能: *
echo * *
echo * 1. 导出组策略 *
echo * *
echo * 2. 导入组策略 *
echo * *
echo * 回车键退出 *
echo * *
echo * *
echo * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
echo,
set /p ask1=请选择你需要的操作(1/2/回车键):
if "%ask1%"=="1" (
goto export_gp
) else (
if "%ask1%"=="2" (
goto import_gp
) else (
exit
)
)
::导出组策略
:export_gp
if exist %gp_folder% (
rd /s /Q %gp_folder%
)
mkdir %gp_folder%
echo,
echo 正在导出第一部分的安全设置...
secedit /export /cfg %gp_name%
echo,
echo 正在导出所有安全组规则配置...
xcopy /e /h /r /y %gp_file% %gp_export_file%\
echo,
echo 正在归档文件...
attrib -h %gp_export_file%
move %gp_export_file% %gp_folder%
echo,
echo 组策略设置已导出到%gp_folder%文件夹!
echo,
echo 正在清理日志...
if exist logs del %logs%
echo,
set /p ask2=是否需要打开查看(y 查看/n 退出)?
if /i "%ask2%"=="n" exit
if /i "%ask2%"=="y" explorer %gp_folder%
exit
::导入组策略
:import_gp
echo,
if exist %gp_folder% (
if exist %gp_name% (
if exist %gp_folder%GroupPolicy (
echo 正在导入第一部分的安全设置...
secedit /configure /db %db_name%.sdb /CFG %gp_name%
echo,
echo 正在导入所有安全组规则配置...
xcopy /e /h /r /y %gp_folder%GroupPolicy %gp_file%
echo,
echo 刷新组策略...
gpupdate /force
echo 组策略设置已导出成功!
echo,
echo 正在清理临时文件和日志...
del %db_name%.jfm
del %db_name%.sdb
if exist logs del %logs%
echo,
echo 按回车键退出...
pause > nul
exit
) else (
echo “GroupPolicy”文件夹不存在!
pause
)
) else (
echo “%db_name%.inf”文件不存在!
pause
)
) else (
echo 记录组策略规则的文件夹不存在或不适用于您的系统!
pause
)