Em primeiro lugar, o comando "assoc" altera a associação geral do tipo de arquivo em HKEY_CLASSES_ROOT. Se você verificar a entrada no regedit, espero que você consiga alterá-la com sucesso. Isso não ajudará se já houver uma preferência de usuário definida na subchave UserChoice porque ela tem prioridade. Eu suspeito que você já sabe disso e essa é a razão pela qual você está tentando mudar as outras chaves de registro diretamente.
O próximo item que notei foi um erro no caminho da chave. Você está usando "Explorere" em vez de "Explorer". Isso provavelmente significa que você não está recebendo nenhuma mensagem de erro ao tentar alterar a chave. Se você estiver criando uma nova chave não usada, ela não terá efeito sobre o comportamento do arquivo.
Em seguida, você parecia estar perguntando sobre como alterar a chave, mas não parecia estar preocupado com o método (contanto que fosse roteirizado), então tentei apenas um: o powershell. Uma exceção de segurança é gerada toda vez que tento escrever o UserChoice, mas não para outras chaves. O problema parece ser os direitos de acesso para essa chave de registro específica. Quando eu li o acl no powershell, pude ver que a regra de acesso ao registro da minha conta tinha "SetValue" como "Negar".
A seguinte página oferece uma excelente descrição de como contornar este problema e remover as permissões necessárias. Aqui está o script resultante que funcionou para mim no meu PC Win7. Eu verifiquei usando um arquivo .mov; o script alterou com sucesso o programa que foi chamado ao clicar duas vezes no arquivo.
$user=<your user account name>
$name = "Software\Microsoft\windows\CurrentVersion\Explorer\FileExts\.mov\UserChoice"
$RegKey ="HKCU:\" + $name
Get-ItemProperty -path $RegKey
get-acl -path $RegKey
$key = [Microsoft.Win32.Registry]::CurrentUser.OpenSubKey($name, [Microsoft.Win32.RegistryKeyPermissionCheck]::ReadWriteSubTree,
[System.Security.AccessControl.RegistryRights]::ChangePermissions)
$acl = $key.GetAccessControl()
$rule=new-object System.Security.AccessControl.RegistryAccessRule ($user, 'SetValue', 'Deny')
$acl.RemoveAccessRule($rule)
$key.SetAccessControl($acl)
get-acl -path $RegKey
Set-ItemProperty -path $RegKey -name Progid -value 'WMP11.AssocFile.MOV' -type String
Get-ItemProperty -path $RegKey
Se houver mais algum erro, sugiro que você compare as permissões de acl. O script imprime o acl antes e depois e também o conteúdo atual da chave.
Notas 1. O ícone exibido pode não ser atualizado. Clique duas vezes em um arquivo .mov para testar. 2. Se houver problemas, tente verificar se você pode alterar o valor manualmente e se pode ver a alteração equivalente no regedit.
Atualização : presumi que você queria manter a configuração específica do usuário, mas ao ler sua descrição uma segunda vez, percebi que você não especificou isso. Se você quiser mudar a associação para todos os usuários, então você terá que remover a chave UserChoice completamente com um comando relativamente simples como isto . Então o seu comando "assoc" deve fazer o truque.