Windows Users / Change Password


I would like to distribute Windows users but with the possibility that each user can change their own password, (directly through vault/databag or json file), without being able to check the password of another user.
I tried via databag encryption but I have to create 1 secret for each user and distribute these secrets for each node.
Via chef vault, I have to create 2 databags, 1 for users (loop) and another to get vault password, something like I see in this forum:

data_bag(‘human_users’).each do |item_id|
individual_data = data_bag_item(‘human_users’,item_id)
vault = ChefVault::Item.load(“user_vault”,individual_data[“id”])
username = individual_data[“id”]
user username do

Is there any other way to manage these users?