diff --git a/Beispielprojekt/Connect-Webservice.ps1 b/Beispielprojekt/Connect-Webservice.ps1 index 1e0f89de4c29a99728977abbe399b87e80a92fb4..544e0cc3153f518c36833ade522c365e1332d90c 100644 --- a/Beispielprojekt/Connect-Webservice.ps1 +++ b/Beispielprojekt/Connect-Webservice.ps1 @@ -11,7 +11,7 @@ function Connect-WebService # Verbinden mit dem WebServices $Cred = New-Object System.Management.Automation.PSCredential -ArgumentList $Username, $PwdSecureString # Mit API verbinden - $uri = "https://ws.rc.rwth-ad.de/ex-cache-ws/APIv05_1.asmx?WSDL" + $uri = "https://ws.rc.rwth-ad.de/ex-cache-ws/APIv04.asmx?WSDL" # Hier wird eine Do-Schleife verwendet, weil das verbinden mit dem ws.rwth-ad.de manchmal nicht klappt diff --git a/PesterTests/MailAdm-Doku.Tests.ps1 b/PesterTests/MailAdm-Doku.Tests.ps1 index e8023d7b92a0be821d6fe11225c92fe4f3fc0f3c..df47a840fe2359eb7706d73f419b0671f24bd2b2 100644 --- a/PesterTests/MailAdm-Doku.Tests.ps1 +++ b/PesterTests/MailAdm-Doku.Tests.ps1 @@ -1,18 +1,18 @@ # These are the Pester Tests in order to demonstrate how the API works and -# reflects the following versions API05_1 MailADM 3.0.4 +# reflects the following versions API04 MailADM 3.0.3 # If you need further documentation please check our doku-portal [0] # or contact our IT-ServiceDesk (servicedesk@itc.rwth-aachen.de) -# [0] https://help.itc.rwth-aachen.de/service/1jefzdccuvuch/article/31c9d912142143d0a9740fa5e55f9701 +# [0] https://doc.itc.rwth-aachen.de/dosearchsite.action?queryString=MailAdm # initializing # connection settings -$user = "srv129521@rwth-ad.de" # e.g. srv123456@rwth-ad.de -$password = "NT62o96Zg33oH6GFjh" -$uri = "https://ws.rwth-ad.de/ex-cache-ws/APIv05_1.asmx?wsDL" +$user = "<Service Account>" # e.g. srv123456@rwth-ad.de +$password = "<Password>" +$uri = "https://ws.rwth-ad.de/ex-cache-ws/APIv04.asmx?wsDL" # set variables # please change the following variables -$existingUPN = "lg802991@mustereinrichtung.rwth-aachen.de" # e.g. ab123456@mustereinrichtung.rwth-aachen.de +$existingUPN = "<existing user logon name>" # e.g. ab123456@mustereinrichtung.rwth-aachen.de # these variables should work $Primarydomain = "mustereinrichtung.rwth-aachen.de" @@ -22,15 +22,15 @@ $existingfunctionalMailbox = "rudirentier@mustereinrichtung.rwth-aachen.de" $externalmailaddress = "hugo@mueller.de" $localpartpersonalmailmox = "hugodertierpfleger" $distributionlist = "zoo@mustereinrichtung.rwth-aachen.de" -$seconddistributionlist = "tiergehege@mustereinrichtung.rwth-aachen.de" $newdistributionmailaddress = "alletiere2@mustereinrichtung.rwth-aachen.de" $newmailaddress = "zebra@mustereinrichtung.rwth-aachen.de" # import functions -. "C:\temp\MailADM-API\mailadm-api\PesterTests\connect.ps1" -. "C:\temp\MailADM-API\mailadm-api\PesterTests\listquota.ps1" -. "C:\temp\MailADM-API\mailadm-api\PesterTests\mailaccounts.ps1" -. "C:\temp\MailADM-API\mailadm-api\PesterTests\distributionlist.ps1" +. .\connect.ps1 +. .\listquota.ps1 +. .\mailaccounts.ps1 +. .\distributionlist.ps1 + @@ -66,7 +66,7 @@ Describe "MailAdm-Doku" { It "Remove-Mailboxinvitation: dummy test in order to remove all invitations to get a defined infrastructure" { $result = remove-allmailboxinvitation -webserviceconnection $global:ws - # check if all invitations could be deleted + # check if alll invitations could be deleted $invitations = get-mailboxinvitations -webserviceconnection $global:ws $invitations.count | should -Be 0 } @@ -76,7 +76,6 @@ Describe "MailAdm-Doku" { $givenname = "Hugo" $primaryMailaddress = "$localpartpersonalmailmox@$Primarydomain" $MailaddressAliasList = @() - $DistributionGroupAddresses = @() $quota = 10 # Mailboxtype: # 0 : personal mailbox @@ -91,7 +90,7 @@ Describe "MailAdm-Doku" { $quotapool = get-quotapool -Domain mustereinrichtung.rwth-aachen.de -WebServiceConnection $global:ws [int32]$quotapoolid = $quotapool[0].id - $invitation = add-mailboxinvitation -webserviceconnection $global:ws -quotaPoolID $quotapoolid -primaryEMailAddress $primaryMailaddress -givenname $givenname -surname $Surname -QuotaInMB $quota -Aliasaddresses $MailaddressAliasList -DistributionGroupAddresses $DistributionGroupAddresses -Mailboxtype $Mailboxtype -DeliverToMailBoxAndforward $DeliverMailboxAndForward -ForwardingEmailaddress $ForwardingEmailaddress -Owner $Owner + $invitation = add-mailboxinvitation -webserviceconnection $global:ws -quotaPoolID $quotapoolid -primaryEMailAddress $primaryMailaddress -givenname $givenname -Surname $surname -QuotaInMB $quota -Aliasaddresses $MailaddressAliasList -Mailboxtype $Mailboxtype -DeliverToMailBoxAndforward $DeliverMailboxAndForward -ForwardingEmailaddress $ForwardingEmailaddress -Owner $Owner $invitation.returncode | should -Be 0 } @@ -100,7 +99,6 @@ Describe "MailAdm-Doku" { $givenname = "" $primaryMailaddress = "zooleitung@$Primarydomain" $MailaddressAliasList = @() - $DistributionGroupAddresses = @() $quota = 10 # Mailboxtype: # 0 : personal mailbox @@ -115,7 +113,7 @@ Describe "MailAdm-Doku" { $quotapool = get-quotapool -Domain mustereinrichtung.rwth-aachen.de -WebServiceConnection $global:ws $quotapoolid = $quotapool[0].id - $invitation = add-mailboxinvitation -webserviceconnection $global:ws -quotaPoolID $quotapoolid -primaryEMailAddress $primaryMailaddress -givenname $givenname -Surname $surname -QuotaInMB $quota -Aliasaddresses $MailaddressAliasList -DistributionGroupAddresses $DistributionGroupAddresses -Mailboxtype $Mailboxtype -DeliverToMailBoxAndforward $DeliverMailboxAndForward -ForwardingEmailaddress $ForwardingEmailaddress -Owner $Owner + $invitation = add-mailboxinvitation -webserviceconnection $global:ws -quotaPoolID $quotapoolid -primaryEMailAddress $primaryMailaddress -givenname $givenname -Surname $surname -QuotaInMB $quota -Aliasaddresses $MailaddressAliasList -Mailboxtype $Mailboxtype -DeliverToMailBoxAndforward $DeliverMailboxAndForward -ForwardingEmailaddress $ForwardingEmailaddress -Owner $Owner $invitation.returncode | should -Be 0 } @@ -124,7 +122,6 @@ Describe "MailAdm-Doku" { $givenname = "" $primaryMailaddress = "eisbaergehege@$Primarydomain" $MailaddressAliasList = @() - $DistributionGroupAddresses = @() $quota = 10 # Mailboxtype: # 0 : personal mailbox @@ -139,7 +136,7 @@ Describe "MailAdm-Doku" { $quotapool = get-quotapool -Domain mustereinrichtung.rwth-aachen.de -WebServiceConnection $global:ws $quotapoolid = $quotapool[0].id - $invitation = add-mailboxinvitation -webserviceconnection $global:ws -quotaPoolID $quotapoolid -primaryEMailAddress $primaryMailaddress -givenname $givenname -Surname $surname -QuotaInMB $quota -Aliasaddresses $MailaddressAliasList -DistributionGroupAddresses $DistributionGroupAddresses -Mailboxtype $Mailboxtype -DeliverToMailBoxAndforward $DeliverMailboxAndForward -ForwardingEmailaddress $ForwardingEmailaddress -Owner $Owner + $invitation = add-mailboxinvitation -webserviceconnection $global:ws -quotaPoolID $quotapoolid -primaryEMailAddress $primaryMailaddress -givenname $givenname -Surname $surname -QuotaInMB $quota -Aliasaddresses $MailaddressAliasList -Mailboxtype $Mailboxtype -DeliverToMailBoxAndforward $DeliverMailboxAndForward -ForwardingEmailaddress $ForwardingEmailaddress -Owner $Owner $invitation.returncode | should -Be 0 } @@ -148,7 +145,6 @@ Describe "MailAdm-Doku" { $givenname = "" $primaryMailaddress = "knutsspielzeug@$Primarydomain" $MailaddressAliasList = @() - $DistributionGroupAddresses = @() $quota = 10 # Mailboxtype: # 0 : personal mailbox @@ -163,7 +159,7 @@ Describe "MailAdm-Doku" { $quotapool = get-quotapool -Domain mustereinrichtung.rwth-aachen.de -WebServiceConnection $global:ws $quotapoolid = $quotapool[0].id - $invitation = add-mailboxinvitation -webserviceconnection $global:ws -quotaPoolID $quotapoolid -primaryEMailAddress $primaryMailaddress -givenname $givenname -Surname $surname -QuotaInMB $quota -Aliasaddresses $MailaddressAliasList -DistributionGroupAddresses $DistributionGroupAddresses -Mailboxtype $Mailboxtype -DeliverToMailBoxAndforward $DeliverMailboxAndForward -ForwardingEmailaddress $ForwardingEmailaddress -Owner $Owner + $invitation = add-mailboxinvitation -webserviceconnection $global:ws -quotaPoolID $quotapoolid -primaryEMailAddress $primaryMailaddress -givenname $givenname -Surname $surname -QuotaInMB $quota -Aliasaddresses $MailaddressAliasList -Mailboxtype $Mailboxtype -DeliverToMailBoxAndforward $DeliverMailboxAndForward -ForwardingEmailaddress $ForwardingEmailaddress -Owner $Owner $invitation.returncode | should -Be 0 } @@ -207,14 +203,10 @@ Describe "MailAdm-Doku" { } #> -<# - - # Es gibt in Version 05_1 keine Moeglichkeit mehr, Weiterleitungsadressen zu konfigurieren. It "change: forwardingaddress" { $result = change-mailboxforwardingaddress -webserviceconnection $global:ws -mailbox $existingfunctionalMailbox -newforwardingmailaddress $externalmaladdress $result | should -Be $true } -#> It "change: emailaddresses" { $result = change-emailaddresses -webserviceconnection $global:ws -mailbox $existingPersonalMailaccount -primaryEmailaddress $existingPersonalMailaccount -secondaryemailaddress $newmailaddress @@ -231,9 +223,9 @@ Describe "MailAdm-Doku" { # get mailboxinformation $mailboxes = $global:ws.getMailboxList() - $mailboxtochange = $mailboxes | Where-Object { $_.emailaddress -like $existingfunctionalMailbox } + $mailboxtochange = $mailboxes | ? { $_.emailaddress -like $existingfunctionalMailbox } $quotapoolIds = get-quotapool -Domain $Primarydomain -WebserviceConnection $global:ws - $quotapoolid = ($quotapoolIds | Where-Object { $_.id -ne $($mailboxtochange.quotapool.id) } | Select-Object -first 1).id + $quotapoolid = ($quotapoolIds | ? { $_.id -ne $($mailboxtochange.quotapool.id) } | select -first 1).id $result = change-mailboxquotapool -webserviceconnection $global:ws -mailbox $($mailboxtochange.upn) -newquotapool $quotapoolid $result | should -Be $true @@ -269,8 +261,6 @@ Describe "MailAdm-Doku" { # 1 Funktionsaccount (in Exchange: UserMailbox) # 2 RoomMailbox # 3 EquipmentMailbox - # Der Vollzugriff ist eine notwendige Voraussetzung für das Wandeln in eine Ressourcen-Mailbox - change-addfullaccesspermission -webserviceconnection $global:ws -mailbox $existingfunctionalMailbox -user $existingPersonalMailaccount $upn = "fkt_$existingfunctionalmailbox" $result = change-mailboxtype -webserviceConnection $global:ws -upn $upn -newmailboxtype 2 $result | should -Be $true @@ -305,21 +295,13 @@ Describe "MailAdm-Doku" { # 3 EquipmentMailbox $upn = "fkt_$existingfunctionalmailbox" $result = change-mailboxtype -webserviceConnection $global:ws -upn $upn -newmailboxtype 0 - # Der Vollzugriff wird für den nächsten Skriptdurchlauf entfernt - change-removefullaccesspermission -webserviceconnection $global:ws -mailbox $existingfunctionalMailbox -user $existingPersonalMailaccount $result | should -Be $false } It "create: distribution list" { $displayname = "Zoo" - $dl = create-distributionlist -WebserviceConnection $global:ws -displayname $displayname -mailaddress $distributionlist - $dl | should -Be 0 - } - - It "create: second distribution list" { - $secondlistdisplayname = "Tiergehege" - $dl = create-distributionlist -WebserviceConnection $global:ws -displayname $secondlistdisplayname -mailaddress $seconddistributionlist - $dl | should -Be 0 + $distributionlist = create-distributionlist -WebserviceConnection $global:ws -displayname $displayname -mailaddress $distributionlist + $distributionlist | should -Be 0 } It "Get distribution list" { @@ -343,38 +325,23 @@ Describe "MailAdm-Doku" { $result | should -Be $true } - It "change: Distributionlist Mailaddress" { + It "cahnge: Distributionlist Mailaddress" { $result = change-distributionlistemailaddresses -WebserviceConnection $global:ws -mailaddress $distributionlist -newmailaddress $newdistributionmailaddress $($result.Returncode) | should -Be 0 } - It "add member mailbox to distributionlist" { - $result = add-distributiongroupmember -WebserviceConnection $global:ws -maillistEMail $distributionlist -newmember $existingfunctionalMailbox - $result.Returncode | Should -Be 0 - } - - It "add member maillist to distributionlist" { - $result = add-distributiongroupmember -WebserviceConnection $global:ws -maillistEMail $distributionlist -newmember $seconddistributionlist + It "add member to distributionlist" { + $result = add-distributiongroupmember -WebserviceConnection $global:ws -distributionlist $distributionlist -newmember $existingfunctionalMailbox $result.Returncode | Should -Be 0 } - It "remove member mailbox from distributionlist" { - $result = remove-distributiongroupmember -WebserviceConnection $global:ws -maillistEMail $distributionlist -member $existingfunctionalMailbox - $result.ReturnCode | Should -Be 0 - } - - It "remove member maillist from distributionlist" { - $result = remove-distributiongroupmember -WebserviceConnection $global:ws -maillistEMail $distributionlist -member $seconddistributionlist + It "remove member from distributionlist" { + $result = remove-distributiongroupmember -WebserviceConnection $global:ws -distributionlist $distributionlist -member $existingfunctionalMailbox $result.ReturnCode | Should -Be 0 } - It "delete first distribution list" { + It "delete distribution list" { $result = remove-distributionlist -WebserviceConnection $global:ws -mailaddress $distributionlist $result | Should -Be $true } - - It "delete second distribution list" { - $result = remove-distributionlist -WebserviceConnection $global:ws -mailaddress $seconddistributionlist - $result | Should -Be $true - } } \ No newline at end of file diff --git a/PesterTests/distributionlist.ps1 b/PesterTests/distributionlist.ps1 index 51fc0afa0cdfbb4f014e5ff7f952dd726631e103..12991cdf22ca3167ecd7fa5d308031f426006ced 100644 --- a/PesterTests/distributionlist.ps1 +++ b/PesterTests/distributionlist.ps1 @@ -13,7 +13,7 @@ function get-distributionlist { param ($WebserviceConnection, $mailaddress) $distributionlists = $WebserviceConnection.getMailLists() - $distributionlist = $distributionlists | Where-Object { $_.emailaddress -match $mailaddress } + $distributionlist = $distributionlists | ? { $_.emailaddress -match $mailaddress } $distributionlist } @@ -23,9 +23,9 @@ function remove-distributionlist { param ($WebserviceConnection, $mailaddress) $distributionlists = $WebserviceConnection.getMailLists() - $groupSamAccountName = $distributionlists | Where-Object { $_.emailaddress -match $mailaddress } + $distributionlist = $distributionlists | ? { $_.emailaddress -match "Zoo@mustereinrichtung.rwth-aachen.de" } - $result = $WebserviceConnection.RemoveMailList($groupSamAccountName.SamAccountName) + $result = $WebserviceConnection.RemoveMailList($distributionlist.SamAccountName) $result } @@ -73,30 +73,22 @@ function change-distributionlistdisplayname { function add-distributiongroupmember { [CmdletBinding()] - param ($WebserviceConnection, $maillistEMail, $newmember) + param ($WebserviceConnection, $distributionlist, $newmember) - $global:mailboxes = $webserviceconnection.getMailboxList() - $global:SamAccountName = $mailboxes | Where-Object {$_.emailaddress -like $newmember} | Select-Object -Property SamAccountName - if (!($mailboxes | Where-Object {$_.emailaddress -like $newmember})){ - $global:maillists = $WebserviceConnection.getMailLists() - $global:SamAccountName = $maillists | Where-Object {$_.emailaddress -like $newmember} | Select-Object -Property SamAccountName - } + $mailboxes = $webserviceconnection.getMailboxList() + $mailbox = $mailboxes | ? { $_.emailaddress -like $newmember } - $result = $WebserviceConnection.addMemberToMaillist($maillistEMail, $SamAccountName.SamAccountName) + $result = $WebserviceConnection.addMailboxToMaillist($distributionlist, $mailbox.upn) $result } function remove-distributiongroupmember { [CmdletBinding()] - param ($WebserviceConnection, $maillistEMail, $member) + param ($WebserviceConnection, $distributionlist, $member) - $global:mailboxes = $webserviceconnection.getMailboxList() - $global:SamAccountName = $mailboxes | Where-Object {$_.emailaddress -like $member} | Select-Object -Property SamAccountName - if (!($mailboxes | Where-Object {$_.emailaddress -like $member})){ - $global:maillists = $WebserviceConnection.getMailLists() - $global:SamAccountName = $maillists | Where-Object {$_.emailaddress -like $member} | Select-Object -Property SamAccountName - } + $mailboxes = $webserviceconnection.getMailboxList() + $mailbox = $mailboxes | ? { $_.emailaddress -like $member } - $result = $WebserviceConnection.RemoveMemberFromMaillist($maillistEMail, $SamAccountName.SamAccountName) + $result = $WebserviceConnection.RemoveMailboxFromMaillist($distributionlist, $mailbox.upn) $result } \ No newline at end of file diff --git a/PesterTests/mailaccounts.ps1 b/PesterTests/mailaccounts.ps1 index 519f469c5bff9f6477db2d7d72e51edf16ef1ea0..530ef7e89c99a69dbb80049ee978dc61ed038b2b 100644 --- a/PesterTests/mailaccounts.ps1 +++ b/PesterTests/mailaccounts.ps1 @@ -18,9 +18,9 @@ function get-mailbox { function add-mailboxinvitation { [CmdletBinding()] - param ($webserviceconnection, $quotaPoolID, $primaryEMailAddress, $givenname, $Surname, $QuotaInMB, $Aliasaddresses, $DistributionGroupAddresses, $Mailboxtype, $DeliverToMailBoxAndforward, $ForwardingEmailaddress, $Owner) + param ($webserviceconnection, $quotaPoolID, $primaryEMailAddress, $givenname, $Surname, $QuotaInMB, $Aliasaddresses, $Mailboxtype, $DeliverToMailBoxAndforward, $ForwardingEmailaddress, $Owner) - $invitation = $webserviceconnection.CreateMailaccountInvitation($quotaPoolID, $primaryEMailAddress, $givenname, $Surname, $QuotaInMB, $Aliasaddresses, $DistributionGroupAddresses, $Mailboxtype, $DeliverToMailBoxAndforward, $ForwardingEmailaddress, $Owner) + $invitation = $webserviceconnection.CreateMailaccountInvitation($quotaPoolID, $primaryEMailAddress, $givenname, $Surname, $QuotaInMB, $Aliasaddresses, $Mailboxtype, $DeliverToMailBoxAndforward, $ForwardingEmailaddress, $Owner) $invitation } @@ -65,8 +65,6 @@ function reconnect-mailbox { $result } -<# -# Es gibt in Version 05_1 keine Moeglichkeit mehr, Weiterleitungsadressen zu konfigurieren. function change-mailboxforwardingaddress { [cmdletbinding()] param($webserviceconnection, $mailbox, $newforwardingmailaddress) @@ -75,7 +73,6 @@ function change-mailboxforwardingaddress { $result = $webserviceconnection.setMailForwarding($mailboxtochange.upn, $true, $newforwardingmailaddress) $result } -#> function change-mailboxquota { @@ -124,7 +121,7 @@ function change-mailboxdisplayname { $mailboxes = $webserviceconnection.getMailboxList() $mailboxtochange = $mailboxes | ? { $_.emailaddress -like $mailbox } - $result = $webserviceconnection.SetMailboxDisplayName($mailboxtochange.upn, $newdisplayname) + $result = $webserviceconnection.SetRessourceMailboxDisplayName($mailboxtochange.upn, $newdisplayname) $result }