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比较修改该策略前后

注册表的变化。我测试的结果是什么都没有改变。只有管理模板这一部分是完全基于注册

表的。而且,知道了具体位置,用哪个方法都不复杂。

比如,XP2003本地策略-》安全选项增加了一个本地帐户的共享和安全模式

略。XP下默认的设置是仅来宾这就是为什么用管理员帐号连接XPipc$仍然只有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"。对于无法导出的其他的组策略只有通过访问注册表来获得

了。

此办法在XP2003下无效——可以导出但内容基本是空的。原因不明。根据官方的资料,

XP2003显示组策略用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]是必须的,AddRegDelReg至少要有一个。

My_AddReg_NameMy_DelReg_Name可以自定义。

0x00010001表示REG_DWORD数据类型,0x00000000或省略该项(保留逗号)表示

REG_SZ(字符串)0x00020000表示REG_EXPAND_SZ

2323也可以用0x913代替。

关于inf文件的详细信息,可以参考DDK帮助文档。

2InstallHinfSection是大小写敏感的。它和setupapi之间只有一个逗号,没有空格。

128表示给定路径,该参数其他取值及含义参见MSDN

特别注意,最后一个参数,必须是inf文件的全路径,不要用相对路径。

3inf文件中的项目都是大小写不敏感的。

接下来说服务。如果想启动或停止服务,net命令就可以。但想增加或删除服务,需要

SC等工具。而这些工具系统没有自带(XP2003自带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 禁用。

(注意,01只能用于驱动程序)

错误控制:0 忽略,1 继续并警告,2 切换到LastKnownGood的设置,3 蓝屏。

服务程序位置:%11%表示system32目录,%10%表示系统目录(WINNT

Windows)%12%为驱动目录system32drivers。其他取值参见DDK。你也可以不用变量,

直接使用全路径。

这四项是必须要有的。

2,除例子中的六个项目,还有LoadOrderGroupDependencies等。不常用所以不介绍

了。

3inetsvr后面有两个逗号,因为中间省略了一个不常用的参数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后必须

重启才有效。

3inf文件会自动为服务的注册表项添加一个Security子键,使它看起来更像系统自带的

服务。

另外,AddServiceDelService以及AddRegDelReg可以同时且重复使用。即可以同

时增加和删除多个服务和注册表项。详细的内容还是请查看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比较修改该策略

前后注册表的变化。我测试的结果是什么都没有改变。只有"管理模板"这一部分是完全基于

注册表的。而且,知道了具体位置,用哪个方法都不复杂。

比如,XP2003"本地策略"-》"安全选项"增加了一个"本地帐户的共享和安全模式"

策略。XP下默认的设置是"仅来宾"。这就是为什么用管理员帐号连接XPipc$仍然只有

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"。对于无法导出的其他的组策略只有通过访问注册表来获

得了。

此办法在XP2003下无效——可以导出但内容基本是空的。原因不明。根据官方的资

料,XP2003显示组策略用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/