none
MAC e SERIAL HD RRS feed

  • Pergunta

  •  

    Boa Tarde Pessoal!

     

    Gostaria de saber se é possivel um Script que obtem o MAC ADDRESS e o SERIAL DO HD esse script vou rodar em cada maquina e essas informaçoes vou pegacadastra-la no meu software para bolar uma Proteçao do meu software se alguem puder me ajudar agradeço esse script vou fazer com que meu Software rode  nas estaçoes que forem utilizar meu software.

    segunda-feira, 8 de setembro de 2008 18:20

Respostas

  • Tiago, eu fiz algumas modificações no seu script, como segue abaixo.

     

    Code Snippet

    Dim StrComputer, strMacAddress, strTexto

    Set objComputer = CreateObject("Shell.LocalMachine")  
    StrComputer = objComputer.MachineName

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


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

    For Each objAdapter in colAdapters
     strMacAddress = strMacAddress & objAdapter.MACAddress
    Next

    ' Guarda informação para incluir no arquivo
    strTexto = "==========================================" & vbCrLf &_
    "Nome do Computador: "& StrComputer & vbCrLf &_
    "==========================================" & vbCrLf &_
    "MacAddress: "& strMacAddress & vbCrLf


    ' Grava o arquivo
    Const ForAppending = 8
    FileLog = "Adapter.txt"
    Set ObjFSO = CreateObject("Scripting.FileSystemObject")
    Set ObjFileAppending = ObjFSO.OpenTextFile(FileLog, ForAppending, True)
    ObjFileAppending.WriteLine(strTexto)
    ObjFileAppending.Close

     

     

    Se vc quer gravar esse arquivo no servidor mude a variável fileLog para algo neste sentido...

    fileLog = "\\servidor\pasta\Adapter.txt"

     

    Certifique-se que a pasta compartilhada no servidor possui permissão de escrita para todos os usuários.

     

    Abs!

    terça-feira, 9 de setembro de 2008 18:25

Todas as Respostas

  • Olá Tiago.

     

    Faça o download do Scriptomatic da Microsoft. Ele irá te auxiliar a criar o script que você precisa.

    Veja a classe Win32_NetworkAdapter para pegar o(s) MacAddress e Win32_LogicalDisk para o serial do HD.

     

    Uma dica: o serial do HD ao ser formatado, ele muda. E se é feito 'ghost' de um HD para outro, o serial fica o mesmo tbm!

     

    Abs!

     

    segunda-feira, 8 de setembro de 2008 20:33
  • Bom Eduardo.

     

    Vlw mesmo pela dica so que agora estou so com um problema na parte onde marquei em azul gostaria de saber se tem como o script pegar o nome da maquina automaticamente sem eu precisar colocar o nome da maquina para executar corretamente o script.

     

    On Error Resume Next

    Const wbemFlagReturnImmediately = &h10
    Const wbemFlagForwardOnly = &h20

    arrComputers = Array("MICRO1")
    For Each strComputer In arrComputers
       WScript.Echo
       WScript.Echo "=========================================="
       WScript.Echo "Computer: " & strComputer
       WScript.Echo "=========================================="

       Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
       Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapter", "WQL", _
                                              wbemFlagReturnImmediately + wbemFlagForwardOnly)

       For Each objItem In colItems
          WScript.Echo "MACAddress: " & objItem.MACAddress

          WScript.Echo
       Next
    Next


    Function WMIDateStringToDate(dtmDate)
    WScript.Echo dtm:
     WMIDateStringToDate = CDate(Mid(dtmDate, 5, 2) & "/" & _
     Mid(dtmDate, 7, 2) & "/" & Left(dtmDate, 4) _
     & " " & Mid (dtmDate, 9, 2) & ":" & Mid(dtmDate, 11, 2) & ":" & Mid(dtmDate,13, 2))
    End Function

    terça-feira, 9 de setembro de 2008 12:03
  •  

    Olá Tiago.

     

    Utilize "." (PONTO) para indicar que a estação que você quer pegar os dados é a atual...

     

    arrComputers = Array(".")

    terça-feira, 9 de setembro de 2008 13:32
  • Bom Paulo,

     

    Com esse Codigo fonte que acabei montando eu estou gerando um txt com o macaddress da placa esse TXT que gera tem como eu gerar ele numa maquina da rede como por ex: o SERVIDOR?

     

    On error resume next

    Dim objNetwork
    Set WshNetwork = WScript.CreateObject("WScript.Network")

    StrComputer = "." 'Computador a ser verificado
    FileLog = "Adapter.txt"
    ActionList = "yes"
    Set ObjFSO = CreateObject("Scripting.FileSystemObject")
    Const ForReading = 1, ForWriting = 2, ForAppending = 8
    Set ObjFileRead = ObjFSO.opentextfile(FileLog, ForReading, True)
    Set ObjFileAppending = ObjFSO.opentextfile(FileLog, ForAppending, True)
    Set objNetwork = CreateObject("WScript.Network") 

    WScript.Echo
       WScript.Echo "=========================================="
    Set objComputer = CreateObject("Shell.LocalMachine")  
    WScript.Echo "Nome do Compututador = " & objComputer.MachineName
    strComputer = "."
       WScript.Echo "=========================================="

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


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

    For Each objAdapter in colAdapters

    wscript.echo objAdapter.MACAddress
    WriteLog i & objAdapter.MACAddress
       
    Next

    Function WriteLog (Text)
     ObjFileAppending.WriteLine Text
    End Function

    terça-feira, 9 de setembro de 2008 14:01
  • Tiago, eu fiz algumas modificações no seu script, como segue abaixo.

     

    Code Snippet

    Dim StrComputer, strMacAddress, strTexto

    Set objComputer = CreateObject("Shell.LocalMachine")  
    StrComputer = objComputer.MachineName

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


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

    For Each objAdapter in colAdapters
     strMacAddress = strMacAddress & objAdapter.MACAddress
    Next

    ' Guarda informação para incluir no arquivo
    strTexto = "==========================================" & vbCrLf &_
    "Nome do Computador: "& StrComputer & vbCrLf &_
    "==========================================" & vbCrLf &_
    "MacAddress: "& strMacAddress & vbCrLf


    ' Grava o arquivo
    Const ForAppending = 8
    FileLog = "Adapter.txt"
    Set ObjFSO = CreateObject("Scripting.FileSystemObject")
    Set ObjFileAppending = ObjFSO.OpenTextFile(FileLog, ForAppending, True)
    ObjFileAppending.WriteLine(strTexto)
    ObjFileAppending.Close

     

     

    Se vc quer gravar esse arquivo no servidor mude a variável fileLog para algo neste sentido...

    fileLog = "\\servidor\pasta\Adapter.txt"

     

    Certifique-se que a pasta compartilhada no servidor possui permissão de escrita para todos os usuários.

     

    Abs!

    terça-feira, 9 de setembro de 2008 18:25