none
Ajudinha de script.... RRS feed

  • Pergunta

  • Pessoal... alguém tem um script legal que me retorno os nomes das máquinas na minha rede, IP, e MAC ? em lista.. ex

    nome               IP                        MAC

    maq_0101     192.168.1.102  20501255544

     

     

    SDS

     

    José

    sexta-feira, 12 de janeiro de 2007 18:06

Respostas

  •  

    Primeiro o script que retorna as informações:


    On error resume next

    strComputer = wscript.arguments(0)
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")


    Set colAdapters = objWMIService.ExecQuery _
        ("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")

    'Os valores estão separados por tab
    For Each objAdapter in colAdapters
     wscript.echo strComputer & vbtab & _
           objAdapter.IPAddress(0) & vbtab & _
           objAdapter.MACAddress
          
    Next

    Para utilizá-lo digite no prompt: cscript teste.vbs nomedaestacao

     

    Se quiser um arquivo com informações de várias máquina:

    1-coloque em um arquivo o nome das máquinas (ex: estacoes.txt )

    2-No prompt de comando digite:

    for /F %M in (estacoes.txt) do cscript teste.vbs %M //nologo>>minhalista.txt

    O For vai ler todas as máquinas do arquivo executando o teste.vbs .

    O ">>" vai adicionar a saida do comando para o arquivo minhalista.txt

     

    sexta-feira, 12 de janeiro de 2007 19:45
    Moderador
  • Só pra complementar:

    A listaq de máquinas você pode obter usando a própria interface gráfica... exportando a lista que aparece no Active directory Users and Computers.

    Daí é só seguir uma das dicas que foram passadas. Eu tenho mais uma, usando o Windows Powershell:

    cat lista.txt | foreach {
        $ips = (get-wmiobject -computerName $_ -class win32_networkadapterconfiguration | where {$_.ipenabled}).ipAddress
        $mac = (get-wmiobject -computerName $_ -class win32_networkadapterconfiguration | where {$_.ipenabled}).macaddress

        [String]::Join(' ',@($_,$ips,$mac))
    } >> lista-enderecos.txt

    Vale digitar no Powershell ou colocar num script com extensão .PS1. Se você notar, meu script toma como base um arquivo chamado lista.txt, que nada mais é do que um arquivo com os nomes dos computadores, um embaixo do outro.

    []s,

    --
    Vinicius Canto <scripterbr_at_gmail_dot_com>
    MVP Visual Developer - Scripting
    MCP Windows 2000 Server, Windows XP e SQL Server 2000
    Blog sobre Scripting: http://viniciuscanto.blogspot.com

    domingo, 14 de janeiro de 2007 03:54
    Moderador
  • A linha acima não é pra ser colocada em um VBS... é uma linha de comando comum, do prompt de comandos... poderia no máximo colocar em um arquivo .BAT.


    []s,


    --
    Vinicius Canto <scripterbr_at_gmail_dot_com>
    MVP Visual Developer - Scripting
    MCP Windows 2000 Server, Windows XP e SQL Server 2000
    Blog sobre Scripting: http://viniciuscanto.blogspot.com

    segunda-feira, 15 de janeiro de 2007 12:29
    Moderador
  • Vc tá usando o COMMAND ou o CMD?

    []s,

    --
    Vinicius Canto <scripterbr_at_gmail_dot_com>
    MVP Visual Developer - Scripting
    MCP Windows 2000 Server, Windows XP e SQL Server 2000
    Blog sobre Scripting: http://viniciuscanto.blogspot.com

    segunda-feira, 15 de janeiro de 2007 17:58
    Moderador

