Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Spyder.RV

Nome de computador diferente para cada usuário logado no Win XP

Recommended Posts

Uso o XP com o XPU (http://www.xpunlimited.com), uma estensão para usar várias áreas de trabalho remotas.

 

O problema é que tenho um programa que cria arquivos temporários utilizando o nome de host e o ip do computador em que está rodando. Como todas as instâncias da Área de Trabalho Remota estão rodando no mesmo micro, o host e o ip continuam o mesmo.

 

Tentei então criar um script em VBScript para alterar o nome do computador quando o usuário fizesse login. O Script funciona bem, o prolema é que os a mudança afeta os usuários que já estiverem logados e o nome atualiza neles também!

 

Algéum sabe se existe uma maneira de se configurar um nome de computador para cada usuário logado no micro?

 

__________________________________

Aqui vai o script pra ser avaliado:

 


Set WSHNetwork = CreateObject("Wscript.Network")

nomeDoUsuario = WSHNetwork.UserName

 

'2. Define o nome do Computador

Set WSHShell = CreateObject("WScript.Shell")

nomeDoHost = Left("rdp_" & nomeDoUsuario, 15)

nomeDoHostU = UCase(nomeDoHost)

nomeDoHostL = LCase(nomeDoHost)

 

'3. Altera os dados do

With WSHShell

.RegWrite RegKeyCompName & "ComputerName\ComputerName", nomeDoHostU

.RegWrite RegKeyCompName & "ActiveComputerName\ComputerName", nomeDoHostU

.RegWrite RegKeyTCPIP & "Hostname", nomeDoHostL

.RegWrite RegKeyTCPIP & "NV Hostname", nomeDoHostL

End With

 

wscript.echo "Bem-Vindo " & nomeDoUsuario & VbCrLf & VbCrLf & _

"Tenha um bom dia de trabalho!" & VbCrLf & VbCrLf & VbCrLf & _

"Novo Host... _linenums:0'>Const RegKeyCompName = "HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\"Const RegKeyTCPIP = "HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\" Dim nomeDoUsuario, WSHNetwork, WSHShell, nomeDoHost, nomeDoHostU, nomedoHostL '1. Define o nome do Usuário logadoSet WSHNetwork = CreateObject("Wscript.Network")nomeDoUsuario = WSHNetwork.UserName '2. Define o nome do ComputadorSet WSHShell = CreateObject("WScript.Shell")nomeDoHost = Left("rdp_" & nomeDoUsuario, 15)nomeDoHostU = UCase(nomeDoHost)nomeDoHostL = LCase(nomeDoHost) '3. Altera os dados do With WSHShell .RegWrite RegKeyCompName & "ComputerName\ComputerName", nomeDoHostU .RegWrite RegKeyCompName & "ActiveComputerName\ComputerName", nomeDoHostU .RegWrite RegKeyTCPIP & "Hostname", nomeDoHostL .RegWrite RegKeyTCPIP & "NV Hostname", nomeDoHostLEnd With wscript.echo "Bem-Vindo " & nomeDoUsuario & VbCrLf & VbCrLf & _ "Tenha um bom dia de trabalho!" & VbCrLf & VbCrLf & VbCrLf & _ "Novo Host...: " & nomeDoHostU

Compartilhar este post


Link para o post
Compartilhar em outros sites

Creio que não tem como fazer...Pelo menos que eu saiba não....

Também estou achando que não.... Uma última tentativa vai ser o ACT (Application Compatibility Toolkit) da Microsoft. Parece que ele ajusta algumas operações realizadas pelo programa, principalmente as ações que envolvam o uso das API's do sistema... Dei uma olhada nele mas não achei nenhuma opção para hacker a função GetComputerName/GetComputerNameA que deve ser o que foi usado para recuperar o nome do Computador pelo programa.Alguem sabe como usar esse programa???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ae pessoal,

 

Tô reativando o tópico....

 

Alguem sabe ou já viu algo parecido com o que eu preciso...

 

Confesso que se não precisasse tanto, já teria desistido...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.