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

严格来说我们需要利用PS编写工具来编写整个脚本,我们没有安装其他的程序进行编写,我们就直接写PowerISE 来实现。

我们点开Powershell ISE,界面也是标准的编辑的界面:

我们直接在这个界面进行编辑,我们先弄清楚一下逻辑:

1. 将我们需要建立账户做成一个文件,并导入

2. 将新建用户变成一个过程,在这个过程中将数据做一个收集

3. 将最终的结果变成一个HTML邮件,然后嵌入邮件当中发出去。

接下去就进行编码的步骤:

$userlist=import-csv d:\just.csv;
#将用户从CSV文件中倒入我们的用户
$body="<html><head><title>这是一封用户倒入邮件</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;
#将每一行的用户状态组成一个大的用户状态
}
$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 之后,我们邮件收到就正常了:

奇怪,没有边框,我们需要为所有的新消息添加边框,就是添加一下这个参数:


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

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



我们再看看邮件:

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


Hyper-V 是微软的一款虚拟化平台,可以用于批量建立虚拟机。在 Hyper-V 中,我们可以使用 PowerShell 脚本来实现批量建立虚拟机的操作,以下是一个示例的代码: ```powershell # 定义虚拟机的基本参数 $VMNamePrefix = "MyVM" $VMCount = 5 $VMGeneration = 2 $VMSwitch = "ExtenalSwitch" # 建立虚拟机循环 for($i = 1; $i -le $VMCount; $i++) { # 使用 New-VM 命令创建虚拟机 $VMName = $VMNamePrefix + $i New-VM -Name $VMName -Generation $VMGeneration -SwitchName $VMSwitch # 配置虚拟机的内存和处理器 Set-VM -Name $VMName -MemoryStartupBytes 2GB -ProcessorCount 2 # 创建虚拟硬盘并连接到虚拟机 $VHDPath = "C:\HyperV\$VMName.vhdx" New-VHD -Path $VHDPath -Dynamic -SizeBytes 100GB Add-VMHardDiskDrive -VMName $VMName -Path $VHDPath # 设置启动顺序,使虚拟机从 VHD 启动 Set-VMFirmware -VMName $VMName -FirstBootDevice $VHDPath # 启动虚拟机 Start-VM -Name $VMName } ``` 上述代码中,我们首先定义了虚拟机的基本参数,比如虚拟机名称前缀、虚拟机数量、代际和虚拟交换机。然后使用 `New-VM` 命令循环创建虚拟机,并使用 `Set-VM` 命令配置虚拟机的内存和处理器。接着,使用 `New-VHD` 命令创建虚拟硬盘,并使用 `Add-VMHardDiskDrive` 命令将虚拟硬盘连接到虚拟机。最后,使用 `Set-VMFirmware` 命令设置虚拟机的启动顺序,使虚拟机从虚拟硬盘启动,并使用 `Start-VM` 命令启动虚拟机。 使用以上代码,我们可以轻松批量建立指定数量的 Hyper-V 虚拟机,并进行相应的配置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雾岛心情

欢迎你的打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值