Todas as Respostas

  •  

    Primeiro o script que retorna as informações:


    On error resume next

    strComputer = wscript.arguments(0)
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")


    Set colAdapters = objWMIService.ExecQuery _
        ("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")

    'Os valores estão separados por tab
    For Each objAdapter in colAdapters
     wscript.echo strComputer & vbtab & _
           objAdapter.IPAddress(0) & vbtab & _
           objAdapter.MACAddress
          
    Next

    Para utilizá-lo digite no prompt: cscript teste.vbs nomedaestacao

     

    Se quiser um arquivo com informações de várias máquina:

    1-coloque em um arquivo o nome das máquinas (ex: estacoes.txt )

    2-No prompt de comando digite:

    for /F %M in (estacoes.txt) do cscript teste.vbs %M //nologo>>minhalista.txt

    O For vai ler todas as máquinas do arquivo executando o teste.vbs .

    O ">>" vai adicionar a saida do comando para o arquivo minhalista.txt

     

    sexta-feira, 12 de janeiro de 2007 19:45
    Moderador
  • Só pra complementar:

    A listaq de máquinas você pode obter usando a própria interface gráfica... exportando a lista que aparece no Active directory Users and Computers.

    Daí é só seguir uma das dicas que foram passadas. Eu tenho mais uma, usando o Windows Powershell:

    cat lista.txt | foreach {
        $ips = (get-wmiobject -computerName $_ -class win32_networkadapterconfiguration | where {$_.ipenabled}).ipAddress
        $mac = (get-wmiobject -computerName $_ -class win32_networkadapterconfiguration | where {$_.ipenabled}).macaddress

        [String]::Join(' ',@($_,$ips,$mac))
    } >> lista-enderecos.txt

    Vale digitar no Powershell ou colocar num script com extensão .PS1. Se você notar, meu script toma como base um arquivo chamado lista.txt, que nada mais é do que um arquivo com os nomes dos computadores, um embaixo do outro.

    []s,

    --
    Vinicius Canto <scripterbr_at_gmail_dot_com>
    MVP Visual Developer - Scripting
    MCP Windows 2000 Server, Windows XP e SQL Server 2000
    Blog sobre Scripting: http://viniciuscanto.blogspot.com

    domingo, 14 de janeiro de 2007 03:54
    Moderador
  • Opa blz...

     

    É isso aí....

    Só está dando erro quando eu tento fazer o For dentro de um próprio arquivo VBS... e não estou conseguindo  quando eu tento

     

    colocar em VBS

    for /F %M in (estacoes.txt) do cscript teste.vbs %M //nologo>>minhalista.txt

    era isperado comando....

     

     

    segunda-feira, 15 de janeiro de 2007 11:13
  • A linha acima não é pra ser colocada em um VBS... é uma linha de comando comum, do prompt de comandos... poderia no máximo colocar em um arquivo .BAT.


    []s,


    --
    Vinicius Canto <scripterbr_at_gmail_dot_com>
    MVP Visual Developer - Scripting
    MCP Windows 2000 Server, Windows XP e SQL Server 2000
    Blog sobre Scripting: http://viniciuscanto.blogspot.com

    segunda-feira, 15 de janeiro de 2007 12:29
    Moderador
  • opa.. desculpe minha ignorância é que não conheço muito de vbscript..

     

    seguinte... tentei na linha de comando...

    ele me má um retorno assim :

    estacoes.txt  foi inesperado neste momento

     

    o que será .. ?

     

     

    segunda-feira, 15 de janeiro de 2007 12:39
  • Testei e aqui funciona perfeitamente.
    Vamos aos testes:

    1) Você digitou corretamente o comando, do jeito que tá lá?

    2) Você está no mesmo diretório do arquivo estacoes.txt e ele tem a lista de máquinas a ser varrida?


    []s,

    --
    Vinicius Canto <scripterbr_at_gmail_dot_com>
    MVP Visual Developer - Scripting
    MCP Windows 2000 Server, Windows XP e SQL Server 2000
    Blog sobre Scripting: http://viniciuscanto.blogspot.com

    segunda-feira, 15 de janeiro de 2007 13:46
    Moderador
  • opa blz..

     

    sim.. digitei como está lá....

    os dois arquivos estão no mesmo diretório... e nesta lista está o nome das máquinas a serem varridas...

    o que será.. que eu fiz de errado .?

     

     

    segunda-feira, 15 de janeiro de 2007 13:53
  • Vc tá usando o COMMAND ou o CMD?

    []s,

    --
    Vinicius Canto <scripterbr_at_gmail_dot_com>
    MVP Visual Developer - Scripting
    MCP Windows 2000 Server, Windows XP e SQL Server 2000
    Blog sobre Scripting: http://viniciuscanto.blogspot.com

    segunda-feira, 15 de janeiro de 2007 17:58
    Moderador
  • Opa

     

      Nas duas opção dá a mesma mensagem de erro : Rede.txt foi inesperado neste momento....

     

    segunda-feira, 15 de janeiro de 2007 18:05
  • Obrigado pela ajuda pessoal, foi útil
    segunda-feira, 15 de janeiro de 2007 21:32
  • Afinal de contas, funcionou ou não?

    []s,

    --
    Vinicius Canto <scripterbr_at_gmail_dot_com>
    MVP Visual Developer - Scripting
    MCP Windows 2000 Server, Windows XP e SQL Server 2000
    Blog sobre Scripting: http://viniciuscanto.blogspot.com

    terça-feira, 16 de janeiro de 2007 02:27
    Moderador