建立一个PowerShell脚本文件ManagementUser.ps1
代码:
#设置接收的参数
param([string] $what,[string] $user,[string] $pwd)
#建立一个用户
function script:AddUser_ps($user,$pwd)
{
$spwd = ConvertTo-SecureString $pwd -AsPlainText -Force
import-module activedirectory
try
{
New-ADUser -Name $user -SamAccountName "test1" -UserPrincipalName $user"@test.com.cn" -GivenName "test1" -DisplayName "测试一" -path "ou=group1,dc=test,dc=com,dc=cn" -AccountPassword $spwd -Enabled $true -CannotChangePassword $false -ChangePasswordAtLogon $false -EmailAddress "test1@test.com.cn" -PasswordNeverExpires $true
EnableMailBox $user
return "增加用户:" + $user +"成功。"
}
catch
{ $r = EnableMailBox $user
return "出现错误,错误原因:"+$error[0] + $r
}
}
#启用邮箱
function EnableMailBox($user)
{
try {
#建立远程连接
$a = 'test.com.cn/group1/'+$user
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://test.com.cn/PowerShell -Authentication Kerberos
Import-PSSession $Session
#使邮箱启用
Enable-mailbox -Identity $a -Alias $user
Remove-PSSession $Session
return "邮箱已经可用。"
}
catch
{
return $error[0]
}
}
#删除用户
function script:RemoveUser_ps($user)
{ #import-module activedirectory
try
{
Remove-ADUser $user -confirm:$false
return "删除帐号: $user ,成功。"
}
catch
{ return "出现错误,错误原因:"+$error[0] }
}
#判断执行
$script:result=""
switch($what)
{
"removeuser" { $result = RemoveUser_ps $user }
"adduser" { $result = AddUser_ps $user $pwd }
default {$result = "不识别参数。"}
}
write-host $result
打开powershell2.0控制台
建立一个test1用户,并启用邮箱
输入.\ManagementUser.ps1 -what "adduser" -user "test1" -pwd "test-1"
删除用户test1
输入.\ManagementUser.ps1 -what "removeuser" -user "test1" -pwd ""
不直接使用new-mailbox,是因为没有密码永不过期的参数,而使用AD建立用户可以设置密码永不过期:-PasswordNeverExpires $true
要点:
1、PowerShell要支持ActiveDirectory下的cmdlet,需先使用import-module activedirectory
2、如果ChangePasswordAtLogon设置为$true,则PasswordNeverExpires不能使之为$true
3、Exchange2010不支持本地命令程序,所以需先连接到Exchange2010服务器,如果是使用Exchange Management Shell,则打开控制台后就会连接到服务器上。