diff --git a/src/ResourceManager/Resources/Commands.Resources.Test/Commands.Resources.Test.csproj b/src/ResourceManager/Resources/Commands.Resources.Test/Commands.Resources.Test.csproj
index 975cf29e00b3..03d69ac81284 100644
--- a/src/ResourceManager/Resources/Commands.Resources.Test/Commands.Resources.Test.csproj
+++ b/src/ResourceManager/Resources/Commands.Resources.Test/Commands.Resources.Test.csproj
@@ -246,6 +246,9 @@
PreserveNewest
+
+ PreserveNewest
+
PreserveNewest
diff --git a/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ActiveDirectoryTests.cs b/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ActiveDirectoryTests.cs
index a0fb4863640c..a338336cb3ec 100644
--- a/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ActiveDirectoryTests.cs
+++ b/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ActiveDirectoryTests.cs
@@ -424,6 +424,32 @@ public void TestGetADUserWithObjectId()
TestUtilities.GetCurrentMethodName());
}
+ [Fact]
+ [Trait(Category.AcceptanceType, Category.CheckIn)]
+ public void TestGetADUserWithMail()
+ {
+ const string scriptMethod = "Test-GetADUserWithMail '{0}'";
+ User newUser = null;
+ var controllerAdmin = ResourcesController.NewInstance;
+
+ controllerAdmin.RunPsTestWorkflow(
+ // scriptBuilder
+ () =>
+ {
+ newUser = CreateNewAdUser(controllerAdmin);
+ return new[] { string.Format(scriptMethod, newUser.UserPrincipalName) };
+ },
+ // initialize
+ null,
+ // cleanup
+ () =>
+ {
+ DeleteAdUser(controllerAdmin, newUser);
+ },
+ TestUtilities.GetCallingClass(),
+ TestUtilities.GetCurrentMethodName());
+ }
+
[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestGetADUserWithBadObjectId()
diff --git a/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ActiveDirectoryTests.ps1 b/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ActiveDirectoryTests.ps1
index a9050daad84d..31264e97f1ae 100644
--- a/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ActiveDirectoryTests.ps1
+++ b/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ActiveDirectoryTests.ps1
@@ -306,6 +306,25 @@ function Test-GetADUserWithObjectId
Assert-NotNull($users[0].UserPrincipalName)
}
+
+<#
+.SYNOPSIS
+Tests getting Active Directory users by mail.
+#>
+function Test-GetADUserWithMail
+{
+ param([string]$mail)
+
+ # Test
+ $users = Get-AzureADUser -Mail $mail
+
+ # Assert
+ Assert-AreEqual $users.Count 1
+ Assert-AreEqual $users[0].Mail $mail
+ Assert-NotNull($users[0].DisplayName)
+ Assert-NotNull($users[0].UserPrincipalName)
+}
+
<#
.SYNOPSIS
Tests getting Active Directory users.
diff --git a/src/ResourceManager/Resources/Commands.Resources.Test/SessionRecords/Microsoft.Azure.Commands.Resources.Test.ScenarioTests.ActiveDirectoryTests/TestGetADUserWithMail.json b/src/ResourceManager/Resources/Commands.Resources.Test/SessionRecords/Microsoft.Azure.Commands.Resources.Test.ScenarioTests.ActiveDirectoryTests/TestGetADUserWithMail.json
new file mode 100644
index 000000000000..7a364fe4da80
--- /dev/null
+++ b/src/ResourceManager/Resources/Commands.Resources.Test/SessionRecords/Microsoft.Azure.Commands.Resources.Test.ScenarioTests.ActiveDirectoryTests/TestGetADUserWithMail.json
@@ -0,0 +1,228 @@
+{
+ "Entries": [
+ {
+ "RequestUri": "/1449d5b7-8a83-47db-ae4c-9b03e888bad0/users?api-version=1.42-previewInternal",
+ "EncodedRequestUri": "LzE0NDlkNWI3LThhODMtNDdkYi1hZTRjLTliMDNlODg4YmFkMC91c2Vycz9hcGktdmVyc2lvbj0xLjQyLXByZXZpZXdJbnRlcm5hbA==",
+ "RequestMethod": "POST",
+ "RequestBody": "{\r\n \"userPrincipalName\": \"aduser6859@rbactest.onmicrosoft.com\",\r\n \"accountEnabled\": true,\r\n \"displayName\": \"aduser6859\",\r\n \"mailNickname\": \"aduser6859test\",\r\n \"passwordProfile\": {\r\n \"password\": \"adpass39990#$\",\r\n \"forceChangePasswordNextLogin\": false\r\n }\r\n}",
+ "RequestHeaders": {
+ "Content-Type": [
+ "application/json; charset=utf-8"
+ ],
+ "Content-Length": [
+ "269"
+ ],
+ "User-Agent": [
+ "Microsoft.Azure.Graph.RBAC.GraphRbacManagementClient/1.0.0.0"
+ ]
+ },
+ "ResponseBody": "{\r\n \"odata.metadata\": \"https://graph.windows.net/1449d5b7-8a83-47db-ae4c-9b03e888bad0/$metadata#directoryObjects/Microsoft.WindowsAzure.ActiveDirectory.User/@Element\",\r\n \"odata.type\": \"Microsoft.WindowsAzure.ActiveDirectory.User\",\r\n \"objectType\": \"User\",\r\n \"objectId\": \"624fb7e1-f0e9-4bd0-94e4-6be174330d7a\",\r\n \"softDeletionTimestamp\": null,\r\n \"acceptedAs\": null,\r\n \"acceptedOn\": null,\r\n \"accountEnabled\": true,\r\n \"alternativeSecurityIds\": [],\r\n \"appMetadata\": null,\r\n \"assignedLicenses\": [],\r\n \"assignedPlans\": [],\r\n \"city\": null,\r\n \"country\": null,\r\n \"creationType\": null,\r\n \"department\": null,\r\n \"dirSyncEnabled\": null,\r\n \"displayName\": \"aduser6859\",\r\n \"extensionAttribute1\": null,\r\n \"extensionAttribute2\": null,\r\n \"extensionAttribute3\": null,\r\n \"extensionAttribute4\": null,\r\n \"extensionAttribute5\": null,\r\n \"extensionAttribute6\": null,\r\n \"extensionAttribute7\": null,\r\n \"extensionAttribute8\": null,\r\n \"extensionAttribute9\": null,\r\n \"extensionAttribute10\": null,\r\n \"extensionAttribute11\": null,\r\n \"extensionAttribute12\": null,\r\n \"extensionAttribute13\": null,\r\n \"extensionAttribute14\": null,\r\n \"extensionAttribute15\": null,\r\n \"facsimileTelephoneNumber\": null,\r\n \"givenName\": null,\r\n \"immutableId\": null,\r\n \"invitedOn\": null,\r\n \"inviteReplyUrl\": [],\r\n \"inviteResources\": [],\r\n \"inviteTicket\": [],\r\n \"isCompromised\": null,\r\n \"jobTitle\": null,\r\n \"jrnlAddress\": null,\r\n \"lastDirSyncTime\": null,\r\n \"logonIdentifiers\": [],\r\n \"mail\": null,\r\n \"mailNickname\": \"aduser6859test\",\r\n \"mobile\": null,\r\n \"netId\": \"1003BFFD8CE8F616\",\r\n \"onPremiseSecurityIdentifier\": null,\r\n \"otherMails\": [],\r\n \"passwordPolicies\": null,\r\n \"passwordProfile\": null,\r\n \"physicalDeliveryOfficeName\": null,\r\n \"postalCode\": null,\r\n \"preferredLanguage\": null,\r\n \"primarySMTPAddress\": null,\r\n \"provisionedPlans\": [],\r\n \"provisioningErrors\": [],\r\n \"proxyAddresses\": [],\r\n \"searchableDeviceKey\": [],\r\n \"selfServePasswordResetData\": null,\r\n \"signInName\": \"aduser6859@rbactest.onmicrosoft.com\",\r\n \"sipProxyAddress\": null,\r\n \"smtpAddresses\": [],\r\n \"state\": null,\r\n \"streetAddress\": null,\r\n \"surname\": null,\r\n \"telephoneNumber\": null,\r\n \"usageLocation\": null,\r\n \"userPrincipalName\": \"aduser6859@rbactest.onmicrosoft.com\",\r\n \"userState\": null,\r\n \"userStateChangedOn\": null,\r\n \"userType\": \"Member\"\r\n}",
+ "ResponseHeaders": {
+ "Content-Length": [
+ "1955"
+ ],
+ "Content-Type": [
+ "application/json; odata=minimalmetadata; streaming=true; charset=utf-8"
+ ],
+ "Expires": [
+ "-1"
+ ],
+ "Pragma": [
+ "no-cache"
+ ],
+ "ocp-aad-diagnostics-server-name": [
+ "VbwAPpHBrDNXWFpR18OzHh/NfNdUKGwRD1NUkhGV+bc="
+ ],
+ "request-id": [
+ "515f205d-bfa4-43d9-8e8c-0efcc12628e5"
+ ],
+ "client-request-id": [
+ "ee413c51-7f45-4f90-9ea2-9fe81a052b35"
+ ],
+ "x-ms-gateway-rewrite": [
+ "false"
+ ],
+ "x-ms-dirapi-data-contract-version": [
+ "1.42-previewInternal"
+ ],
+ "ocp-aad-session-key": [
+ "7pQeXZlxkCDyFVMe9qlvVNcY1zjLI89KWuj5wy4_7s_J8zs7sTod6U8rZqUcKE7Vckag9APQpW7mjnS3_SlRN4cMrAQtIMeVsdhGmcREH3BF5GF7ITYtkVDqOMw56FczqCcGeLyKhHEcK_k_5n_NmA.hMGeoesuXuqu5sM0QGtrgvAc2dPtLGyJ8bDadv01RoM"
+ ],
+ "X-Content-Type-Options": [
+ "nosniff"
+ ],
+ "DataServiceVersion": [
+ "3.0;"
+ ],
+ "Strict-Transport-Security": [
+ "max-age=15724800; includeSubDomains"
+ ],
+ "Cache-Control": [
+ "no-cache"
+ ],
+ "Location": [
+ "https://graph.windows.net/1449d5b7-8a83-47db-ae4c-9b03e888bad0/directoryObjects/624fb7e1-f0e9-4bd0-94e4-6be174330d7a/Microsoft.WindowsAzure.ActiveDirectory.User"
+ ],
+ "Server": [
+ "Microsoft-IIS/8.5"
+ ],
+ "X-AspNet-Version": [
+ "4.0.30319"
+ ],
+ "X-Powered-By": [
+ "ASP.NET",
+ "ASP.NET"
+ ],
+ "Date": [
+ "Fri, 12 Dec 2014 19:50:12 GMT"
+ ]
+ },
+ "StatusCode": 201
+ },
+ {
+ "RequestUri": "/1449d5b7-8a83-47db-ae4c-9b03e888bad0/users?$filter=signInName%20eq%20'aduser6859%40rbactest.onmicrosoft.com'&api-version=1.42-previewInternal",
+ "EncodedRequestUri": "LzE0NDlkNWI3LThhODMtNDdkYi1hZTRjLTliMDNlODg4YmFkMC91c2Vycz8kZmlsdGVyPXNpZ25Jbk5hbWUlMjBlcSUyMCdhZHVzZXI2ODU5JTQwcmJhY3Rlc3Qub25taWNyb3NvZnQuY29tJyZhcGktdmVyc2lvbj0xLjQyLXByZXZpZXdJbnRlcm5hbA==",
+ "RequestMethod": "GET",
+ "RequestBody": "",
+ "RequestHeaders": {
+ "User-Agent": [
+ "Microsoft.Azure.Graph.RBAC.GraphRbacManagementClient/1.0.0.0"
+ ]
+ },
+ "ResponseBody": "{\r\n \"odata.metadata\": \"https://graph.windows.net/1449d5b7-8a83-47db-ae4c-9b03e888bad0/$metadata#directoryObjects/Microsoft.WindowsAzure.ActiveDirectory.User\",\r\n \"value\": [\r\n {\r\n \"odata.type\": \"Microsoft.WindowsAzure.ActiveDirectory.User\",\r\n \"objectType\": \"User\",\r\n \"objectId\": \"624fb7e1-f0e9-4bd0-94e4-6be174330d7a\",\r\n \"softDeletionTimestamp\": null,\r\n \"acceptedAs\": null,\r\n \"acceptedOn\": null,\r\n \"accountEnabled\": true,\r\n \"alternativeSecurityIds\": [],\r\n \"appMetadata\": null,\r\n \"assignedLicenses\": [],\r\n \"assignedPlans\": [],\r\n \"city\": null,\r\n \"country\": null,\r\n \"creationType\": null,\r\n \"department\": null,\r\n \"dirSyncEnabled\": null,\r\n \"displayName\": \"aduser6859\",\r\n \"extensionAttribute1\": null,\r\n \"extensionAttribute2\": null,\r\n \"extensionAttribute3\": null,\r\n \"extensionAttribute4\": null,\r\n \"extensionAttribute5\": null,\r\n \"extensionAttribute6\": null,\r\n \"extensionAttribute7\": null,\r\n \"extensionAttribute8\": null,\r\n \"extensionAttribute9\": null,\r\n \"extensionAttribute10\": null,\r\n \"extensionAttribute11\": null,\r\n \"extensionAttribute12\": null,\r\n \"extensionAttribute13\": null,\r\n \"extensionAttribute14\": null,\r\n \"extensionAttribute15\": null,\r\n \"facsimileTelephoneNumber\": null,\r\n \"givenName\": null,\r\n \"immutableId\": null,\r\n \"invitedOn\": null,\r\n \"inviteReplyUrl\": [],\r\n \"inviteResources\": [],\r\n \"inviteTicket\": [],\r\n \"isCompromised\": null,\r\n \"jobTitle\": null,\r\n \"jrnlAddress\": null,\r\n \"lastDirSyncTime\": null,\r\n \"logonIdentifiers\": [],\r\n \"mail\": null,\r\n \"mailNickname\": \"aduser6859test\",\r\n \"mobile\": null,\r\n \"netId\": \"1003BFFD8CE8F616\",\r\n \"onPremiseSecurityIdentifier\": null,\r\n \"otherMails\": [],\r\n \"passwordPolicies\": null,\r\n \"passwordProfile\": null,\r\n \"physicalDeliveryOfficeName\": null,\r\n \"postalCode\": null,\r\n \"preferredLanguage\": null,\r\n \"primarySMTPAddress\": null,\r\n \"provisionedPlans\": [],\r\n \"provisioningErrors\": [],\r\n \"proxyAddresses\": [],\r\n \"searchableDeviceKey\": [],\r\n \"selfServePasswordResetData\": null,\r\n \"signInName\": \"aduser6859@rbactest.onmicrosoft.com\",\r\n \"sipProxyAddress\": null,\r\n \"smtpAddresses\": [],\r\n \"state\": null,\r\n \"streetAddress\": null,\r\n \"surname\": null,\r\n \"telephoneNumber\": null,\r\n \"usageLocation\": null,\r\n \"userPrincipalName\": \"aduser6859@rbactest.onmicrosoft.com\",\r\n \"userState\": null,\r\n \"userStateChangedOn\": null,\r\n \"userType\": \"Member\"\r\n }\r\n ]\r\n}",
+ "ResponseHeaders": {
+ "Content-Length": [
+ "1958"
+ ],
+ "Content-Type": [
+ "application/json; odata=minimalmetadata; streaming=true; charset=utf-8"
+ ],
+ "Expires": [
+ "-1"
+ ],
+ "Pragma": [
+ "no-cache"
+ ],
+ "ocp-aad-diagnostics-server-name": [
+ "VbwAPpHBrDNXWFpR18OzHh/NfNdUKGwRD1NUkhGV+bc="
+ ],
+ "request-id": [
+ "b0d0b4b3-4455-46fc-81ee-53152a0302c3"
+ ],
+ "client-request-id": [
+ "5009830e-a05a-495f-80d6-6505e91eca79"
+ ],
+ "x-ms-gateway-rewrite": [
+ "false"
+ ],
+ "x-ms-dirapi-data-contract-version": [
+ "1.42-previewInternal"
+ ],
+ "ocp-aad-session-key": [
+ "2KTRY1wJ6jc3C2KvLU-HPLXlHPSSLnwVl6erB6dGxlcUiieIf8wHyqtlMhR7MAPzV7ZO1OB2QWbCqgSZ4QlMITokGSuJDLf8upMI0ZS6bgP7U23x0paEGaN_Xq_VB8FnMLBNWydY3yJ5pdGaEDKp2A.moFqgqvaMEXVR4QXDiWPbSaEvBsMDyvyKU7SI3fKyMc"
+ ],
+ "X-Content-Type-Options": [
+ "nosniff"
+ ],
+ "DataServiceVersion": [
+ "3.0;"
+ ],
+ "Strict-Transport-Security": [
+ "max-age=15724800; includeSubDomains"
+ ],
+ "Cache-Control": [
+ "no-cache"
+ ],
+ "Server": [
+ "Microsoft-IIS/8.5"
+ ],
+ "X-AspNet-Version": [
+ "4.0.30319"
+ ],
+ "X-Powered-By": [
+ "ASP.NET",
+ "ASP.NET"
+ ],
+ "Date": [
+ "Fri, 12 Dec 2014 19:50:14 GMT"
+ ]
+ },
+ "StatusCode": 200
+ },
+ {
+ "RequestUri": "/1449d5b7-8a83-47db-ae4c-9b03e888bad0/users/624fb7e1-f0e9-4bd0-94e4-6be174330d7a?api-version=1.42-previewInternal",
+ "EncodedRequestUri": "LzE0NDlkNWI3LThhODMtNDdkYi1hZTRjLTliMDNlODg4YmFkMC91c2Vycy82MjRmYjdlMS1mMGU5LTRiZDAtOTRlNC02YmUxNzQzMzBkN2E/YXBpLXZlcnNpb249MS40Mi1wcmV2aWV3SW50ZXJuYWw=",
+ "RequestMethod": "DELETE",
+ "RequestBody": "",
+ "RequestHeaders": {
+ "User-Agent": [
+ "Microsoft.Azure.Graph.RBAC.GraphRbacManagementClient/1.0.0.0"
+ ]
+ },
+ "ResponseBody": "",
+ "ResponseHeaders": {
+ "Expires": [
+ "-1"
+ ],
+ "Pragma": [
+ "no-cache"
+ ],
+ "ocp-aad-diagnostics-server-name": [
+ "VbwAPpHBrDNXWFpR18OzHh/NfNdUKGwRD1NUkhGV+bc="
+ ],
+ "request-id": [
+ "136e45ca-4a69-44e9-8cd2-4371aef57868"
+ ],
+ "client-request-id": [
+ "1da1480a-638f-47d8-b6f2-8ed4e6980027"
+ ],
+ "x-ms-gateway-rewrite": [
+ "false"
+ ],
+ "x-ms-dirapi-data-contract-version": [
+ "1.42-previewInternal"
+ ],
+ "ocp-aad-session-key": [
+ "HolbQidtxArNqvDuekS9inE2xJViCAJ8wwVq-HOxPCIEEaeXhvkcqJOuuzATNwpX7g6ECj5TTIYM4IQtJMfR4hO9hySjQXS-yVwR4UBwHvliCqYkLFql_BdMnxmpSs6Txd8CvUByIHz-J_xdPTy6Kw.S_dVfFzvVrqJMiERTrn-T8-h8eTXiBM2RgDogdfVEFc"
+ ],
+ "X-Content-Type-Options": [
+ "nosniff"
+ ],
+ "DataServiceVersion": [
+ "1.0;"
+ ],
+ "Strict-Transport-Security": [
+ "max-age=15724800; includeSubDomains"
+ ],
+ "Cache-Control": [
+ "no-cache"
+ ],
+ "Server": [
+ "Microsoft-IIS/8.5"
+ ],
+ "X-AspNet-Version": [
+ "4.0.30319"
+ ],
+ "X-Powered-By": [
+ "ASP.NET",
+ "ASP.NET"
+ ],
+ "Date": [
+ "Fri, 12 Dec 2014 19:50:16 GMT"
+ ]
+ },
+ "StatusCode": 204
+ }
+ ],
+ "Names": {
+ "CreateNewAdUser": [
+ "aduser6859",
+ "adpass3999"
+ ]
+ },
+ "Variables": {
+ "SubscriptionId": "3ca49042-782a-4cc9-89b5-ee1b487fe115",
+ "TenantId": "1449d5b7-8a83-47db-ae4c-9b03e888bad0",
+ "Domain": "rbactest.onmicrosoft.com"
+ }
+}
\ No newline at end of file
diff --git a/src/ResourceManager/Resources/Commands.Resources/ActiveDirectory/GetAzureADUserCommand.cs b/src/ResourceManager/Resources/Commands.Resources/ActiveDirectory/GetAzureADUserCommand.cs
index d94f4c669fe9..7b567893647e 100644
--- a/src/ResourceManager/Resources/Commands.Resources/ActiveDirectory/GetAzureADUserCommand.cs
+++ b/src/ResourceManager/Resources/Commands.Resources/ActiveDirectory/GetAzureADUserCommand.cs
@@ -44,6 +44,11 @@ public class GetAzureADUserCommand : ActiveDirectoryBaseCmdlet
[Alias("UPN")]
public string UserPrincipalName { get; set; }
+ [Parameter(Mandatory = true, ValueFromPipelineByPropertyName = true, ParameterSetName = ParameterSet.Mail,
+ HelpMessage = "The user mail.")]
+ [ValidateNotNullOrEmpty]
+ public string Mail { get; set; }
+
public override void ExecuteCmdlet()
{
ADObjectFilterOptions options = new ADObjectFilterOptions
@@ -51,7 +56,8 @@ public override void ExecuteCmdlet()
SearchString = SearchString,
UPN = UserPrincipalName,
Id = ObjectId == Guid.Empty ? null : ObjectId.ToString(),
- Paging = true
+ Paging = true,
+ Mail = Mail
};
do
diff --git a/src/ResourceManager/Sql/Commands.Sql.Test/packages.config b/src/ResourceManager/Sql/Commands.Sql.Test/packages.config
index b8d8b347c578..0564a705e5c9 100644
--- a/src/ResourceManager/Sql/Commands.Sql.Test/packages.config
+++ b/src/ResourceManager/Sql/Commands.Sql.Test/packages.config
@@ -1,7 +1,7 @@
-
-
+
+