2023年11月26日发(作者:)
如何打开组策略编辑器?
答:运行里输入
系统里提示没有打开组策略这条命令?
答:1:看是不是注册表中锁住了组策略
“HKEY_CURRENT_USER/Software/Microsoft/Windows
/CurrentVersion/Policies/Explorer”,把“RestrictRun”的键值改为0即可。
2:开始--运行--MMC--文件--添加删除管理单元--添加--组策略--添加,
后面的你应该会了。看你要开哪个策略,就添加哪个策略。
组策略恢复办法!
删除c:windowssystem32GroupPolicy文件夹
然后运行 gpupdate /force 组策略恢复正常!
还有很多朋友问 是如何把组策略提取出来的 其实很简单。组策略设置完了 都
会保存到 c:windowssystem32GroupPolicy里
只要第一次修改好了组策略 然后把c:windowssystem32GroupPolicy复制出
来 保存起来 下次再做母盘的时候 再复制进c:windowssystem32里 就可以
了。!
这样更改组策略,有点麻烦,大家还可以试着更改注册表的方法更简
单 ,下次试验下 :》
[HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Lsa]
"forceguest"=dword:00000001 (仅来宾)
[HKEY_LOCAL_MACHINE/SOFTWARE/MICROSOFT/WINDO
WS
NT/CURRENTVERSION/WINLOGON/SPECIALACCOUNTS/USERL
IST]
"ADMIN$"=dword:00000000
sedenyinteractivelogonright 拒绝从本地登陆
sedenynetworklogonright 拒绝从网络访问这台计算机
sedenyservicelogonright 拒绝作为服务登陆
sedenybatchlogonright 拒绝作为批处理作业登陆
seinteractivelogonright 在本地登陆
senetworklogonright 从网络访问此计算机
seservicelogonright 作为服务登陆
sebatchlogonright 作为批处理作业登陆
在C:>提示符下,键入secedit /export /cfg c:,导出它
的当前安全设置。
键入secedit /configure /db c: /CFG c: 其目的是
将我们修改后的设置值,配置给Berlin计算机
用批处理命令修改组策略(简版)
echo [Event Audit] >> c:
echo AuditSystemEvents = 0 >> c:
echo AuditLogonEvents = 0 >> c:
echo AuditObjectAccess = 0 >> c:
echo AuditPrivilegeUse = 0 >> c:
echo AuditPolicyChange = 0 >> c:
echo AuditAccountManage = 0 >> c:
echo AuditProcessTracking = 0 >> c:
echo AuditDSAccess = 0 >> c:
echo AuditAccountLogon = 0 >> c:
echo [Privilege Rights] >> c:
echo SeDenyNetworkLogonRight = >> c:
echo [Version] >> c:
echo signature="$CHICAGO$" >> c:
远程用户禁用了组策略-本地策略-用户权利指派里的拒绝从网络访问这台计算
机,我就不能远程3389连接了。
以管理员身份运行cmd,输入: secedit /export /cfg c: (导出当前安全设置)
notepad c:
打开后找到 SeDenyNetworkLogonRight (拒绝从网络访问这台计算机)如下
修改。
SeDenyNetworkLogonRight = Guest
完成修改后点文件-保存
将修改后的设置值,配置给计算机
secedit /configure /db c: /CFG c:
刷新策略使策略生效
gpupdate /force
导出组策略
在使用组策略编辑器更改过“计算机配置”和“用户配置”中的相应设置项后,Windows XP便
会分别在“C:WindowsSystem32 GroupPolicyMachine”或“C:WindowsSystem32
GroupPolicyUser”目录中,生成一个名为“”的文件。
进入到该目录,然后使用记事本程序打开“”文件。现在,你看到了什么?所有
秘密全在这里了,经过修改的组策略项目,其在注册表中的相应位置均罗列其中(如图4)。
比如之前设置的“开始”菜单中删除„运行‟菜单”项,便可根据这里所记录的注册表位置,来依
次展开“HKEY_CURRENT_ USERSoftwareMicrosoftWindowsCurrentVersion
PoliciesExplorer”分支,删除其中的“NoRun”键值即可。
要想恢复组策略的设置,最简单的方法无非是逐一查看策略项目。在默认情况下,策略项目
的“状态”显示应为“未被配置”(如图1)。如果被他人进行了更改,则会显示“已启用”或“已
禁用”的提示。不过组策略中的设置项“多如牛毛”,想要在众多项中找到被修改的位置,显
然太过费时费力,这时不妨试试简单易用的工具。
GPResult命令行术
其实,组策略设置的基本原理,就是修改注册表中相应的配置项目,从而达到配置系统
的目的。也就
是说,知道了注册表中的改动,也就等同于获得了组策略的修改位置。那么如何了解到组策
略修改的注册
表项目呢?这时,老鸟会用到一个名为的小工具。
使用Windows XP自带的命令行工具可以显示详细的策略结果。其使用方法
也比较简单。
比如要显示当前系统的组策略结果并输出到一个文本文件()中,可以打开“命令提示
符”窗口
,在其中执行“gpresult/z >”命令,之后打开该命令所创建的“notepad ”文件即可。
如果对组策略进行了相应设置,那么在打开的文本文件中,可看到已修改过的注册表项
(如图3)。
接下来只要打开注册表编辑器,依次展开这些项目(通常“计算机配置”的内容保存在
HKEY_LOCAL_MACHINE根目录中,“用户配置”的内容保存在HKEY_CURRENT_USER
根目录中),修改其中数
值名称数据,比如这里的“NoRun”表示从“开始”菜单中删除“运行”菜单,删除该数值即可
命令行下操作组策略
组策略是建立Windows安全环境的重要手段,尤其是在Windows域环境下。一个出色的系
统管理员,应该能熟练地掌握并应用组策略。在窗口界面下访问组策略用,命令
行下用。
先看secedit命令语法:
secedit /analyze
secedit /configure
secedit /export
secedit /validate
secedit /refreshpolicy
5个命令的功能分别是分析组策略、配置组策略、导出组策略、验证模板语法和更新组策略。
其中secedit /refreshpolicy 在XP/2003下被gpupdate代替。这些命令具体的语法自己在命令
行下查看就知道了。
与访问注册表只需reg文件不同的是,访问组策略除了要有个模板文件(还是inf),还需要一
个安全数据库文件(sdb)。要修改组策略,必须先将模板导入安全数据库,再通过应用安全
数据库来刷新组策略。来看个例子:
假设我要将密码长度最小值设置为6,并启用“密码必须符合复杂性要求”,那么先写这么一
个模板:
[version]
signature="$CHICAGO$"
[System Access]
MinimumPasswordLength = 6
PasswordComplexity = 1
保存为,然后导入:
secedit /configure /db /cfg /quiet
这个命令执行完成后,将在当前目录产生一个,它是“中间产品”,你可以删除它。
/quiet参数表示“安静模式”,不产生日志。但根据我的试验,在2000sp4下该参数似乎不起
作用,XP下正常。日志总是保存在%windir%。你也可以自己指定日
志以便随后删除它。比如:
secedit /configure /db /cfg /log
del gp.*
另外,在导入模板前,还可以先分析语法是否正确:
secedit /validate
那么,如何知道具体的语法呢?当然到MSDN里找啦。也有偷懒的办法,因为系统自带了
一些安全模板,在%windir%securitytemplates目录下。打开这些模板,基本上包含了常用
的安全设置语法,一看就懂。
再举个例子——关闭所有的“审核策略”。(它所审核的事件将记录在事件查看器的“安全性”
里)。
echo版:
echo [version] >
echo signature="$CHICAGO$" >>
echo [Event Audit] >>
echo AuditSystemEvents=0 >>
echo AuditObjectAccess=0 >>
echo AuditPrivilegeUse=0 >>
echo AuditPolicyChange=0 >>
echo AuditAccountManage=0 >>
echo AuditProcessTracking=0 >>
echo AuditDSAccess=0 >>
echo AuditAccountLogon=0 >>
echo AuditLogonEvents=0 >>
secedit /configure /db /cfg /log /quiet
del 1.*
也许有人会说:组策略不是保存在注册表中吗,为什么不直接修改注册表?因为不是所有的
组策略都保存在注册表中。比如“审核策略”就不是。你可以用regsnap比较修改该策略前后
注册表的变化。我测试的结果是什么都没有改变。只有“管理模板”这一部分是完全基于注册
表的。而且,知道了具体位置,用哪个方法都不复杂。
比如,XP和2003的“本地策略”-》“安全选项”增加了一个“本地帐户的共享和安全模式”策
略。XP下默认的设置是“仅来宾”。这就是为什么用管理员帐号连接XP的ipc$仍然只有Guest
权限的原因。可以通过导入reg文件修改它为“经典”:
echo Windows Registry Editor Version 5.00 >
echo [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlLsa] >>
echo "forceguest"=dword:00000000 >>
regedit /s
del
而相应的用inf,应该是:
echo [version] >
echo signature="$CHICAGO$" >>
echo [Registry Values] >>
echo MACHINESystemCurrentControlSetControlLsaForceGuest=4,0 >>
secedit /configure /db /cfg /log
del 1.*
关于命令行下读取组策略的问题。
系统默认的安全数据库位于%windir%,将它导出至inf文件:
secedit /export /cfg /log
没有用/db参数指定数据库就是采用默认的。然后查看。
不过,这样得到的只是组策略的一部分(即“Windows设置”)。而且,某个策略如果未配置,
是不会被导出的。比如“重命名系统管理员帐户”,只有被定义了才会在inf文件中出现
NewAdministratorName="xxx"。对于无法导出的其他的组策略只有通过访问注册表来获得
了。
此办法在XP和2003下无效——可以导出但内容基本是空的。原因不明。根据官方的资料,
XP和2003显示组策略用RSoP(组策略结果集)。相应的命令行工具是gpresult。但是,它
获得的是在系统启动时被附加(来自域)的组策略,单机测试结果还是“空”。所以,如果想
知道某些组策略是否被设置,只有先写一个inf,再用secedit /analyze,然后查看日志了
CMDSHELL之注册表、服务和组策略
包括三方面内容:注册表、服务和组策略。
先说注册表。很多命令行下访问注册表的工具都是交互式的,溢出产生的shell一般不能
再次重定向输入/输出流,所以无法使用。
好在系统自带的足够用了。
1,读取注册表
先将想查询的注册表项导出,再用type查看,比如:
C:>regedit /e
"HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal
ServerWinStationsRDP-Tcp"
C:>type | find "PortNumber"
"PortNumber"=dword:00000d3d
C:>del
所以终端服务的端口是3389(十六进制d3d)
2,修改/删除注册表项
先echo一个reg文件,然后导入,比如:
echo Windows Registry Editor Version 5.00 >
echo. >>
echo [HKEY_LOCAL_MACHINESOFTWAREMicrosoftTelnetServer1.0] >>
echo "TelnetPort"=dword:00000913 >>
echo "NTLM"=dword:00000001 >>
echo. >>
regedit /s
将telnet服务端口改为2323(十六进制913),NTLM认证方式为1。
要删除一个项,在名字前面加减号,比如:
[-HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesServ-U]
要删除一个值,在等号后面用减号,比如:
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun]
"KAVRun"=-
3,用inf文件访问注册表
上面对注册表的三个x作,也可以用下面这个inf文件来实现:
[Version]
Signature="$WINDOWS NT$"
[DefaultInstall]
AddReg=My_AddReg_Name
DelReg=My_DelReg_Name
[My_AddReg_Name]
HKLM,SOFTWAREMicrosoftTelnetServer1.0,TelnetPort,0x00010001,2323
HKLM,SOFTWAREMicrosoftTelnetServer1.0,NTLM,0x00010001,1
[My_DelReg_Name]
HKLM,SYSTEMCurrentControlSetServicesServ-U
HKLM,SOFTWAREMicrosoftWindowsCurrentVersionRun,KAVRun
将它写入c:然后用下面这个命令"安装":
setupapi,InstallHinfSection DefaultInstall 128 c:
几点说明:
1,[Version]和[DefaultInstall]是必须的,AddReg和DelReg至少要有一个。
My_AddReg_Name和My_DelReg_Name可以自定义。
0x00010001表示REG_DWORD数据类型,0x00000000或省略该项(保留逗号)表示
REG_SZ(字符串)。0x00020000表示REG_EXPAND_SZ。
2323也可以用0x913代替。
关于inf文件的详细信息,可以参考DDK帮助文档。
2,InstallHinfSection是大小写敏感的。它和setupapi之间只有一个逗号,没有空格。
128表示给定路径,该参数其他取值及含义参见MSDN。
特别注意,最后一个参数,必须是inf文件的全路径,不要用相对路径。
3,inf文件中的项目都是大小写不敏感的。
接下来说服务。如果想启动或停止服务,用net命令就可以。但想增加或删除服务,需要
用SC,,等工具。而这些工具系统没有自带(XP和2003自带SC)。导
入注册表虽然可以,但效果不好,原因后面会提到。还是得靠inf文件出马。
增加一个服务:
[Version]
Signature="$WINDOWS NT$"
[es]
AddService=inetsvr,,My_AddService_Name
[My_AddService_Name]
DisplayName=Windows Internet Service
Description=提供对 Internet 信息服务管理的支持。
ServiceType=0x10
StartType=2
ErrorControl=0
ServiceBinary=%11%
保存为,然后:
setupapi,InstallHinfSection DefaultInstall 128 c:
这个例子增加一个名为inetsvr的服务(是不是很像系统自带的服务,呵呵)。
几点说明:
1,最后四项分别是
服务类型:0x10为独立进程服务,0x20为共享进程服务(比如svchost);
启动类型:0 系统引导时加载,1 OS初始化时加载,2 由SCM(服务控制管理器)自动
启动,3 手动启动,4 禁用。
(注意,0和1只能用于驱动程序)
错误控制:0 忽略,1 继续并警告,2 切换到LastKnownGood的设置,3 蓝屏。
服务程序位置:%11%表示system32目录,%10%表示系统目录(WINNT或
Windows),%12%为驱动目录system32drivers。其他取值参见DDK。你也可以不用变量,
直接使用全路径。
这四项是必须要有的。
2,除例子中的六个项目,还有LoadOrderGroup、Dependencies等。不常用所以不介绍
了。
3,inetsvr后面有两个逗号,因为中间省略了一个不常用的参数flags。
删除一个服务:
[Version]
Signature="$WINDOWS NT$"
[es]
DelService=inetsvr
很简单,不是吗?
当然,你也可以通过导入注册表达到目的。但inf自有其优势。
1,导出一个系统自带服务的注册表项,你会发现其执行路径是这样的:
"ImagePath"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,
74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,74,
00,6c,00,6e,00,74,00,73,00,76,00,72,00,2e,00,65,00,78,00,65,00,00,00
可读性太差。其实它就是%SystemRoot%,但数据类型是
REG_EXPAND_SZ。当手动导入注册表以增加服务时,这样定义ImagePath显然很不方便。
如果用REG_SZ代替会有些问题——不能用环境变量了。即只能使用完整路径。用inf文件
完全没有这个问题,ServiceBinary(即ImagePath)自动成为REG_EXPAND_SZ。
2,最关键的是,和用SC等工具一样,inf文件的效果是即时起效的,而导入reg后必须
重启才有效。
3,inf文件会自动为服务的注册表项添加一个Security子键,使它看起来更像系统自带的
服务。
另外,AddService和DelService以及AddReg、DelReg可以同时且重复使用。即可以同
时增加和删除多个服务和注册表项。详细的内容还是请查看DDK。
最后说说组策略。组策略是建立Windows安全环境的重要手段,尤其是在Windows域
环境下。一个出色的系统管理员,应该能熟练地掌握并应用组策略。在窗口界面下访问组策
略用,命令行下用。
先看secedit命令语法:
secedit /analyze
secedit /configure
secedit /export
secedit /validate
secedit /refreshpolicy
5个命令的功能分别是分析组策略、配置组策略、导出组策略、验证模板语法和更新组策
略。其中secedit /refreshpolicy 在XP/2003下被gpupdate代替。这些命令具体的语法自己
在命令行下查看就知道了。
与访问注册表只需reg文件不同的是,访问组策略除了要有个模板文件(还是inf),还需
要一个安全数据库文件(sdb)。要修改组策略,必须先将模板导入安全数据库,再通过应用
安全数据库来刷新组策略。来看个例子:
假设我要将密码长度最小值设置为6,并启用"密码必须符合复杂性要求",那么先写这么
一个模板:
[version]
signature="$CHICAGO$"
[System Access]
MinimumPasswordLength = 6
PasswordComplexity = 1
保存为,然后导入:
secedit /configure /db /cfg /quiet
这个命令执行完成后,将在当前目录产生一个,它是"中间产品",你可以删除它。
/quiet参数表示"安静模式",不产生日志。但根据我的试验,在2000sp4下该参数似乎不
起作用,XP下正常。日志总是保存在%windir%。你也可以自己指
定日志以便随后删除它。比如:
secedit /configure /db /cfg /log
del gp.*
另外,在导入模板前,还可以先分析语法是否正确:
secedit /validate
那么,如何知道具体的语法呢?当然到MSDN里找啦。也有偷懒的办法,因为系统自带
了一些安全模板,在%windir%securitytemplates目录下。打开这些模板,基本上包含了
常用的安全设置语法,一看就懂。
再举个例子——关闭所有的"审核策略"。(它所审核的事件将记录在事件查看器的"安全
性"里)。
echo版:
echo [version] >
echo signature="$CHICAGO$" >>
echo [Event Audit] >>
echo AuditSystemEvents=0 >>
echo AuditObjectAccess=0 >>
echo AuditPrivilegeUse=0 >>
echo AuditPolicyChange=0 >>
echo AuditAccountManage=0 >>
echo AuditProcessTracking=0 >>
echo AuditDSAccess=0 >>
echo AuditAccountLogon=0 >>
echo AuditLogonEvents=0 >>
secedit /configure /db /cfg /log /quiet
del 1.*
也许有人会说:组策略不是保存在注册表中吗,为什么不直接修改注册表?因为不是所
有的组策略都保存在注册表中。比如"审核策略"就不是。你可以用regsnap比较修改该策略
前后注册表的变化。我测试的结果是什么都没有改变。只有"管理模板"这一部分是完全基于
注册表的。而且,知道了具体位置,用哪个方法都不复杂。
比如,XP和2003的"本地策略"-》"安全选项"增加了一个"本地帐户的共享和安全模式"
策略。XP下默认的设置是"仅来宾"。这就是为什么用管理员帐号连接XP的ipc$仍然只有
Guest权限的原因。可以通过导入reg文件修改它为"经典":
echo Windows Registry Editor Version 5.00 >
echo [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlLsa] >>
echo "forceguest"=dword:00000000 >>
regedit /s
del
而相应的用inf,应该是:
echo [version] >
echo signature="$CHICAGO$" >>
echo [Registry Values] >>
echo MACHINESystemCurrentControlSetControlLsaForceGuest=4,0 >>
secedit /configure /db /cfg /log
del 1.*
关于命令行下读取组策略的问题。
系统默认的安全数据库位于%windir%,将它导出至inf文
件:
secedit /export /cfg /log
没有用/db参数指定数据库就是采用默认的。然后查看。
不过,这样得到的只是组策略的一部分(即"Windows设置")。而且,某个策略如果未
配置,是不会被导出的。比如"重命名系统管理员帐户",只有被定义了才会在inf文件中出
现NewAdministratorName="xxx"。对于无法导出的其他的组策略只有通过访问注册表来获
得了。
此办法在XP和2003下无效——可以导出但内容基本是空的。原因不明。根据官方的资
料,XP和2003显示组策略用RSoP(组策略结果集)。相应的命令行工具是gpresult。但
是,它获得的是在系统启动时被附加(来自域)的组策略,单机测试结果还是"空"。所以,
如果想知道某些组策略是否被设置,只有先写一个inf,再用secedit /analyze,然后查看日
志了。
利用 配置本地审核策略作者: 字体:[增加 减小] 类型:转载
有时候我们需要配置本地策略,因为图形操作无法实现批量操作,那么就可以使用
实现批量操作,通过批处理完美实现
代码没什么技术含量,图形化操作转换为命令行而已。
效果图:
代码():
复制代码 代码如下:
@echo off
if {%1} == {} goto :help
if {%2} == {} goto :help
if exist erase /q
if exist erase /q
if exist erase /q
if {%1} == {-b} secedit /export /cfg %2 /log /quiet
if {%1} == {-r} secedit /configure /db /cfg %2 /log /quiet
if {%1} == {-o} (
if {%4} == {} goto :help
if not {%3} == {-p} goto :help
echo %4 | findstr "[0-3]" >nul || goto :help
rem pushd %windir%system32
echo.[version] >>
ure="$CHICAGO$" >>
echo.[Event Audit] >>
echo.%2 | findstr "D" >nul && SAccess=%4 >>
echo.%2 | findstr "E" >nul && ogonEvents=%4 >>
echo.%2 | findstr "S" >nul && ystemEvents=%4 >>
echo.%2 | findstr "O" >nul && bjectAccess=%4 >>
echo.%2 | findstr "U" >nul && rivilegeUse=%4 >>
echo.%2 | findstr "C" >nul && olicyChange=%4 >>
echo.%2 | findstr "L" >nul && ccountLogon=%4 >>
echo.%2 | findstr "M" >nul && ccountManage=%4 >>
echo.%2 | findstr "P" >nul && rocessTracking=%4 >>
if {%2} == {A} (
SAccess=%4 >>
ogonEvents=%4 >>
ystemEvents=%4 >>
bjectAccess=%4 >>
rivilegeUse=%4 >>
olicyChange=%4 >>
ccountLogon=%4 >>
ccountManage=%4 >>
rocessTracking=%4 >>
)
secedit /configure /db /cfg /log /quiet
)
if {%3} == {-v} type
if {%5} == {-v} type
if exist erase /q
if exist erase /q
if exist erase /q
exit /b
:help
cls
audit strategy manage tool. (C) Copyright 2013 enun-net.
echo.
: SAMTool -b^|r [drive:][path][filename] -o options -p parameters -v
echo.
echo. -b Backup the current configuration, Specifies an INF file.
echo. -r From an INF file recovery configuration.
echo. -o options^(Support multiple^):
echo. D: Directory Service Access
echo. E: Logon Events
echo. S: System Events
echo. O: Object Access
echo. U: Privilege Use
echo. C: Policy Change
echo. L: Account Logon
echo. M: Account Manage
echo. P: Process Tracking
echo. A: All audit
echo. -p parameters:
echo. 0: Don't audit
echo. 1: Only audit successful
echo. 2: Only audit failure
echo. 3: All audit ^(successful and failure^)
echo. -v Detailed results.
echo.
e: SAMTool -o EC -p 0 -v
echo. SAMTool -b c: -v
exit /b
例如:SAMTool -o EC -p 1 -v ,配置审核策略为:审核策略更改(成功),审核登录事件(成
功),并显示较详细的输出。
详细出处参考:/article/
发布评论