文章目录
icalcs
rem 以当前登录的用户取得文件/文件夹的所有者权限(r:递归),不要使用通配符
takeown /r /f filename
rem 赋予用户lei对文件/文件夹filename的完全控制权限(lei必须是所有者,否则可能失败)
rem 赋予权限,f:所有
icacls filename /t /c /grant lei:f
rem /remove(撤销权限) /deny(拒绝用户访问权限)
rem 移除用户的读取执行和删除权限
icacls file remove administrator:(rx,d)
setacl
http://setacl.sourceforge.net/
https://helgeklein.com/setacl/documentation/command-line-version-setacl-exe/
rem -on :对象,如注册表键或文件/目录
rem -ot :对象类型,如reg(注册表),file(文件或目录),srv(服务),prn(打印机),shr(网络共享)
rem -actn:操作名,如ace,setowner(-ownr),setgroup(-grp),setprot(权限可从父亲继承),clear.
rem -rec :递归,cont_obj(递归处理子目录和文件),no(不递归),yes(递归,仅限用于reg)
rem -ace
rem :p:Permission(full,read,write_ea:写入运行),m:Mode(grant:添加权限,set:替换权限,deny:取消权限)
rem :w:where(权限应用位置:sacl:特殊权限,dacl:标准权限),i:inherit(so:子对象,sc:子容器,np:不向下继承,io:只继承)
setacl -on "HKCU/Softeware/Microsoft/CTF" -ot reg -actn ace -ace "n:lei;p:full;m:grant:w:dacl" -op "dacl:p_nc"
相关文章
Awk
- sleepreading
- 2013-08-06 15:14:32
- awk把连续的相同的分隔符作为1个分隔符处理!
- awk可以按分隔符对每行进行切片处理!
- awk会循环处理文件的每一行,这点与sed类似!
#
# options
#
# -f scripfile 可指定要执行的脚本文件.内容如:BEGIN{} {} END{}
# -F: 指定域分隔符为冒号,注意他们之间没有空格
#
# environment
#
# $n: 表示第1、第2...n个域
# $0: 表所有的域,类似于数据库中的一行Record(记录)
# FIELDWIDTHS: 如指定FIELDWIDTHS="2 3"表示第1列占2两个字符,第2列占3个字符!
# FS: 字段分隔符,默认是空格;OFS:输出字段分隔符;
# RS: 输入数据行分隔符,默认是换行;如果写成""则表示空白行,通常配合FS="\n"使用!
# NF: 数据文件中的字段总数!$NF就表示最后一个字段!$(NF-1):倒数第二。
# NR: 当前已处理的记录数!第2行时为2...
# ARGC: 命令行参数的数量
# ARGV: 命令行参数的数组
# ERRNO: 最后一个系统错误的描述
# CONVFMT: 数字格式转换
# FILENAME: 当前文件名
# 命令必须放在大括号中,多个命令使用分号';'或换行符分割.
# 数组的下标可以看成是字符串,故`arr[09]`与`arr[9]`是不同的.
awk [options] '{program}' file
# awk会在每读取一行数据后,调用命令处理.
# 如下可以在所有事情之前执行cmd1,然后使用cmd做正事.完事后执行cmd2.
awk 'BEGIN {cmd1 FS=":"} {cmd} END {cmd} file'
# 逐行读取并切片,默认域分隔符是空格.
# ~/pattern/:匹配正则表达式; !~/pattern/:不匹配正则表达式
awk -F: '/pattern/{command}' file
function
sub(r,s,t) # 在t中将第一次出现的r替换为s
substr(r,s) # r中s开始的后缀部分
substr(r,s,t) # r中s开始长度为t的后缀部分
gsub(r,s) # 在输入文件中用s替换r
gsub(r,s,t) # 在t中用s替换r
index(s,t) # s中第一个字符串t的位置
length(s) # s的长度
match(s,t) # s中是否包含匹配t的字符串,返回出现位置的索引+1,没有时返回0
split(r,s,t) # 在t上将r按s分割成序列
if (condition) # if (x~/[Hh]el?o/),使用正则表达式
actions
else
actions
while (condition)
actions
do
actions
while (condition)
for (init_val; test_val; change_val)
actions
for (var in array)
actions
demo
awk '{print $2 $1 $4 $3}' file # 打印file中的2,1,4,3列
awk -F ":" '{if ($1==2 && $2==$3) printf $0}' /etc/passwd
awk 'BEGIN {FS=","} {printf("%s\t%d\n",$2,$8)}' file # 每输出两个域后换行
awk 'BEGIN {FS=":";OFS=":"} gsub(/root/,"ROOT",$1) print $0' /etc/passwd # 替换后输出
awk 'NR % 2 == 0' xx # 打印偶数行
Cmd
- sleepreading
- 2013-06-06 10:35:44
Environment
http://libertyboy.free.fr/computing/reference/envariables/index.php
| env | stands for |
|---|---|
| %username% | 当前用户名 |
| %systemdrive% | C:\\ |
| %systemroot% | C:\\windows\\,或者等价于%windir% |
| %programfiles% | C:\\Program Files |
| %userprofile% | C:\\Documents and Settings\\lei |
| %appdata% | C:\\Documents and Settings\\lei\\Application Data |
| %appdata% | C:\\users\\lei\\appdata\\roaming,该值最好不要修改; %appdata%\Microsoft\Internet Explorer\Quick Launch |
| %userprofile% | C:\\users\\lei,该值是固定的,等价于%homedrive%%homepath% |
| %temp% | C:\\Users\\lei\\appdata\\local\\temp,该值最好不要修改 |
| %comspec% | C:\Windows\System32\cmd.exe |
| %errorlevel% | 表示上一个命令成功==0 |
| %date% | 日期 |
| %0% | 当前批处理文件全路径,删除自身: del %0 >nul 2>nul &exit |
| %~dp0% | 批处理文件所在的目录 |
| %PROCESSOR_ARCHITECTURE% | 注意此值不能用来判断OS位数,因为cmd是32位的64位系统出来可能是x86 |
Common Cmd
rem https://learn.microsoft.com/en-us/sysinternals/downloads/psexec
psexec
rem process
start /max kmplayer.exe && exit
taskkill /f /im Qvod* 1>nul 2>nul
rundll32 DLLname,Functionname [Arguments]
rem 安全删除硬件窗口
rundll32 shell32.dll,Control_RunDLL hotplug.dll
rem 锁屏
rundll32 user32.dll,LockWorkStation
rem 管理工具
control admintools
rem 用户账户,可配置自动登录!
control userpasswords2
rem 文件夹选项
control folders
rem 鼠标选项(main.cpl)
control mouse
rem 键盘选项
control keyboard
rem 网络连接(ncpa.cpl)
control netconnections
rem 打印机
control printers
rem io
rem /e :every,复制子目录包括空目录
rem /y :如果有同名文件则取消提示以覆盖
rem /c :continue,即使出错也继续
rem /i :假定目标是一个目录,而不是文件(默认情况可能会提示)
rem /k :复制文件属性
rem /o :复制文件所有权和ACL信息
rem destination必须指明boot不然会将source的boot中的所有内容都复制到D:\tmp\
rem D:\tmp\boot不存在时会被自动创建!
xcopy /e /i /y /c boot D:\tmp\boot
rem misc
rem lusrmgr.msc, secpol.msc, perfmon.msc, diskmgmt.msc, devmgmt.msc
rem appwiz.cpl, powercfg.cpl, timedate.cpl(时间日期), wscui.cpl(windows安全)
rem sysdm.cpl,3(系统属性-高级), desk.cpl(桌面-属性), inetcpl.cpl(Internet属性)
rem mmsys.cpl(声音), hdwwiz.cpl(添加硬件向导), joy.cpl(游戏手柄)
rem 压缩
makecab /d CompressionType=LZX /d CompressionMemory=21 filename
rem vbExclamation叹号 vbInformation提示 vbQuestion问号 vbCritical叉号
rem vbYesNo确定取消按钮 vbSystemModal前段显示
mshta vbscript:msgbox("Hello,world!",vbYesNo,"batch script")(window.close)
Network
rem set DHCP, LocalConnection
netsh interface ip set address "本地连接" dhcp
netsh interface ip set dns "本地连接" dhcp
rem set static
netsh interface ip set address "本地连接" static 192.168.1.123 255.255.255.0 192.168.1.1
netsh interface ip set dns "本地连接" static 8.8.8.8
netsh wlan show all 显示当前无线连接以及搜索到的所有其他无线网络
rem 建立无线网络,注意无线物理网卡的连接不要禁用,虽然其显示红叉
rem 如果"支持的承载网络"是'否'则不支持网络共享
netsh wlan show drivers
rem wifi share
netsh wlan set hostednetwork mode=allow ssid="hello world" key=hello //length(key)>=6
rem 共享当前网络连接到Microsoft Virtual Wifi miniport
control netconnections
rem stop show
netsh wlan start hostednetwork
rem net resource share
rem 首先创建一个隐藏用户
net user lei$ 123 /add
net localgroup administrators leizi$ /add /comment:"some comment"
rem 从users组中删除用户
net localgroup users leizi /del
rem 开启/启动telnet服务stop
net start telnet
rem 映射网络驱动器
net use j: \\192.168.20.2\ipc$
rem 断开所有IPC$连接(默认不支持Admin权限的连接)
net use * /del
rem 查看共享
net share
filetype
- 会修改例如如下注册表位置(全局):
hkcr\lnkfile - windows默认定义了6中文件类型:
text(txtfile) image audio video compressed system
rem 将快捷方式关联到正确的'关联类型',不要应用到未知的自定义类型,这不起任何作用!
rem 会给HKCR/.lnk下的默认键添加键值"lnkfile"
assoc .lnk=lnkfile
rem 添加新的文件扩展名对应的打开方式;不会显示相应的文件类型图标.
ftype .conf=d:\usr\Vim\gvim.exe --remote-silent %%1>nul
rem 添加无扩展名文件的默认打开方式
ftype .=d:\usr\Vim\gvim.exe --remote-silent %&1>nul
WMIC
- sleepreading
- 2013-06-06 10:01:31
Windows Management Instrument Command-line
- 注意: 如果wmic命令上头有
ver|find "5." >nul 2>nul则会引起奇葩的无限等待问题(XP).
rem 更改用户名
wmic useraccount where "name='admin'" call Rename "admin00"
rem 查看CPU型号
wmic cpu get name
rem 获取当前系统进程名称以及可执行路径
wmic process get name,executablepath
rem 获取文件信息
wmic datafile where "name='c:\\notepad.exe'" get CreationDate,LastAccessed,LastModified
rem 文件搜索
wmic datafile where "filename='qq' and extension='exe' and drive='d:' and filesize>=9560" get drive,path
rem 更改计算机名
wmic computersystem where "name='abc'" call rename "12 3"
rem 更改工作组google --> MyGroup
wmic computersystem where "name='google'" call joindomainorworkgroup "","","MyGroup",1
rem 查看屏幕分辨率
wmic desktopmonitor where status='ok' get screenheight,screenwidth
rem 获取硬盘固定分区盘符(非光驱、移动存储器)
wmic logicaldisk where "drivetype=3" get name
rem 获取硬盘各分区文件系统以及可用空间
wmic logicaldisk where "drivetype=3" get name,filesystem,freespace
rem 获得环境变量home的用户名以及变量值,结果可能是: ComputerName\lei %homedrive%%homepath%(==%home%==userprofile)
wmic environment where "name='temp'" get userName,variablevalue
rem 编辑系统环境变量,添加新的值
wmic environment where "name='path' and username='<system>'" set VariableValue="%path%;e:\tools"
rem 新增用户环境变量home,值为%home%
wmic environment create name="home",username="%username%",VariableValue="%home%"
rem 删除home环境变量
wmic environment where "name='home'" delete
rem 设置新的页面文件删除旧的,单位是MB.
wmic pagefileset create name='d:\pagefile.sys',initialsize=512,maximumsize=1024
wmic pagefileset where "name='c:\\pagefile.sys'" delete
rem 更改页面文件大小
wmic pagefileset set InitialSize="512",MaximumSize="512"


