In order for this code to work properly, besides editing the file to address your domain, server names, and Exchange 2007 database names, you will need to have a folder called FSO on your c: drive.
Note: Blogger has some limitations on how long the lines can be on the page and therefore uses word wrap. This means that you will have to remove those carriage returns from the code where necessary. It shouldn't be too difficult to see where two lines should have been one. Sorry if there's much confusion.
Another note: The user of this application still needs to be an exchange account administrator.
<HTML>
<Head>
<title>Mailbox Creation Utility</title>
<HTA:APPLICATION
ID="Mailbox Creation Utility"
APPLICATIONNAME="Mailbox Creation Utility"
SCROLL="No"
SINGLEINSTANCE="yes"
ICON="c:/FSO/mailbox.ico"
>
</Head>
<script language="vbscript">
Sub Window_OnLoad
self.ResizeTo 315,575
End Sub
Sub ReloadBtn_OnClick
Location.Reload(True)
End Sub
Sub btnok_onClick
FName = txtFName.value
LName = txtLName.value
Alias = txtAlias.value
strDatabase = ""
Title = txtTitle.value
If DeleteCheckbox.Checked Then
Delete
Else
If HideCheckbox.Checked Then
Hide
Else
If UnhideCheckbox.Checked Then
Unhide
Else
If Alias = "" Then
Alias = Left(FName, 1) + LName
End If
If UserOption(0).Checked Then
strDatabase = "mailserver\PrimaryA Mailbox Database"
End If
If UserOption(1).Checked Then
strDatabase = "mailserver\PrimaryB Mailbox Database"
End If
If strDatabase = "" Then
Msgbox "Please select the appropriate database."
Else If strDatabase <> "" Then
Set filesys = CreateObject("Scripting.FileSystemObject")
Set filetxt = filesys.CreateTextFile("c:\FSO\mailbox.ps1", True)
path = filesys.GetAbsolutePathName("c:\FSO\Mailbox.ps1")
getname = filesys.GetFileName(path)
intAlias = Len(Alias)
AliasFLetter = UCase(Left(Alias, 2))
AliasRestLetters = LCase(Right(Alias, intAlias -2))
Alias = AliasFLetter & AliasRestLetters
filetxt.WriteLine("Add-PSSnapin Microsoft.Exchange.Management.PowerShell.Admin")
filetxt.WriteLine("$usertest = get-user -Identity " & chr(34) & LName & ", " & FName & chr(34) & " |select RecipientType")
filetxt.WriteLine("if " & chr(40) & "$usertest.RecipientType -eq " & chr(34) & "userMailbox" & chr(34) & chr(41))
filetxt.WriteLine("{Write-Host " & chr(34) & "The mailbox already exists." & chr(34) & " -foregroundcolor red}")
filetxt.WriteLine("Else {")
filetxt.WriteLine("enable-mailbox " & chr(34) & LName & ", " & FName & chr(34) & " -Database " & chr(34) & strDatabase & chr(34))
filetxt.WriteLine("Start-Sleep -s 15")
filetxt.WriteLine("set-user " & chr(34) & LName & ", " & FName & chr(34) & " -title " & chr(34) & Title & chr(34) & " -Company " &
chr(34) & "Some Sales Office" & chr(34))
filetxt.WriteLine("get-mailbox " & chr(34) & LName & ", " & FName & chr(34) & " | set-mailbox -Alias " & Alias & " -MaxSendSize 5mb
-MaxReceiveSize 5mb | add-distributiongroupmember -Id " & chr(34) & "DACRIM E-Mail - All" & chr(34))
filetxt.WriteLine("set-CASMailbox " & chr(34) & LName & ", " & FName & chr(34) & " -ActiveSyncEnabled:$False")
filetxt.WriteLine("get-mailbox " & chr(34) & LName & ", " & FName & chr(34) & " | Add-mailboxpermission -accessrights fullaccess
-user domain\administrator")
filetxt.WriteLine("get-mailbox " & chr(34) & LName & ", " & FName & chr(34) & " | Add-mailboxpermission -accessrights fullaccess
-user domain\BESAdmin")
if CreateHiddenCheckbox.checked Then
filetxt.WriteLine("Set-Mailbox -identity " & chr(34) & LName & ", " & FName & chr(34) & "
-HiddenFromAddressListsEnabled $true")
End If
filetxt.WriteLine("}")
filetxt.Close
Set objShell = CreateObject("Wscript.Shell")
objShell.Run("powershell.exe -noexit c:\FSO\mailbox.ps1")
Location.Reload(True)
End If
End If
End If
End If
End If
End Sub
Sub Delete
FName = txtFName.value
LName = txtLName.value
Set filesys = CreateObject("Scripting.FileSystemObject")
Set filetxt = filesys.CreateTextFile("c:\FSO\mailbox.ps1", True)
path = filesys.GetAbsolutePathName("c:\FSO\Mailbox.ps1")
getname = filesys.GetFileName(path)
filetxt.WriteLine("Add-PSSnapin Microsoft.Exchange.Management.PowerShell.Admin")
filetxt.WriteLine("disable-mailbox -identity " & chr(34) & LName & ", " & FName & chr(34) & " -confirm:$false")
filetxt.Close
Set objShell = CreateObject("Wscript.Shell")
objShell.Run("powershell.exe -noexit c:\FSO\mailbox.ps1")
Location.Reload(True)
End Sub
Sub Hide
FName = txtFName.value
LName = txtLName.value
Set filesys = CreateObject("Scripting.FileSystemObject")
Set filetxt = filesys.CreateTextFile("c:\FSO\mailbox.ps1", True)
path = filesys.GetAbsolutePathName("c:\FSO\Mailbox.ps1")
getname = filesys.GetFileName(path)
filetxt.WriteLine("Add-PSSnapin Microsoft.Exchange.Management.PowerShell.Admin")
filetxt.WriteLine("Set-Mailbox -identity " & chr(34) & LName & ", " & FName & chr(34) & " -HiddenFromAddressListsEnabled $true")
filetxt.Close
Set objShell = CreateObject("Wscript.Shell")
objShell.Run("powershell.exe -noexit c:\FSO\mailbox.ps1")
Location.Reload(True)
End Sub
Sub Unhide
FName = txtFName.value
LName = txtLName.value
Set filesys = CreateObject("Scripting.FileSystemObject")
Set filetxt = filesys.CreateTextFile("c:\FSO\mailbox.ps1", True)
path = filesys.GetAbsolutePathName("c:\FSO\Mailbox.ps1")
getname = filesys.GetFileName(path)
filetxt.WriteLine("Add-PSSnapin Microsoft.Exchange.Management.PowerShell.Admin")
filetxt.WriteLine("Set-Mailbox -identity " & chr(34) & LName & ", " & FName & chr(34) & " -HiddenFromAddressListsEnabled $false")
filetxt.Close
Set objShell = CreateObject("Wscript.Shell")
objShell.Run("powershell.exe -noexit c:\FSO\mailbox.ps1")
Location.Reload(True)
End Sub
</script>
<body BGCOLOR=DFDFDF background="c:\fso\mailbox1.jpg" STYLE="background-repeat: no-repeat;=background-position: center;" >
<center><b><font size=5>Mailbox Creation Utility</font></center>
<HR>
<br><input type="checkbox"name="CreateHiddenCheckbox"value="1"> Create Hidden
<br><input type="checkbox"name="HideCheckbox"value="2"> Hide Existing Mailbox
<br><input type="checkbox"name="UnhideCheckbox"value="3"> Unhide Mailbox
<br><input type="checkbox"name="DeleteCheckbox"value="4"> Delete Mailbox
<p> First Name: <input id="txtFName" type="text" name="txtFName" size="20">
<p> Last Name: <input id="txtLName" type="text" name="txtLName" size="20">
<p>Alias: <input id="txtAlias" type="text" name="txtAlias" size="8">
<p> Title: <input id="txtTitle" type="text" name="txtTitle" size="27">
<p>Group Membership:
<br><input type="radio" name="UserOption" value="1"> Administration
<br><input type="radio" name="UserOption" value="2"> Sales
<p><center><input id="btnOK" type="button" value="Create\Update" name="btnOK"></center>
<br><center><input id="reloadBtn" type="button" value="Reload" name="reloadBtn"></Center>
</b>
<table>
<tr align="right"><td width="20%">Version .03</td></tr>
</table>
</body>
</HTML>
After creating the FSO folder on your c: drive, copy the above code into notepad, edit the necessary changes to address your environment (domain, Exchange server name, and database names) and save it with a .HTA extension.
This should get you off to a good start in making your own application to address your office's needs.
No comments:
Post a Comment