none
Criar mapeamento remoto. RRS feed

  • Pergunta

  • Ba galera.

    Atuamente estou usando um script que utiliza o rundll32 printui.dll,PrintUIEntry para instalar um impressora remotamente em uma estação, alguem sabe me dizer o que eu posso usar tche para criar um mapeamento em uma estação remota, sem ser logon script tche.

    obrigado.

    quarta-feira, 10 de julho de 2013 12:53

Respostas

  • Marcelo

    Bom dia.

    Existe uma chamada ao rundll32 que pode lhe ajudar, porem a mesma vai trazer a tela de configuração ou seja não ira criar o mapeamento sozinho, dependera de uma ação do usuário, o comando para seu conhecimento é RunDll32.exe shell32.dll,SHHelpShortcuts_RunDLL Connect.

    Seguindo o caminho passado pelo amigo Banys, vc pode criar o ponteiro no registro da estação de destino, e após um logoff do usuário, o mapeamento estará visível para o mesmo, acho que vale apena testar, ao meu ver seria a melhor saída para o seu caso.

    Segue um código para ajuda-lo, qualquer coisa post aqui.

    Abraço, boa sorte.

    Const HKEY_CURRENT_USER  = &H80000001
    
    Set WshShell = WScript.CreateObject("WScript.Shell")
    
    	Do While strComputer=""
    		strComputer = InputBox ("Digite o nome da Estação:","..:: Configurador ::..")
    		If VarType(strComputer) = 0 Then WScript.Quit(1)
    	Loop
    	
    	Do While Input1 = ""
    		Input1 = InputBox("Informe a letra do mapeamento:","..:: Configurador ::..") 
    		If VarType(Input1) = 0 Then WScript.Quit(1)
    	Loop
    	
    	Do While Input2 = ""
    		Input2 = InputBox("Informe o caminho de rede:","..:: Configurador ::..") 
    		If VarType(Input2) = 0 Then WScript.Quit(1)	
    	Loop
    	
    	Input3 = "Microsoft Windows Network"
    	Input4 = "1"
    	Input5 = "4"
    	Input6 = "131072"
    	Input7 = "0"
    
    Set WshShell = CreateObject("WScript.Shell")
    
    Set objReg=GetObject( _
        "winmgmts:{impersonationLevel=impersonate}!\\" & _
        strComputer & "\root\default:StdRegProv")
    
    strKeyPath = "Network\" & Input1
    objReg.CreateKey HKEY_CURRENT_USER,strKeyPath
    
    strValueName1 = "ConnectionType"
    strValueName2 = "DeferFlags"
    strValueName3 = "ProviderName"
    strValueName4 = "ProviderType"
    strValueName5 = "RemotePath"
    strValueName6 = "UserName"
    
    objReg.SetDWORDValue HKEY_CURRENT_USER,_
        strKeyPath,strValueName1,Input4
        
    objReg.SetDWORDValue HKEY_CURRENT_USER,_
        strKeyPath,strValueName2,Input5    
        
    objReg.SetStringValue HKEY_CURRENT_USER,_
        strKeyPath,strValueName3,Input3
    
    objReg.SetDWORDValue HKEY_CURRENT_USER,_
        strKeyPath,strValueName4,Input6
            
    objReg.SetStringValue HKEY_CURRENT_USER,_
        strKeyPath,strValueName5,Input2
        
    objReg.SetDWORDValue HKEY_CURRENT_USER,_
        strKeyPath,strValueName6,Input7    
        
    			Msg = Msg & " " & Chr(10)		
    			Msg = Msg & "O processo foi executado, favor solicitar ao usuário, que efetue um logoff para concluir a ação." & Chr(10)
    			Msg = Msg & " " & Chr(10)
    			msgbox msg,64,"..:: Configurador ::.."	

    Your potential. Our passion - Microsoft

    • Marcado como Resposta Marcelo TI sexta-feira, 12 de julho de 2013 11:49
    sexta-feira, 12 de julho de 2013 10:28

