Meu empregador possui uma política de grupo do Active Directory que define meu HOMEDRIVE para Windows 7 como "M:" (uma unidade de rede mapeada) e meu HOMEPATH como "\". Como tenho permissões somente leitura para a raiz dessa unidade compartilhada, não posso criar arquivos ou diretórios no diretório inicial do Windows. Minhas tentativas de trabalhar com o departamento de TI não tiveram êxito.
Existe uma maneira para me para globalmente alterar essas envars na inicialização ou de login tempo? Eu preciso que todos os aplicativos usem valores alternativos (como "C:" e "\ Users \ myname"). Eu tenho alguns utilitários instalados (como gvim e outros) que armazenam arquivos de preferências no diretório inicial do usuário.
IMPORTANTE : A alteração desses ambientes em "Propriedades do sistema> Variáveis de ambiente" não funciona . Tentei defini-las como variáveis de usuário e de sistema (incluindo uma reinicialização). Digitar SET HOME
em uma janela do DOS mostra claramente que minhas configurações são ignoradas. Além disso, o uso de "Iniciar em" em um atalho do Windows também não resolverá isso, pois preciso que itens como o menu de contexto do Explorer (como "Editar com o Vim") funcionem corretamente.
Eu tenho direitos de administrador neste laptop da empresa, mas não sou um guru do Win7. Voltar no dia, um script de inicialização teria resolvido isso em um minuto. Ainda é possível hoje? Obrigado.
Respostas:
Abaixo estão alguns hacks que desenvolvi. Eles não são elegantes, mas podem ser funcionais em seu ambiente corporativo.
Apenas HOMEDRIVE
Parece que muitos aplicativos usam apenas HOMEDRIVE / HOMEPATH. Nesse caso, você pode criar um script de inicialização que remapeie a letra da unidade base para o caminho do usuário local por meio do caminho de administração da unidade UNC:
Padrão local do HOMEDRIVE
Se você não precisar acessar "Servidor" pelo nome, poderá causar falha na configuração da diretiva de grupo e retornar à sua máquina local. A maneira mais fácil de fazer isso é adicionar uma entrada em C: \ Windows \ System32 \ drivers \ etc \ hosts como:
Após a reinicialização, você verá algo como:
HOMEDRIVE / SHARE com caminhos UNC locais / remotos híbridos
Se você deseja acessar o "Servidor" pelo nome para alguns caminhos UNC, mas substituir outros por caminhos locais, desenvolvi a seguinte abominação. Nota: as conexões diretas do servidor ao "Servidor" ainda serão resolvidas na sua máquina local. Eu recomendo esta solução apenas se "Servidor" for apenas um servidor de arquivos:
Modifique C: \ Windows \ System32 \ drivers \ etc \ hosts para redirecionar "Servidor" para a sua máquina local:
Adicione o seguinte valor do Registro de seqüência múltipla a HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Lsa \ MSV1_0 para permitir que credenciais sejam passadas para o caminho UNC local:
Crie um diretório fictício que servirá como raiz do servidor:
Para cada caminho UNC que você deseja direcionar para o servidor real:
Para cada compartilhamento UNC que você deseja definir localmente (como Usuários):
Reiniciar
Por exemplo, isso permitiria que os seguintes caminhos UNC fossem resolvidos:
Essa resolução de caminho deve ocorrer antes dos mapeamentos da unidade. Desde que os caminhos UNC associados aos mapeamentos sejam válidos (sejam locais ou remotos), as letras das unidades devem se comportar conforme o esperado.
Por exemplo, na minha instalação, as seguintes variáveis são forçadas pelo domínio:
Mas, devido aos meus mapeamentos, o resultado é:
fonte
A melhor solução que encontrei foi definir variáveis durante o login e antes
userinit.exe
.Foi o que eu fiz. Primeiro, criei um arquivo em lote
C:\Windows\System32\userinit.cmd
contendoe depois alterou o valor de
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit
paraC:\Windows\System32\userinit.cmd
no registro.Mais informações em: https://technet.microsoft.com/en-us/library/cc939862.aspx
fonte
Eu usei
SETX
em um script de inicialização e que funcionou para mim. Veja minha resposta .fonte
Eu acho que esses caminhos são definidos automaticamente para o local onde está o seu perfil de usuário. A unidade inicial a que você está se referindo é o local onde estão os dados do ntuser.dat e dos aplicativos e outras pastas de perfil de usuário, correto? De volta ao NT3.x, o "perfil do usuário" era apenas a seção de registro do usuário com as configurações e você podia definir um caminho inicial separado para cada usuário. Aqueles se uniram no NT4 como um perfil de usuário com uma área de trabalho, meus documentos, menu Iniciar etc.
Os locais de todos os perfis são armazenados nas chaves do Registro em
Você encontrará alguns valores para os perfis especiais e subchaves: um para cada perfil ativo no sistema. Eles são configurados pelo SID da conta de usuário a que pertencem. A maneira mais fácil de encontrar a sua seria percorrer cada uma procurando o caminho certo (abaixo do
ProfileImagePath
valor). Você deve ser capaz de alterar esse valor para o caminho que desejar; entrará em vigor na próxima vez que você fizer logon. Certifique-se de copiar seus arquivos para o novo caminho primeiro.Se você precisar mover o perfil da conta em que está logado (ou seja, logado como MikeC e estiver tentando copiar o perfil para MikeC), o arquivo ntuser.dat (a seção de registro que contém
HKEY_CURRENT_USER
) será bloqueado pelo kernel. Você ainda pode copiar a seção: entre no regedit, clique com o botão direito do mouseHKEY_CURRENT_USER
, selecione exportar, altere o tipo para arquivos da seção de registro e salve como ntuser.dat em seu novo local.Na minha experiência, se o winlogon tiver um problema ao carregar um perfil porque algo está configurado errado, ele criará uma nova cópia do perfil padrão ou fornecerá uma cópia temporária para usar nessa sessão e você ainda poderá fazer logon No entanto, eu recomendaria que você tivesse um login de administrador diferente para usar no sistema, caso algo desse errado.
fonte
Estou postando isso no caso de mais alguém chegar a essa pergunta via google. Em vez de alterar meu diretório pessoal e deixar os caras do IS furiosos comigo, configurei e executei meu desenvolvimento em uma máquina virtual. A Microsoft oferece o Windows XP no modo virtual. http://www.microsoft.com/windows/virtual-pc/download.aspx
fonte
Uma alternativa um pouco mais fácil seria executar o script abaixo (env-reset.vbs) como uma tarefa agendada no logon, desbloquear e talvez a cada poucos minutos também.
fonte