Como você já tem uma lógica do PowerShell que funciona como você confirmou e precisa saber como fazer isso funcionar a partir do script de login, basta anexar o exemplo lógico fornecido abaixo com sua lógica 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 logon Script por meio de Usuários e Computadores do Active Directory que você pode analisar para obter mais detalhes detalhados sobre a 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 Execute um arquivo VBScript aqui para ver o exemplo objShell.Run "c:\batch\test.cmd"
, mas você criaria e apontaria 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