Skip to content

Commit 7cb8173

Browse files
authored
release-2023-02-07
release-2023-02-07
2 parents c21cc3f + 82d7d99 commit 7cb8173

File tree

1,498 files changed

+496459
-368501
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,498 files changed

+496459
-368501
lines changed

.azure-pipelines/util/smoke-test-steps.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,13 @@ jobs:
7878
Write-Host "List artifacts..."
7979
Get-ChildItem "$(Pipeline.Workspace)\\LocalRepo\\"
8080
81+
- task: NuGetCommand@2
82+
condition: and(succeeded(), eq('${{ parameters.psVersion }}', '5.1.14'))
83+
displayName: 'Download ThreadJob .nupkg File for PowerShell 5.1.14'
84+
inputs:
85+
command: custom
86+
arguments: 'install ThreadJob -directdownload -packagesavemode nupkg -source https://www.powershellgallery.com/api/v2 -OutputDirectory packages'
87+
8188
- task: NuGetCommand@2
8289
condition: and(succeeded(), eq(variables['GalleryName'], 'LocalRepo'))
8390
displayName: 'Download Previous Az .nupkg Files'

ChangeLog.md

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,101 @@
1+
## 9.4.0 - February 2023
2+
#### Az.Accounts 2.11.2
3+
* Supported Web Account Manager on ARM64-based Windows systems. Fixed an issue where 'Connect-AzAccount' failed with error 'Unable to load DLL 'msalruntime_arm64''. [#20700]
4+
* Enabled credential to be found only by applicationId while tenant was not matched when accquire token. [#20484]
5+
* When Az.Accounts ran in parallel, the waiters were allowed to wait infinitely to avoid throw exception in automation enviroment. [#20455]
6+
7+
#### Az.Aks 5.3.0
8+
* Added parameter '-AadProfile' for 'New-AzAksCluster' and 'Set-AzAksCluster'
9+
* Added parameter '-NodeHostGroupID' for 'New-AzAksCluster' and parameter '-HostGroupID' for 'New-AzAksNodePool'
10+
11+
#### Az.ApplicationInsights 2.2.2
12+
* Added parameter validation for 'Get-AzApplicationInsights' [#20697]
13+
14+
#### Az.Compute 5.4.0
15+
* Added '-SkipIdentity', '-PathUserIdentity', '-IsTest' parameter to 'Set-AzVMAEMExtension'
16+
* Added 'ConsistencyMode' parameter to 'New-AzRestorePoint'.
17+
* Updated the storage account type value in several locations from the outdated 'StandardLRS' to the current 'Standard_LRS'.
18+
* Filled in missing parameter descriptions across multiple parameters and improved some existing parameter descriptions.
19+
* Updated Compute PS to use the new .Net SDK version 59.0.0. This includes an approved breaking change for a non-functional feature.
20+
- The type of the property 'Source' of type 'Microsoft.Azure.Management.Compute.Models.GalleryDataDiskImage', 'Microsoft.Azure.Management.Compute.Models.GalleryOSDiskImage', and 'Microsoft.Azure.Management.Compute.Models.GalleryImageVersionStorageProfile' has changed from 'Microsoft.Azure.Management.Compute.Models.GalleryArtifactVersionSource' to 'Microsoft.Azure.Management.Compute.Models.GalleryDiskImageSource'.
21+
* Updated the broken 'UbuntuLTS' image alias to use its original sku version of '16.04-LTS' instead of the nonexistent image '20.04-LTS'. This fixes an issue introduced in the version 5.3.0 release.
22+
* Updated Set-AzVMRunCommand and Set-AzVmssRunCommand ScriptLocalPath parameter set to work with Linux and with files that have comments.
23+
* Added '-TargetExtendedLocation' parameter to 'New-AzGalleryImageVersion' and 'Update-AzGalleryImageVersion'
24+
* Added '-AllowDeletionOfReplicatedLocation' to 'Update-AzGalleryImageVersion'
25+
26+
#### Az.DataFactory 1.16.12
27+
* Updated ADF .Net SDK version to 9.0.0
28+
29+
#### Az.DataProtection 1.1.0
30+
* Added support for Immutable backup vaults
31+
* Added Cross subscription restore flag for backup vaults
32+
* Added Soft delete setting for backup vaults
33+
* Fixed issue with Set-AzDataProtectionMSIPermission command
34+
* Replaced Get-InstalledModule with Get-Module -ListAvailable
35+
* Added New-AzDataProtectionSoftDeleteSettingObject command
36+
37+
#### Az.EventHub 3.2.1
38+
* Fixed 'New-AzEventHubAuthorizationRuleSASToken' cmdlet which was returning wrong skn value
39+
40+
#### Az.Monitor 4.4.1
41+
* Removed default value for time window for autoscale profile [#20660]
42+
* 'Get-AzAutoscaleSetting'
43+
* 'New-AzAutoscaleSetting'
44+
45+
#### Az.Network 5.4.0
46+
* Fixed a bug that does not enable to set Perform SNAT to Always
47+
* Fixed the incorrect type of '-TotalBytesPerSession' in 'New-AzNetworkWatcherPacketCapture'
48+
49+
#### Az.RecoveryServices 6.2.0
50+
* Added support for enable/disable Public Network Access and PrivateEndpoints
51+
* Added support for Immutable Vaults
52+
* Added support for RetainRecoveryPointsAsPerPolicy in Disable-AzRecoveryServicesBackupProtection cmdlet. Now user can suspend backups and retain RPs as per policy
53+
* Added List Recovery Point expiry time
54+
* Added RecoveryServices, RecoveryServices.Backup, RecoveryServices.Backup.CrossRegionRestore management SDK
55+
* Added support for non-UTC time zones with standard policy for workloadType IaasVM, MSSql, AzureFiles
56+
57+
#### Az.RedisCache 1.7.1
58+
* Updated 'Get-AzRedisCacheLink' and 'New-AzRedisCacheLink' to print 'PrimaryHostName', 'GeoReplicatedPrimaryHostName', 'ServerRole', and 'LinkedRedisCacheLocation'.
59+
60+
#### Az.Resources 6.5.2
61+
* Fixed query issue when objectId in assignment is empty for 'Get-DenyAssignment'
62+
* Fixed an issue where running deployment cmdlets with '-WhatIf' throws exception when formatting results with nested array changes
63+
64+
#### Az.Sql 4.3.0
65+
* Added an optional parameter 'HAReplicaCount' to 'Restore-AzSqlDatabase'
66+
* Added new cmdlets for managed instance DTC
67+
'Get-AzSqlInstanceDtc'
68+
'Set-AzSqlInstanceDtc'
69+
* Added 'TargetSubscriptionId' to 'Restore-AzSqlInstanceDatabase' in order to enable cross subscription restore
70+
* Enabled support for UserAssignedManagedIdentity in Auditing
71+
* Fixed WorkspaceResourceId parameter value in 'Set-AzSqlServerAudit'
72+
73+
#### Az.StackHCI 1.4.2
74+
* Added Remote Support terms and conditions for HCI device types.
75+
* Unified Resource Group support for both Azure Stack HCI and Arc for server resources.
76+
* Enhanced error feedback and logging in the Register-AzStackHCI cmdlet.
77+
* Bug fixes and improvements in Azure Arc for servers enablement in Register-AzStackHCI cmdlet.
78+
* Improved parameter validations in the Register-AzStackHCI cmdlet.
79+
* Enabled Managed System Identity (MSI) for Registration in Fairfax Cloud.
80+
* Minor bug fixes and improvements.
81+
82+
#### Az.Storage 5.4.0
83+
* Added a warning message for the upcoming breaking change when creating a Storage account
84+
- 'New-AzStorageAccount'
85+
* Removed the ValidateSet of StandardBlobTier parameter
86+
- 'Copy-AzStorageBlob'
87+
- 'Set-AzStorageBlobContent'
88+
- 'Start-AzStorageBlobCopy'
89+
90+
#### Az.TrafficManager 1.2.0
91+
* Added a new optional parameter 'AlwaysServe' for endpoints.
92+
93+
### Thanks to our community contributors
94+
* Arun Sabale (@Ar-Sa), Fix example 1 in Set-AzVirtualNetworkPeering.md (#20588)
95+
* Hiroshi Yoshioka (@hyoshioka0128)
96+
* Fixed typo "resouce group"→"resource group" (#20664)
97+
* Typo "resouce group"→"resource group" (#20713)
98+
199
## 9.3.0 - January 2023
2100
#### Az.Accounts
3101
* Supported Web Account Manager (WAM) as an opt-in interactive login experience. Enable it by 'Update-AzConfig -EnableLoginByWam True'.

documentation/breaking-changes/upcoming-breaking-changes.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1205,6 +1205,13 @@
12051205
- The following properties in the output type are being deprecated : 'BackupStorageRedundancy'
12061206
- The following properties are being added to the output type : 'CurrentBackupStorageRedundancy' 'RequestedBackupStorageRedundancy'
12071207

1208+
## Az.Storage
1209+
1210+
### `New-AzStorageAccount`
1211+
1212+
- Cmdlet breaking-change will happen to all parameter set
1213+
- Default value of AllowBlobPublicAccess will be changed from True to False in a future release. When AllowBlobPublicAccess is False on a storage account, it is not permitted to configure container ACLs to allow anonymous access to blobs within the storage account.
1214+
12081215
## Az.StorageSync
12091216

12101217
### `Set-AzStorageSyncServerEndpoint`

setup/generate.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ if( (-not (get-command -ea 0 light)) -or (-not (get-command -ea 0 heat)) -or (-n
3737
$outputName ="Az-Cmdlets"
3838

3939
# generate the product name from the current month/year.
40-
$productName = "Microsoft Azure PowerShell - January 2023"
40+
$productName = "Microsoft Azure PowerShell - February 2023"
4141

4242
# where to put temp files
4343
$tmp = Join-Path $env:temp azure-cmdlets-tmp

src/Accounts/Accounts.Test/AutosaveTests.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,7 @@ private AzKeyStore SetMockedAzKeyStore()
5151
storageMocker.Setup(f => f.Create()).Returns(storageMocker.Object);
5252
storageMocker.Setup(f => f.ReadData()).Returns(new byte[0]);
5353
storageMocker.Setup(f => f.WriteData(It.IsAny<byte[]>())).Callback((byte[] s) => {});
54-
var keyStore = new AzKeyStore(AzureSession.Instance.ARMProfileDirectory, "azkeystore", false, false, storageMocker.Object);
55-
AzKeyStore.RegisterJsonConverter(typeof(ServicePrincipalKey), typeof(ServicePrincipalKey).Name);
56-
AzKeyStore.RegisterJsonConverter(typeof(SecureString), typeof(SecureString).Name, new SecureStringConverter());
54+
var keyStore = new AzKeyStore(AzureSession.Instance.ARMProfileDirectory, "azkeystore", true, storageMocker.Object);
5755
return keyStore;
5856
}
5957

src/Accounts/Accounts.Test/ContextCmdletTests.cs

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,17 +23,21 @@
2323
using Microsoft.WindowsAzure.Commands.ScenarioTest;
2424
using Microsoft.WindowsAzure.Commands.Test.Utilities.Common;
2525
using Microsoft.WindowsAzure.Commands.Utilities.Common;
26-
using Xunit;
27-
using Xunit.Abstractions;
2826
using Microsoft.Azure.Commands.Common.Authentication.Abstractions;
29-
using System;
27+
using Microsoft.Azure.Commands.Common.Authentication.Properties;
3028
using Microsoft.Azure.Commands.Profile.Context;
31-
using System.Linq;
3229
using Microsoft.Azure.Commands.Common.Authentication.ResourceManager;
3330
using Microsoft.Azure.Commands.Profile.Common;
3431
using Microsoft.Azure.Commands.ScenarioTest.Mocks;
3532
using Microsoft.Azure.Commands.TestFx.Mocks;
3633
using Microsoft.Azure.Commands.TestFx;
34+
using Microsoft.Azure.Commands.ResourceManager.Common;
35+
using Moq;
36+
using System;
37+
using System.IO;
38+
using System.Linq;
39+
using Xunit;
40+
using Xunit.Abstractions;
3741

3842
namespace Microsoft.Azure.Commands.Profile.Test
3943
{
@@ -56,6 +60,12 @@ public ContextCmdletTests(ITestOutputHelper output)
5660
tokenCacheProviderMock = new MockPowerShellTokenCacheProvider();
5761
AzureSession.Instance.RegisterComponent<PowerShellTokenCacheProvider>(PowerShellTokenCacheProvider.PowerShellTokenCacheProviderKey, () => tokenCacheProviderMock);
5862
Environment.SetEnvironmentVariable("Azure_PS_Data_Collection", "True");
63+
64+
Mock<IStorage> storageMocker = new Mock<IStorage>();
65+
AzKeyStore azKeyStore = null;
66+
string profilePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), Resources.AzureDirectoryName);
67+
azKeyStore = new AzKeyStore(profilePath, AzureSession.Instance.KeyStoreFile, true, storageMocker.Object);
68+
AzureSession.Instance.RegisterComponent(AzKeyStore.Name, () => azKeyStore, true);
5969
}
6070

6171
[Fact]

src/Accounts/Accounts.Test/ProfileCmdletTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ private AzKeyStore SetMockedAzKeyStore()
5555
storageMocker.Setup(f => f.Create()).Returns(storageMocker.Object);
5656
storageMocker.Setup(f => f.ReadData()).Returns(new byte[0]);
5757
storageMocker.Setup(f => f.WriteData(It.IsAny<byte[]>())).Callback((byte[] s) => { });
58-
var keyStore = new AzKeyStore(AzureSession.Instance.ARMProfileDirectory, "azkeystore", false, false, storageMocker.Object);
58+
var keyStore = new AzKeyStore(AzureSession.Instance.ARMProfileDirectory, "azkeystore", false, storageMocker.Object);
5959
return keyStore;
6060
}
6161

src/Accounts/Accounts/Account/ConnectAzureRmAccount.cs

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -425,7 +425,7 @@ public override void ExecuteCmdlet()
425425
azureAccount.SetProperty(AzureAccount.Property.CertificatePath, resolvedPath);
426426
if (CertificatePassword != null)
427427
{
428-
keyStore?.SaveKey(new ServicePrincipalKey(AzureAccount.Property.CertificatePassword, azureAccount.Id, Tenant), CertificatePassword);
428+
keyStore?.SaveSecureString(new ServicePrincipalKey(AzureAccount.Property.CertificatePassword, azureAccount.Id, Tenant), CertificatePassword);
429429
if (GetContextModificationScope() == ContextModificationScope.CurrentUser && !keyStore.IsProtected)
430430
{
431431
WriteWarning(string.Format(Resources.ServicePrincipalWarning, AzureSession.Instance.KeyStoreFile, AzureSession.Instance.ARMProfileDirectory));
@@ -451,7 +451,7 @@ public override void ExecuteCmdlet()
451451

452452
if (azureAccount.Type == AzureAccount.AccountType.ServicePrincipal && password != null)
453453
{
454-
keyStore?.SaveKey(new ServicePrincipalKey(AzureAccount.Property.ServicePrincipalSecret
454+
keyStore?.SaveSecureString(new ServicePrincipalKey(AzureAccount.Property.ServicePrincipalSecret
455455
,azureAccount.Id, Tenant), password);
456456
if (GetContextModificationScope() == ContextModificationScope.CurrentUser && !keyStore.IsProtected)
457457
{
@@ -713,9 +713,7 @@ public void OnImport()
713713
}
714714

715715
AzKeyStore keyStore = null;
716-
keyStore = new AzKeyStore(AzureSession.Instance.ARMProfileDirectory, AzureSession.Instance.KeyStoreFile, false, autoSaveEnabled);
717-
AzKeyStore.RegisterJsonConverter(typeof(ServicePrincipalKey), typeof(ServicePrincipalKey).Name);
718-
AzKeyStore.RegisterJsonConverter(typeof(SecureString), typeof(SecureString).Name, new SecureStringConverter());
716+
keyStore = new AzKeyStore(AzureSession.Instance.ARMProfileDirectory, AzureSession.Instance.KeyStoreFile, autoSaveEnabled);
719717
AzureSession.Instance.RegisterComponent(AzKeyStore.Name, () => keyStore);
720718

721719
if (!InitializeProfileProvider(autoSaveEnabled))
@@ -724,11 +722,6 @@ public void OnImport()
724722
autoSaveEnabled = false;
725723
}
726724

727-
if (!keyStore.LoadStorage())
728-
{
729-
WriteInitializationWarnings(Resources.KeyStoreLoadingError);
730-
}
731-
732725
IAuthenticatorBuilder builder = null;
733726
if (!AzureSession.Instance.TryGetComponent(AuthenticatorBuilder.AuthenticatorBuilderKey, out builder))
734727
{

src/Accounts/Accounts/AutoSave/DisableAzureRmContextAutosave.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ void DisableAutosave(IAzureSession session, bool writeAutoSaveFile, out ContextA
9494

9595
if (AzureSession.Instance.TryGetComponent(AzKeyStore.Name, out AzKeyStore keystore))
9696
{
97-
keystore.DisableAutoSaving();
97+
keystore.DisableSyncToStorage();
9898
}
9999

100100
if (writeAutoSaveFile)

src/Accounts/Accounts/AutoSave/EnableAzureRmContextAutosave.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -104,11 +104,9 @@ void EnableAutosave(IAzureSession session, bool writeAutoSaveFile, out ContextAu
104104

105105
if (AzureSession.Instance.TryGetComponent(AzKeyStore.Name, out AzKeyStore keystore))
106106
{
107-
keystore.Flush();
108-
keystore.DisableAutoSaving();
107+
keystore.EnableSyncToStorage();
109108
}
110109

111-
112110
if (writeAutoSaveFile)
113111
{
114112
try

0 commit comments

Comments
 (0)