Houve realmente dois problemas.
Em primeiro lugar, na presença da política de loopback, deve-se ter cuidado com o rsop.msc, porque apenas usar o padrão (ou seja, assinalar "pular para a última página do assistente sem coletar mais dados" logo após selecionar recipientes do usuário e do computador) pode não refletem os verdadeiros resultados da política. É preciso, pelo menos, marcar loopback na segunda página (e substituir ou mesclar) para obter resultados realistas. Ter cuidado aqui ajuda a diagnosticar corretamente se o script for executado no logoff. Em segundo lugar, SetStringValue
cria valores se eles não existirem antes, mas não cria chaves inexistentes. Portanto,
oReg.CreateKey HKCU,"SOFTWARE\Foo"
deve ser emitido no script (para o registro, CreateKey
faz criar chaves inexistentes recursivamente, mas é claro que "HKCU \ SOFTWARE" já existe).