至于启动一些文件无法启动,当start命令无效时可以用call命令。汗……没事谁用批处理来写恶意软件,C++什么的方便多了……
我查过了,批处理中能修改注册表的命令除了新建注册表文件再运行外就只有reg命令了。而reg命令中貌似没有能修改权限的命令分支,下面是我从批处理中导出的有关说明文件,没有“权限”这个字眼
REG
QUERY
KeyName
[/v
ValueName
|
/ve]
[/s]
KeyName
[\Machine\]FullKey
Machine
远程机器名
-
忽略当前机器的默认值
远程机器上只有
HKLM
和
HKU
FullKey
格式为
ROOTKEY\SubKey
ROOTKEY
[
HKLM
|
HKCU
|
HKCR
|
HKU
|
HKCC
]
SubKey
所选
ROOTKEY
下的注册表项的全名
/v
查询特定注册表项
ValueName
所选项下的要查询的值的名称
省略时,该项下的所有值都会得到查询
/ve
查询默认值或空白值名称<no
name>
/s
查询所有子项和值
例如:
REG
QUERY
HKLM\Software\Microsoft\ResKit
/v
Version
显示注册表值
Version
的值
REG
QUERY
HKLM\Software\Microsoft\ResKit\r
t\Setup
/s
显示注册表项
Setup
下的所有子项和值
REG
ADD
KeyName
[/v
ValueName
|
/ve]
[/t
Type]
[/s
Separator]
[/d
Data]
[/f]
KeyName
[\\Machine\]FullKey
远程机器的机器名
-
忽略默认到当前机器。
远程机器上只有
HKLM
和
HKU。
FullKey
ROOTKEY\SubKey
ROOTKEY
[
HKLM
|
HKCU
|
HKCR
|
HKU
|
HKCC
]
SubKey
所选
ROOTKEY
下注册表项的完整名
/v
所选项之下要添加的值名
/ve
为注册表项添加空白值名<无名称>
/t
RegKey
数据类型
[
REG_SZ
|
REG_MULTI_SZ
|
REG_DWORD_BIG_ENDIAN
|
REG_DWORD
|
REG_BINARY
|
REG_DWORD_LITTLE_ENDIAN
|
REG_NONE
|
REG_EXPAND_SZ
]
如果忽略,则采用
REG_SZ
/s
指定一个在
REG_MULTI_SZ
数据字符串中
用作分隔符的字符
如果忽略,则将
"\0"
用作分隔符
/d
要分配给添加的注册表
ValueName
的数据
/f
不用提示就强行改写现有注册表项
例如:
REG
ADD
\\ABC\HKLM\Software\MyCo
添加远程机器
ABC
上的一个注册表项
HKLM\Software\MyCo
REG
ADD
HKLM\Software\MyCo
/v
Data
/t
REG_BINARY
/d
fe340ead
添加一个值(名称:
Data,类型:
REG_BINARY,数据:
fe340ead)
REG
ADD
HKLM\Software\MyCo
/v
MRU
/t
REG_MULTI_SZ
/d
fax\0mail
添加一个值(名称:
MRU,类型:
REG_MUTLI_SZ,数据:
fax\0mail\0\0)
REG
ADD
HKLM\Software\MyCo
/v
Path
/t
REG_EXPAND_SZ
/d
%%systemroot%%
添加一个值(名称:
Path,类型:
REG_EXPAND_SZ,数据:
%systemroot%)
注意:
在扩充字符串中使用双百分比符号(
%%
)
REG
DELETE
KeyName
[/v
ValueName
|
/ve
|
/va]
[/f]
KeyName
[\\Machine\]FullKey
Machine
远程机器名
-
忽略当前机器的默认值
远程机器上只有
HKLM
和
HKU
FullKey
ROOTKEY\SubKey
ROOTKEY
[
HKLM
|
HKCU
|
HKCR
|
HKU
|
HKCC
]
SubKey
所选
ROOTKEY
下的注册表项的全名
ValueName
所选项下的要删除的值的名称
省略时,该项下的所有子项和值都会被删除
/ve
删除空白值名称<no
name>的值
/va
删除该项下的所有值
/f
不用提示就强行删除
例如:
REG
DELETE
HKLM\Software\MyCo\MyApp\Timeout
删除注册表项
Timeout
及其所有子项和值
REG
DELETE
\\ZODIAC\HKLM\Software\MyCo
/v
MTU
删除
ZODIAC
上
MyCo
下的注册表项
MTU
REG
COPY
KeyName1
KeyName2
[/s]
[/f]
KeyName
[\\Machine\]FullKey
Machine
远程机器名
-
忽略当前机器的默认值
远程机器上只有
HKLM
和
HKU
FullKey
ROOTKEY\SubKey
ROOTKEY
[
HKLM
|
HKCU
|
HKCR
|
HKU
|
HKCC
]
SubKey
所选
ROOTKEY
下的注册表项的全名
/s
复制所有子项和值
/f
不用提示就强行复制
例如:
REG
COPY
HKLM\Software\MyCo\MyApp
HKLM\Software\MyCo\SaveMyApp
/s
将注册表项
MyApp
下的所有子项和值复制到注册表项
SaveMyApp
REG
COPY
\\ZODIAC\HKLM\Software\MyCo
HKLM\Software\MyCo1
将
ZODIAC
上注册表项
MyCo
下的所有值
复制到当前机器上的注册表项
MyCo1
REG
SAVE
KeyName
FileName
KeyName
ROOTKEY\SubKey
ROOTKEY
[
HKLM
|
HKCU
|
HKCR
|
HKU
|
HKCC
]
SubKey
所选
ROOTKEY
下的注册表项的全名
FileName
要保存的磁盘文件名。如果没有指定路径,
文件会在调用进程的当前文件夹中得到创建
例如:
REG
SAVE
HKLM\Software\MyCo\MyApp
AppBkUphiv
将配置单元
MyApp
保存到当前文件夹中的文件
AppBkUphiv
REG
RESTORE
KeyName
FileName
KeyName
ROOTKEY\SubKey
(只是本地机器)
ROOTKEY
[
HKLM
|
HKCU
|
HKCR
|
HKU
|
HKCC
]
SubKey
要将配置单元文件还原到的注册表项全名。
改写现有项的值和子项
FileName
要还原的配置单元文件名
您必须使用
REG
SAVE
来创建这个文件
例如:
REG
RESTORE
HKLM\Software\Microsoft\ResKit
NTRKBkUphiv
还原文件
NTRKBkUphiv,改写注册表项
ResKit
REG
LOAD
KeyName
FileName
KeyName
ROOTKEY\SubKey
(只是本地机器的)
ROOTKEY
[
HKLM
|
HKU
]
SubKey
要将配置单元文件加载进的注册表项名称。创建一个新的注册表项
FileName
要加载的配置单元文件名
您必须使用
REG
SAVE
来创建这个文件
例如:
REG
LOAD
HKLM\TempHive
TempHivehiv
将文件
TempHivehiv
加载到注册表项
HKLM\TempHive
REG
UNLOAD
KeyName
KeyName
ROOTKEY\SubKey
(只是本地机器的)
ROOTKEY
[
HKLM
|
HKU
]
SubKey
要卸载的配置单元的注册表项名称
例如:
REG
UNLOAD
HKLM\TempHive
卸载
HKLM
中的配置单元
TempHive
REG
COMPARE
KeyName1
KeyName2
[/v
ValueName
|
/ve]
[Output]
[/s]
KeyName
[\\Machine\]FullKey
Machine
远程机器名
-
省略当前机器的默认值
远程机器上只有
HKLM
和
HKU
FullKey
ROOTKEY\SubKey
如果没有指定
FullKey2,FullKey2
则跟
FullKey1
相同
ROOTKEY
[
HKLM
|
HKCU
|
HKCR
|
HKU
|
HKCC
]
SubKey
所选
ROOTKEY
下的注册表项的全名
ValueName
所选注册表项下的要比较的值的名称
省略时,该项下的所有值都会得到比较
/ve
比较空白值<no
name>名称的值
/s
比较所有子项和值
Output
[/oa
|
/od
|
/os
|
/on]
省略时,只显示不同的结果
/oa
显示所有不同和匹配结果
/od
只显示不同的结果
/os
只显示匹配结果
/on
不显示结果
返回代码:
0
-
成功,比较的结果相同
1
-
失败
2
-
成功,比较的结果不同
例如:
REG
COMPARE
HKLM\Software\MyCo\MyApp
HKLM\Software\MyCo\SaveMyApp
将注册表项
MyApp
下的所有值跟
SaveMyApp
比较
REG
COMPARE
HKLM\Software\MyCo
HKLM\Software\MyCo1
/v
Version
比较注册表项
MyCo
和
MyCo1
下的值
Version
REG
COMPARE
\\ZODIAC\HKLM\Software\MyCo
\\
/s
将
ZODIAC
上
HKLM\Software\MyCo
下的
所有子项和值和当前机器上的相同项比较
REG
EXPORT
KeyName
FileName
Keyname
ROOTKEY\SubKey
(local
machine
only)
ROOTKEY
[
HKLM
|
HKCU
|
HKCR
|
HKU
|
HKCC
]
SubKey
所选
ROOTKEY
下的注册表项的全名
FileName
要导出的磁盘文件名
例如:
REG
EXPORT
HKLM\Software\MyCo\MyApp
AppBkUpreg
将注册表项
MyApp
的所有子项和值导出到文件
AppBkUpreg
REG
IMPORT
FileName
FileName
要导入的磁盘文件名(只用于本地机器)
例如:
REG
IMPORT
AppBkUpreg
从文件
AppBkUpreg
导入注册表项@echo off & title 分析指定目录中指定用户的权限 By 依梦琴瑶
setlocal enabledelayedexpansion
cd /d %~dp0
::设置指定用户
set User=user
::设置要分析的主目录
set ScrDir=D:\123
if not exist "%SystemRoot%\System32\icaclsexe" (
echo 由于您的系统目录 %SystemRoot%\System32 中缺失 icaclsexe
echo 因此我无法继续为您服务了 T_T 再见,我会想您的。
pause
exit
)
tasklist | findstr /i "icaclsexe" >nul && (
echo 在您的进程列表中发现了 icaclsexe 进程,如果该进程处理的目
echo 录正好是您要分析的目录,那么有可能会因为占用而无法分析哦!
echo 若您按下任意键,那么我将会结束它,并执行本次的分析。
echo 若您不想结束它,那么请直接点击 × 符号来关闭本窗口。
pause
taskkill /f /im icaclsexe
)
cls & echo 用户 %User% 拥有的权限正在玩命分析中,耐心等我一下哈
(for /d %%i in ("%ScrDir%\") do (
call :GetPermInfo "%%~i"
if defined Perm (
Echo 用户 %User% 拥有 "%%~fi" 的权限如下:
Echo !Perm:~,-1! & echo,
)
))>"用户%User%拥有的权限Log"
echo, & echo 分析完成,请查看“用户%User%拥有的权限Log”
pause
exit
:GetPermInfo
set "Perm=" & set "QX="
for /f "tokens=2,3 delims=:" %%a in ('icacls "%~s1" ^| findstr /i "%User%:"') do (
if /i "%%~a"=="%~spnx1 %User%" (
set Q=%%b
) else (
set Q=%%a
)
set QX=!QX!!Q!
)
set QX=!QX:DENY=~!
set QX=!QX:OI=!
set QX=!QX:CI=!
set QX=!QX:IO=!
set QX=!QX:NP=!
set QX=!QX:I=!
set QX=!QX:AD=!
set QX=!QX:AS=!
set QX=!QX:DC==!
set QX=!QX:DE==!
set QX=!QX:F=#!
set QX=!QX:GA=!
set QX=!QX:GE=!
set QX=!QX:GR=!
set QX=!QX:GW=!
set QX=!QX:MA=!
set QX=!QX:M=@!
set QX=!QX:N=!
set QX=!QX:RA=!
set QX=!QX:RC=!
set QX=!QX:RD=!
set QX=!QX:REA=!
set QX=!QX:RX=!
set QX=!QX:R=!
set QX=!QX:S=!
set QX=!QX:WA=!
set QX=!QX:WDAC=!
set QX=!QX:WD=!
set QX=!QX:WEA=!
set QX=!QX:WO=!
set QX=!QX:D==!
set QX=!QX:W=!
set QX=!QX:X=!
set QX=!QX:,=!
set QX=!QX:^(=!
set QX=!QX:^)=!
if defined QX (
echo !QX!|findstr "~" >nul || (
echo !QX!|findstr "=" >nul && set Perm=删除权限、!Perm!
echo !QX!|findstr "@" >nul && set Perm=修改权限、!Perm!
echo !QX!|findstr "#" >nul && set Perm=完全控制权限、!Perm!
)
)
goto :eof用管理员身份运行命令提示符窗口。这样再执行这个赋权命令才能正常。
如何使用管理员身份运行运行cmd(命令提示符),请参考本人的一篇百度经'验文章“教你以管理员身份运行cmd”:
>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)