Usuário com melhor resposta
MAC e SERIAL HD

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.
Respostas
-
Tiago, eu fiz algumas modificações no seu script, como segue abaixo.
Code SnippetDim StrComputer, strMacAddress, strTexto
Set objComputer = CreateObject("Shell.LocalMachine")
StrComputer = objComputer.MachineNameSet 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.CloseSe 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!
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!
-
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 = &h20arrComputers = 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 -
-
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
NextFunction WriteLog (Text)
ObjFileAppending.WriteLine Text
End Function -
Tiago, eu fiz algumas modificações no seu script, como segue abaixo.
Code SnippetDim StrComputer, strMacAddress, strTexto
Set objComputer = CreateObject("Shell.LocalMachine")
StrComputer = objComputer.MachineNameSet 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.CloseSe 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!