Python 搞定windows server 2008 用户授权远程登录
2021-01-13 17:31
991 查看
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 os import random import time import sys import logging logger = 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_list def runOscmd(cmd): """ 1.执行windows系统命令方法 """ import os if 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用户并加入远程登录组
···
相关文章推荐
- windows server 2008 远程桌面(授权、普通用户登录)
- Windows Server 2008 R2 多用户实现远程连接登录 远程桌面服务配置和授权激活
- windows server 2008 远程桌面(授权、普通用户登录)~
- windows server 2008 远程桌面(授权、普通用户登录)
- windows server 2008 远程桌面(授权、普通用户登录)
- Windows Server 2008 R2 多用户实现远程连接登录 远程桌面服务配置和授权激活
- windows server 2008 远程桌面(授权、普通用户登录)
- windows server 2008 远程桌面(授权、普通用户登录)~
- windows server 2008 远程桌面(授权、普通用户登录)
- windows server 2008 远程桌面(授权、普通用户登录)~ ...
- windows server 2008 远程桌面(授权、普通用户登录)~ ...
- windows server 2008 设置多用户同时远程登录(图解一)
- Windows server 2008普通用户不能远程登录问题
- windows server 2008/2012远程桌面实现多用户同时用同一用户名登录
- windows server 2008 设置多用户同时远程登录
- [转]windows server 2008 多用户远程登录设置
- windows server 2008 多用户远程登录设置
- Windows Server 2008允许多用户登录远程桌面
- windows server 2008 设置多用户同时远程登录
- Windows Server 2008 R2多用户远程桌面连接授权