AI智能
改变未来

Python 搞定windows server 2008 用户授权远程登录

1.技术背景**
1.1.需求***

随着某技术部门人员大量扩招,开windows堡垒机账号远程登录的需求变为频繁.人工每次添加很糟心. 随着linux和windows 各大操作系统的高频操作切换 有时候竟然找不到windows server 系统授权远程登录用户在哪里配置.

1.2.为什么要windows堡垒机

公司网络业务系统使用zone和layer物理网络隔离,无法直接访问业务系统,(临时测试应用程序无法测试)

1.3 是否有其他代替方案

1.开源jumpserver高版本可以支持

1.4 为何要写脚本

1.公司内部堡垒机版本太低支持不了windows server 管理2.手工配置太繁琐.人肉太累.

话不多说直接上脚本

2.授权用户远程访问脚本内容

**# coding=utf-8**import osimport randomimport timeimport sysimport logginglogger = logging.getLogger()logger.setLevel(logging.INFO)time_line = time.strftime(\'%Y%m\', time.localtime(time.time()))log_path = \'C:\\\\Users\\Administrator\\\\Desktop\\\\ops_adduser\\\\useradd.log\'logfile = log_path + time_line + \'winduseradd.log\'handler = logging.FileHandler(logfile, mode=\'a\')handler.setLevel(logging.INFO)formatter = logging.Formatter(\"%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s\")handler.setFormatter(formatter)logger.addHandler(handler)def userWindUser(data):\"\"\"\"1.接受输出参数转化为字典2.遍历字典.后续可以支持输入多个用户(目前支持单个用户)3.固定+随机+特殊符合生成符合系统密码策略密码.4.执行用户创建设置密码和加入远程登录系统组.\"\"\"user_dict = [{\"name\":data,\"realname\":data,\"group\":\"Remote Desktop Users\"},]user_list = []for i in user_dict:username = i[\"name\"]group = i[\"group\"]realname=i[\"realname\"]randstr = random.randint(100,990)password = \"Lixing\" + \"#\" + str(randstr)logger.info(\"创建用户\"  + str(username) +  \"创建密码\"  +  str(password))user_list.append(username + \' : \' + password)#创建用户并设置密码及禁止修改密码command = \"net user %s %s /passwordchg:no /expires:never /FULLNAME:%s /add\" %(username, password,realname)runOscmd(command)#设置密码永不过期command = \"wmic useraccount where \\\"name=\'%s\'\\\" set passwordexpires=false\"%(username)runOscmd(command)#设置属组command = \"net localgroup \\\"%s\\\"  %s /add\" %(group,username)runOscmd(command )print(user_list) #输出账号和密码return user_listdef runOscmd(cmd):\"\"\"1.执行windows系统命令方法\"\"\"import osif cmd:os.system(cmd)else:print(\"cmd error\")def accountWrite(username):\"\"\"1.创建用户和远程授权2.判断返回是否有参数.3.失败写入log文件中\"\"\"data=userWindUser(username)if data:logger.info(\"run success\")else:logger.info(\"useradd user error\"if __name__ == \"__main__\":\"\"\"1.脚本入口2.去除输入参数首尾空格.3.不输出参数程序终止,log文件写入提示信息.\"\"\"try:username = sys.argv[1]if username:reult=accountWrite(username.strip())else:print(\"please input user\")except Exception as e:logger.info(\"没有输入用户,程序运行失败\")

3.使用方法介绍
···
1.需要windows server 2008上部署python3.6 以上版本环境
2.windows系统添python系统环境变量
3.python user_user.py ops #创建ops用户并加入远程登录组
···

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » Python 搞定windows server 2008 用户授权远程登录