由于不清楚如何用windows脚本将本地组及组成员信息汇总到单个文件中,本文准备采用Python来汇总本地组及组成员信息。又因为没有百度出来使用Python获取本地用户和租的信息的方法,本文使用Python运行net localgroup命令生成结果文件,并分析输出文件后汇总形成为单个excel文件。
本文主要使用的模块包括:
- os模块。用于操作文件系统;
- openpyxl模块。用于操作excel文件。
本文中采用的函数主要包括:
序号 | 函数名称 | 说明 | 所属模块 |
---|---|---|---|
1 | system | 可以将字符串转化成命令在服务器上运行 | os模块 |
2 | open | 用于打开一个文件 | os模块 |
3 | stat | 返回相关文件的系统状态信息 | os模块 |
4 | load_workbook | 加载excel文件 | openpyxl模块 |
5 | create_sheet | 创建工作簿 | openpyxl模块 |
6 | append | 在工作簿中追加一行内容 | openpyxl模块 |
完成的程序及程序运行结果如下所示:
# coding=gbk
import os
from openpyxl import load_workbook
groupFileName='localgroups.txt'
localgroups=[]
os.system('net localgroup >'+groupFileName)
with open(groupFileName) as file:
isStart=False;
for rowItem in file:
if rowItem.startswith('-----------------------------------------------------------------------'):
isStart=True;
continue
if rowItem.startswith('命令成功完成。'):
break
if(isStart):
localgroups.append(rowItem.replace('*','').replace('\n',''))
print(localgroups)
path = r"localgroup.xlsx"
wb = load_workbook(path)
for group in localgroups:
oneGroupName=group.replace(' ','_')+'.txt'
os.system('net localgroup '+group+'>'+oneGroupName)
statinfo = os.stat(oneGroupName)
if(statinfo.st_size==0):
continue
ws = wb.create_sheet(group)
with open(oneGroupName) as file:
isStart=False;
for rowItem in file:
if rowItem.startswith('-----------------------------------------------------------------------'):
isStart=True;
continue
if rowItem.startswith('命令成功完成。'):
break
if(isStart):
ws.append([rowItem])
wb.save(path)
参考文献
[1]https://www.cnblogs.com/slqt/p/9009114.html
[2]https://blog.youkuaiyun.com/weixin_35878217/article/details/114388770
[3]https://blog.youkuaiyun.com/weixin_54227557/article/details/125817783
[4]https://blog.youkuaiyun.com/weixin_44801980/article/details/108476909
[5]https://blog.youkuaiyun.com/u012633319/article/details/123341925
[6]https://www.cnblogs.com/hls-code/p/15674197.html
[7]https://blog.youkuaiyun.com/m0_63171455/article/details/121966957