Questão script de logon para mapear a unidade de rede


Eu estou tentando esconder o caminho de rede de pastas compartilhadas de usuários do domínio. (janelas 2013) Eu encontrei este script enquanto procurava pela rotulagem da unidade de rede.

$a = New-Object -ComObject shell.application
$a.NameSpace( "H:\" ).self.name = "Network Drive "

Se eu executar o script abrindo o shell de energia manualmente, ele rotula com êxito o compartilhamento de rede e oculta o caminho de rede do usuário.

Por favor, guie-me como torná-lo um script de logon, para que quando o usuário fizer login, esse script seja executado e sua unidade de rede seja renomeada.

Eu não tenho idéia sobre o script do windows. então eu vou precisar de ajuda passo a passo para fazer o trabalho.


3


origem


Não há o Windows 2013. Atribuir scripts de logon do usuário, Não tenho certeza se você pode usar o PS fora da caixa para isso. Além disso, você sempre pode despejar um script na máquina e adicioná-lo ao Autostart. - Seth
seu diretório ativo com mais de 500 máquinas, muito difícil de assová-lo para iniciar automaticamente no pc individual. - sadia rehman
Por que seria difícil usar sua implantação de software para fazer isso? Além disso, o artigo indica o GPO envolvido para configurar um script de logon / logoff. Você teria que colocá-lo em um compartilhamento disponível para as máquinas. - Seth


Respostas:


Já que você já tem PowerShell lógica que funciona como você confirmou e você só precisa saber como fazê-lo funcionar a partir do script de login, basta acrescentar o exemplo de lógica que eu forneço abaixo com sua lógica, conforme necessário. Apenas certifique-se de que sua lógica para mapear as unidades seja executada antes que essa lógica seja executada.

Eu forneci o Configurando um script de logon por meio de usuários e computadores do Active Directory   que você pode revisar para detalhes mais detalhados da configuração de um script de login, que é uma tarefa relativamente simples.

Se você estiver usando um script em lote, basta anexar a lógica ao final do processo, conforme mostrado abaixo. Se você estiver usando um script VB, consulte Executar um arquivo VBScript aqui para ver o objShell.Run "c:\batch\test.cmd" exemplo, mas você criaria e apontá-lo para \\DomainController\sysvol\<domain>\scripts\<Batch>.cmd

Exemplo de script de login em lote

Eu testei e confirmei que isso funciona como esperado em um ambiente de domínio em um PC Windows com um script de login de uma conta de usuário de domínio.

<your existing batch login script logic up here>
<you will ensure the logic to map the drives has already been run>

SET TmpPSScript=%Temp%\~tmp_RenameDrive.ps1
IF EXIST "%TmpPSScript%" DEL /Q /F "%TmpPSScript%"
ECHO $a = New-Object -ComObject shell.application >>"%TmpPSScript%"
ECHO $a.NameSpace( "H:\" ).self.name = "Homes"    >>"%TmpPSScript%"

SET PowerShellDir=C:\Windows\System32\WindowsPowerShell\v1.0
CD /D "%PowerShellDir%"
Powershell -ExecutionPolicy Bypass -Command "& '%TmpPSScript%'"

EXIT

Recursos adicionais


0



Sadia - Além disso, eu queria adicionar uma vez que você está em um ambiente de domínio do AD, você poderia usar as Preferências de Diretiva de Grupo para mapear unidades de rede com base na associação de grupo de segurança que possui um campo "rótulo" que faz isso para uma rede mapeada unidade em sistemas operacionais Windows. Eu usei esse método e ele funciona solidamente e, uma vez configurado, é apenas uma questão de adicionar a (s) conta (s) de usuário que você deseja ao grupo de segurança. Aqui está um tutorial com captura de tela, etc. ser aplicável ainda a partir do que eu posso dizer configurações sábias com GPP e AD. - Pimp Juice IT