CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛
CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛
CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛

代码零基础入门(速看)零基础学代码编程,0基础上手python编程,实践windows域用户过期邮件通知,

1.零基础如何写代码python

作者:王忘杰全民制作人大家好,我是学习python两天半的练习生王忘杰,喜欢路由交换、linux、网络安全,开整!在此之前我并没有编程经验,对于python我花了半天时间看了www.runoob.com/python3的教程,看完第五节基本语法,发现python与bash脚本基本相同,因此安装完PyCharm后直接开始了代码编写。

2.python初学代码

本文目标,0基础使用python语言完成对windows域用户超过60天未修改密码的进行邮件通知一、代码思路1、获取windows域用户名、上次修改密码时间、邮箱2、使用python计算修改密码时间是否超过60天。

3.Python新手代码

3、超过60天发送邮件通知4、使用异常处理语句,防止程序崩溃5、完整编译、定期执行、定期检查二、获取windows域用户信息百度查询,获得powershell命令Get-ADUser -Filter Name -like “*” -Properties *

4.python编程语言零基础入门

Get-ADUser是powershell域管理的用户管理命令,此条命令可以列出全部域用户信息因为我们只需要用户名、上次修改密码时间和邮箱,因此使用powershell管道符加Select-Object筛选出name,passwordlastset,SamAccountName即可

5.零基础写代码教程

Get-ADUser -Filter Name -like “*” -Properties * | Select-Object name,passwordlastset,SamAccountName此时的结果为这种格式

6.如何零基础学代码

1 11admin         2021/11/30 22:15:20 admintest         2022/4/20 11:00:23  test    通过重定向将结果导出到本地,使用python进行后续工作,也可以直接用python执行powershell,看完本文你就懂了。

7.python简单入门代码

Get-ADUser -Filter Name -like “*” -Properties * | Select-Object name,passwordlastset,SamAccountName > 1.txt

8.python初级代码

三、开始计算1、读取本地1.txt有困难,先百度,文章里所有代码都是按想法去百度的,使用open()函数打开本地文件f = open(“C:UsersadminDesktop/1.txt”, “r”, encoding=utf-16)

9.零基础怎么学代码

因为文本有很多行,所以需要使用readlines()函数来按行存储,此函数会以每一行为单位构建一个列表lines = f.readlines()print(lines)此时输出结果为[1n, n, admin         2021/11/30 22:15:20 adminn, test         2022/4/20 11:00:23  test     n]

10.零基础代码教程

我们构建for循环来输出每一行的内容for line in lines:    print(line)输出结果就变成了admin         2021/11/30 22:15:20 admintest         2022/4/20 11:00:23  test    

2、分割字符,计算时间我们使用strptime()函数来进行时间差计算,为此我们需要把每一行进行字符分割,提取有用的信息,而strptime()函数的日期格式是2021-11-30,与AD默认导出的2021/11/30不同,所以需要进行字符替换。

此时我们for循环变成了for line in lines:    x = line.replace(“/”, “-“)    y = x.split()    time_1 = y[1]    print(time)

注意,因为文本里有空格,运行会报错,所以我们要做的是进行异常处理   time_1 = y[1]IndexError: list index out of range使用try进行异常处理,修改for代码为。

for line in lines:    try:        x = line.replace(“/”, “-“)        y = x.split()        time_1 = y[1]

       print(time_1)    except:        print(“错误行”)运行结果错误行错误行2021-11-302022-4-20for代码解释for line in lines: #每次for循环将lines中的一行赋予line

   try: #异常处理,正常的执行,错误的跳转except        x = line.replace(“/”, “-“) #使用replace()函数将line中的/替换为-,将结果赋予x,从[admin         2021/11/30 22:15:20 admin]替换为[admin         2021-11-30 22:15:20 admin]

       y = x.split() #使用split()将x使用空格分割,从[admin         2021-11-30 22:15:20 admin]分割为[admin][2021-11-30][22:15:20][admin]

       time_1 = y[1] #提取第二个字符,注意是0、1、2,所以1就是第二个字符        print(time_1) #打印2021-11-30,打印仅仅是为了从终端观察运行结果

   except:        print(“错误行”) #打印仅仅是为了从终端观察运行结果获取当前日期,使用time()函数,使用strftime()函数格式化为 年-月-日格式方便计算,此函数import time引用

print(time.strftime(“%Y-%m-%d”, time.localtime()))3、计算时间差使用datetime计算时间差,from datetime import datetime引用,只有datetime格式化后的日期才能减出时间差

for line in lines:    try:        x = line.replace(“/”, “-“)        y = x.split()        time_1 = y[1]

       time_2 = time.strftime(“%Y-%m-%d”, time.localtime())        time_1 = datetime.strptime(time_1, “%Y-%m-%d”)

       time_2 = datetime.strptime(time_2, “%Y-%m-%d”)        day = (time_2 – time_1).days #提取日期        print(day) #打印日期

   except:        print(“错误行”)运行结果2731324、判断是否大于60天很简单了,一个if搞定print(day)        if day > 60: #大于60天            day = str(day) #上面获取的day是int类型,必须转换成文本,否则无法运行,编辑器会提示错误

           print(密码+ day +天未修改) #打印内容        else:            print(未过期)运行结果密码273天未修改密码132天未修改5、丰满内容,拼接出我们真正要的信息

姓名、过期时间、邮箱,从y的第一位取出用户名,最后一位取出邮箱拼接起来       if day > 60:            day = str(day)            username = y[0]

           usermail = (y[3] + @90apt.com) #拼接邮箱            print(用户 +username+ 密码+ day +天未修改 邮箱为+usermail)

       else:            print(未过期)运行结果用户 admin 密码273天未修改 邮箱为admin@90apt.com用户 test 密码132天未修改 邮箱为test@90apt.com

四、发送邮件百度一下,直接加进去,发送邮件所需要的东西我们都有了用户名就是username,天数day,邮箱我们通过拼接usermail形成完整邮箱了使用SMTP单独发件测试,其实不需要知道内容,拿来用就行了

from email.header import Headerfrom email.mime.text import MIMETextmail_host = “smtp.mxhichina.com”  # 设置服务器

mail_user = “admin@90apt.com”  # 用户名mail_pass = “passwd”  # 口令sender = admin@90apt.comreceivers = (usermail)  # 接收邮件,可设置为你的QQ邮箱或者其他邮箱

message = MIMEText(亲爱的 + username + 域用户 :n您的计算机域账户已经超过 + day + 天没有修改密码了, plain, utf-8)  message[From] = Header(“域用户密码超期安全提醒”, utf-8)

 message[To] = Header(username, utf-8)  subject = 域用户密码超期安全提醒  message[Subject] = Header(subject, utf-8)

 try:    smtpObj = smtplib.SMTP()    smtpObj.connect(mail_host, 25)  # 25 为 SMTP 端口号    smtpObj.login(mail_user, mail_pass)

   smtpObj.sendmail(sender, receivers, message.as_string())    print(username + “邮件发送成功”)  except smtplib.SMTPException:

   print(“Error: 无法发送邮件”)运行后列表里的人会收到邮件五、小优化邮件别发的太快,容易被封号,在for循环里加个time.sleep(3),运行一次等待3秒六、完整代码、编译、定时任务

就算了,大家看完上面肯定就会了,随便写写就比我写更规范。编译,那不是百度一下就行,定时任务就更简单了,这里就不说了。七、最后不会写代码的网工不是好系统运维

© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏 分享
相关推荐
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容