复杂Powershell案例-获取批量建立账户的状态-PS代码的编写!
来源:程序员人生 发布时间:2017-02-05 14:04:17 阅读次数:4040次
严格来讲我们需要利用PS编写工具来编写全部脚本,我们没有安装其他的程序进行编写,我们就直接写PowerISE 来实现。
我们点开Powershell ISE,界面也是标准的编辑的界面:
我们直接在这个界面进行编辑,我们先弄清楚1下逻辑:
1. 将我们需要建立账户做成1个文件,并导入
2. 将新建用户变成1个进程,在这个进程中将数据做1个搜集
3. 将终究的结果变成1个HTML邮件,然后嵌入邮件当中发出去。
接下去就进行编码的步骤:
$userlist=import-csv d:\just.csv;
#将用户从CSV文件中倒入我们的用户
$body="<html><head><title>这是1封用户倒入邮件</title><body><table><tr><td>用户名</td><td>创建时间</td> <td>创建状态</td></tr>";
#将我们的HTML的邮件的前脸部分
foreach($user in $userlist)
#轮询用户的list
{
$status="";
#先将用户状态重置为空;
try
{
new-aduser -Name $user.name -UserPrincipalName $user.upn -SamAccountName $user.name -DisplayName $user.displayname -AccountPassword (ConvertTo-SecureString Admin123456 -AsPlainText -Force) -ErrorAction SilentlyContinue -enabled:$true;
#新建用户,且将我们的用户属性与我们的值对应上,同时设置毛病后的处理,并且默许继续
$status="创建成功";
#将用户状态设置创建成功
}
catch
{
$status="创建失败失败缘由是:"+$_;
#记录我们创建失败的缘由
}
$userstatus="<tr><td>"+$user.name+"</td><td>"+(get-date -format "mm:ss")+"</td> <td><font color=red>"+$status+ "</font></td> </tr>";
#HTML 设置用户的状态
$body=$body+$userstatus;
#将每行的用户状态组成1个大的用户状态
}
$body=$body+"</table></body></html>"
#组成全部html页面
Send-MailMessage -SmtpServer 127.0.0.1 -From zhangsan@adn.com -To xupeng@edensoft.cn -Subject:"User create report" -Body $body -BodyAsHtml
#给用户发送邮件,创建邮件HTML格式
我们建立以下的csv文件:
然后我们履行下命令,看下邮件,发现邮件乱码:
接下来我们需要给我们的Powershelll 进行添加相应的编码规则,这里是我们的Unicode:
修改成Unicode 以后,我们邮件收到就正常了:
奇怪,没有边框,我们需要为所有的新消息添加边框,就是添加1下这个参数:
我们再履行下,结果就正常了。
我们删除下建立的对象,然后再重新履行下脚本,发现所有账户建立成功,用户创建状态叶可以收到邮件了。
我们再看看邮件:
到此全部履行终了,这个课程会录制为视频分享给大家,希望大家能够有所收获,谢谢大家。
生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