PowerShell API-Wrapper Tutorial
API Wrapper Funktionen mit Parametern aufrufen
Viele MailStore Server Administration API Befehle erfordern die Angabe von Parametern. Selbstverständlich ist der MailStore PowerShell API Wrapper in der Lage, diese mittels Invoke-MSSApiCall zu übermitteln. Zur Erläuterung soll das folgende Beispielskript dienen, das im Beispielskriptpaket als Example2.ps1 enthalten ist.
Import-Module 'C:\MailStore Scripting Tutorial\PowerShell\API-Wrapper\MSS.PS.Lib.psd1' $mssapiclient = New-MSSApiClient -Username admin -Password admin -MailStoreServer localhost -Port 8463 -Code JSON -IgnoreInvalidSSLCerts $users = (Invoke-MSSApiCall $mssapiclient "GetUserList").Data foreach ($user in $users) {(Invoke-MSSApiCall $mssapiclient "GetUserInfo" @{userName = $user.userName}).Data|fl}
Zunächst wird die Liste der MailStore Server Benutzer mittels des API Befehls GetUserList abgerufen. Dieser liefert ein Array mit Einträgen folgenden Aufbaus zurück:
userName : abby.hernandez fullName : Abby Hernandez distinguishedName : CN=Abby Hernandez,OU=tutorial,DC=example,DC=com
Über diese Einträge wird nun iteriert und dabei die userName Eigenschaft jedes Eintrags als Parameter des API Befehls GetUserInfo verwendet. Das Ergebnis für den o.g. Eintrag könnte wie folgt aussehen:
userName : abby.hernandez fullName : Abby Hernandez distinguishedName : CN=Abby Hernandez,OU=tutorial,DC=example,DC=com authentication : directoryServices emailAddresses : {[email protected]} pop3UserNames : {} privileges : {login} privilegesOnFolders : {@{folder=abby.hernandez; privileges=System.Object[]}}