国内最全IT社区平台 联系我们 | 收藏本站
华晨云阿里云优惠2
您当前位置:首页 > 服务器 > 复杂Powershell案例-获取批量建立账户的状态-PS代码的编写!

复杂Powershell案例-获取批量建立账户的状态-PS代码的编写!

来源:程序员人生   发布时间:2017-02-05 14:04:17 阅读次数:3993次

严格来讲我们需要利用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下这个参数:


我们再履行下,结果就正常了。

我们删除下建立的对象,然后再重新履行下脚本,发现所有账户建立成功,用户创建状态叶可以收到邮件了。



我们再看看邮件:

到此全部履行终了,这个课程会录制为视频分享给大家,希望大家能够有所收获,谢谢大家。


生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
程序员人生
------分隔线----------------------------
分享到:
------分隔线----------------------------
关闭
程序员人生