Todas as Respostas

  • Ba galera, não tem uma forma via wmi ou alguma chamada do rundll32 que me perminta conectar em uma maquina remota, e criar uma unidade para um caminho de rede tche.

    valeu galera.

    quarta-feira, 10 de julho de 2013 23:28
  • Realmente Marcelo,

     

    WMI para fazer isso remotamente não rola, além disso o mapeamente está associado ao usuário, mesmo que conseguisse só teria efeito no perfil de quem executou.

     

    Vc pode criar um script de faça isso diretamente no regedit, basta saber a chave onde deverá inserir o valor. Outro detalhe é carregar o perfil de cada usuário no regedit para alimentar em cada um deles o mapeamento desejado.

    <object height="0" id="ca289ada-9a7b-aaad-bb4a-9990d9a896b9" style=";left:0px;top:0px;" type="application/gas-events-bb" width="0"></object>
    quinta-feira, 11 de julho de 2013 02:30
  • Banys

    obrigado pelo retorno tche, mas será que nao tem outra forma, uma chamada passada ao rundll32 ?

    quinta-feira, 11 de julho de 2013 15:24
  • Marcelo

    Bom dia.

    Existe uma chamada ao rundll32 que pode lhe ajudar, porem a mesma vai trazer a tela de configuração ou seja não ira criar o mapeamento sozinho, dependera de uma ação do usuário, o comando para seu conhecimento é RunDll32.exe shell32.dll,SHHelpShortcuts_RunDLL Connect.

    Seguindo o caminho passado pelo amigo Banys, vc pode criar o ponteiro no registro da estação de destino, e após um logoff do usuário, o mapeamento estará visível para o mesmo, acho que vale apena testar, ao meu ver seria a melhor saída para o seu caso.

    Segue um código para ajuda-lo, qualquer coisa post aqui.

    Abraço, boa sorte.

    Const HKEY_CURRENT_USER  = &H80000001
    
    Set WshShell = WScript.CreateObject("WScript.Shell")
    
    	Do While strComputer=""
    		strComputer = InputBox ("Digite o nome da Estação:","..:: Configurador ::..")
    		If VarType(strComputer) = 0 Then WScript.Quit(1)
    	Loop
    	
    	Do While Input1 = ""
    		Input1 = InputBox("Informe a letra do mapeamento:","..:: Configurador ::..") 
    		If VarType(Input1) = 0 Then WScript.Quit(1)
    	Loop
    	
    	Do While Input2 = ""
    		Input2 = InputBox("Informe o caminho de rede:","..:: Configurador ::..") 
    		If VarType(Input2) = 0 Then WScript.Quit(1)	
    	Loop
    	
    	Input3 = "Microsoft Windows Network"
    	Input4 = "1"
    	Input5 = "4"
    	Input6 = "131072"
    	Input7 = "0"
    
    Set WshShell = CreateObject("WScript.Shell")
    
    Set objReg=GetObject( _
        "winmgmts:{impersonationLevel=impersonate}!\\" & _
        strComputer & "\root\default:StdRegProv")
    
    strKeyPath = "Network\" & Input1
    objReg.CreateKey HKEY_CURRENT_USER,strKeyPath
    
    strValueName1 = "ConnectionType"
    strValueName2 = "DeferFlags"
    strValueName3 = "ProviderName"
    strValueName4 = "ProviderType"
    strValueName5 = "RemotePath"
    strValueName6 = "UserName"
    
    objReg.SetDWORDValue HKEY_CURRENT_USER,_
        strKeyPath,strValueName1,Input4
        
    objReg.SetDWORDValue HKEY_CURRENT_USER,_
        strKeyPath,strValueName2,Input5    
        
    objReg.SetStringValue HKEY_CURRENT_USER,_
        strKeyPath,strValueName3,Input3
    
    objReg.SetDWORDValue HKEY_CURRENT_USER,_
        strKeyPath,strValueName4,Input6
            
    objReg.SetStringValue HKEY_CURRENT_USER,_
        strKeyPath,strValueName5,Input2
        
    objReg.SetDWORDValue HKEY_CURRENT_USER,_
        strKeyPath,strValueName6,Input7    
        
    			Msg = Msg & " " & Chr(10)		
    			Msg = Msg & "O processo foi executado, favor solicitar ao usuário, que efetue um logoff para concluir a ação." & Chr(10)
    			Msg = Msg & " " & Chr(10)
    			msgbox msg,64,"..:: Configurador ::.."	

    Your potential. Our passion - Microsoft

    • Marcado como Resposta Marcelo TI sexta-feira, 12 de julho de 2013 11:49
    sexta-feira, 12 de julho de 2013 10:28
  • Ba Leandrão.

    Muito obrigado tche, rolou desta forma que vc passou, não foi da forma que eu desejava mas atende a demanda tche.

    sexta-feira, 12 de julho de 2013 11:49
  • Marcelo,

     

    não vejo outra forma transparente que não dependa do logon para tornar visível o mapeamento desejado.

    quarta-feira, 17 de julho de 2013 02:12