Prerequisites
Steps to reproduce
With many highly parallel calls to Register-SecretVault or Unegister-SecretVault they don't register/unregister, presumedly due to failing parallel write access to %LOCALAPPDATA%\Microsoft\PowerShell\secretmanagement\secretvaultregistry\vaultinfo file.
Suggestion
Redesign to not use one shared vaultinfo file. Instead use multiple files with guid based naming, one for each registered vault so they less likely conflict with each other.
Get-SecretVault would iterate over the files.
Register-SecretVault and Unegister-SecretVault would only ever write to or delete their 'own' files
Expected behavior
Register-SecretVault ... myvault12345 ...
-> Registers vault
Get-Secret ... from myvault12345 ...
-> returns secret via myvault12345
Actual behavior
Register-SecretVault ... myvault12345 ...
-> Registers vault
Get-Secret ... from myvault12345 ...
-> Error: Get-Secret : Vault not found in registry: myvault12345
Error details
Environment data
Name Value
---- -----
PSVersion 5.1.26100.32860
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.26100.32860
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
Version
Microsoft.PowerShell.SecretManagement 1.1.2
Visuals
No response
Prerequisites
Steps to reproduce
With many highly parallel calls to
Register-SecretVaultorUnegister-SecretVaultthey don't register/unregister, presumedly due to failing parallel write access to%LOCALAPPDATA%\Microsoft\PowerShell\secretmanagement\secretvaultregistry\vaultinfofile.Suggestion
Redesign to not use one shared vaultinfo file. Instead use multiple files with guid based naming, one for each registered vault so they less likely conflict with each other.
Get-SecretVaultwould iterate over the files.Register-SecretVaultandUnegister-SecretVaultwould only ever write to or delete their 'own' filesExpected behavior
Actual behavior
Error details
Environment data
Version
Microsoft.PowerShell.SecretManagement 1.1.2
Visuals
No response