分享方式:


在 AD DS 中更新儲存體帳戶身分識別的密碼

如果您在強制執行密碼到期時間的組織單位或網域中註冊了代表儲存體帳戶的 Active Directory Domain Services (AD DS) 身分識別/帳戶,則必須在密碼最長使用期限之前變更密碼。 您的組織可能會執行在密碼到期後刪除帳戶的自動清除指令碼。 因此,如果您未在密碼到期前變更密碼,您的帳戶可能會遭到刪除,而導致您無法存取 Azure 檔案共用。

為了避免非預期的密碼輪替,在網域中將 Azure 儲存體帳戶上線期間,請務必將 Azure 儲存體帳戶放入 AD DS 的個別組織單位中。 在此組織單位上停用群組原則繼承,以防止套用預設網域原則或特定密碼原則。

注意

AD DS 中的儲存體帳戶身分識別可以是服務帳戶或電腦帳戶。 服務帳戶密碼可以在 Active Directory 中過期(AD):不過,因為計算機帳戶密碼變更是由用戶端計算機所驅動,而不是 AD,所以不會在 AD 中過期。

觸發密碼輪替有兩個選項。 您可以使用 AzFilesHybrid 模組或 Active Directory PowerShell。 使用一個方法,而非兩者。

適用於

檔案共用類型 SMB NFS
標準檔案共用 (GPv2)、LRS/ZRS 是 否
標準檔案共用 (GPv2)、GRS/GZRS 是 否
進階檔案共用 (FileStorage)、LRS/ZRS 是 No

選項 1:使用 AzFilesHybrid 模組

您可以從 AzFilesHybrid 模組執行 Update-AzStorageAccountADObjectPassword Cmdlet。 您必須透過 具有記憶體帳戶擁有者許可權的混合式身 分識別,在內部部署 AD DS 加入環境中執行此命令,以變更代表記憶體帳戶的身分識別密碼。 此命令會執行類似於儲存體帳戶金鑰輪替的動作, 具體而言,會取得儲存體帳戶的第二個 Kerberos 金鑰,並用來更新 AD DS 中已註冊帳戶的密碼。 接著重新產生儲存體帳戶的目標 Kerberos 金鑰,並更新 AD DS 中已註冊帳戶的密碼。

# Update the password of the AD DS account registered for the storage account
# You may use either kerb1 or kerb2
Update-AzStorageAccountADObjectPassword `
        -RotateToKerbKey kerb2 `
        -ResourceGroupName "<your-resource-group-name-here>" `
        -StorageAccountName "<your-storage-account-name-here>"

此動作會將 AD 物件的密碼從 kerb1 變更為 kerb2。 這是兩個階段的流程:從 kerb1 輪替至 kerb2 (kerb2 會在儲存體帳戶上重新產生,再設定)、等候數小時,然後輪替回 kerb1 (此 Cmdlet 同樣會重新產生 kerb1)。

選項 2:使用 Active Directory PowerShell

如果您不想下載 AzFilesHybrid 模組,您可以使用 Active Directory PowerShell

重要

本節中的 Windows Server Active Directory PowerShell Cmdlet 必須在 Windows PowerShell 5.1 中以較高的權限執行。 PowerShell 7.x 和 Azure Cloud Shell 在此案例中無法運作。

請在下列指令碼中將 <domain-object-identity> 取代為您的值,然後執行此指令碼以更新您的網域物件密碼:

$KeyName = "kerb1" # Could be either the first or second kerberos key, this script assumes we're refreshing the first
$KerbKeys = New-AzStorageAccountKey -ResourceGroupName $ResourceGroupName -Name $StorageAccountName -KeyName $KeyName
$KerbKey = $KerbKeys.keys | Where-Object {$_.KeyName -eq $KeyName} | Select-Object -ExpandProperty Value
$NewPassword = ConvertTo-SecureString -String $KerbKey -AsPlainText -Force

Set-ADAccountPassword -Identity <domain-object-identity> -Reset -NewPassword $NewPassword