Usuário com melhor resposta
Colher o ID do Windows

Pergunta
-
Ba galera.
Estou procurando mais não no registro e tb não encontrei nenhum vbs que consiga colher da estação o GUID do Windows e o sistema operacional em questao da maquina jogar em um txt.
Estou necessitanto realizar esse levantamento para saber quantas maquinas no meu paq feitas pelos meus amigos estagiarios por ghost, que não foi utilizado o sysprep para realizar o processo de criação de um novo ID para estação, crio que boa tarde dos problemas que estou tendo vem dessa pequena falha dos meus amigos tche.
Alguem teria uma luz que poderia me ajudar..
Ba tche.
Valeu galera.
Respostas
-
Olá,
Marcelo... não... esse é o ID de instalação do S.O.
O SID do computador no dominio, verifique o script abaixo:
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colAccounts = objWMIService.ExecQuery _
("Select * From Win32_UserAccount Where LocalAccount=True")
Result = ""
For Each objAccount in colAccounts
If Left (objAccount.SID, 6) = "S-1-5-" and Right(objAccount.SID, 4) = "-500" Then
wscript.echo objAccount.SID
End If
Next
Ou faça o download do psgetsid:
http://technet.microsoft.com/en-us/sysinternals/bb897417.aspx
A sintaxe é psgetsid \\computador
Até mais,
Jesiel
Obs.: Se útil, classifique
- Marcado como Resposta Marcelo TI quarta-feira, 16 de dezembro de 2009 18:03
Todas as Respostas
-
Marcelo, boa noite.
Veja se é isso.
Lembrando que a saída ficará assim:
BOCKORNY;{8B04C482-248E-44B5-XXXX-6F55FEAE2C2C}
Coloquei assim caso vc precise importar para uma planilha do excel, ficaria mais facil de ter controle ou gerar umrelatórios.
'Local para saida do arquivo TXT
strLog = "./StrGUID.txt"
Set WshShell = WScript.CreateObject("WScript.Shell")
set FSo = CreateObject("Scripting.FileSystemObject")
Set ArqLog = FSO.OpenTextFile(strLog, 8, True, 0)strCompName = WshShell.ExpandEnvironmentStrings("%COMPUTERNAME%")
Set TypeLib = CreateObject("Scriptlet.TypeLib")
NewGUID = TypeLib.Guid
strGUID = (left(NewGUID, len(NewGUID)-2))ArqLog.WriteLine strcompname&";"&strGUID
ArqLog.Close()
Set TypeLib = Nothing
Poste os resultados e se útil classifique!
[]s,
" Qm tem boca vai a roma, meu fogão tem 6 e não saiu da cozinha ainda" -
Marcellus.
Cara tche, obrigado pela sua resposta mais dessa forma eu não tenho tenho a realidade pois cada vez que o mesmo é executado, um novo GUID é criado, e o que quero é levantar o GUID atual sem mudar ou criar um novo de forma automatica, tem como fazer assim somente levantar o GUID atual ???E vc sabe ou alguem sabe o que eu posso fazer nesse script para que o mesmo colha o Sistema Operacional ?
-
Olá,
Você quer o GUID do usuário???
Se for isso, verifique o script abaixo:
Set WshNetwork = WScript.CreateObject("WScript.Network")
Set oADSystemInfo = CreateObject("ADSystemInfo")
Set oADsUser = GetObject("LDAP://" & oADSystemInfo.UserName)
wscript.echo oADsUser.GUID
Até mais,
Jesiel
Obs.: Se útil, classifique
-
Grande amigo Jesiel.
Obrigado pela sua resposta mais o GUID que estou necessitando levantar é o do Windows, o da instalação do Windows, pois ja orientei meus amigos tche para toda vez que baixar um ghost rodar o sysprep mais isso nao esta acontecendo e estou necessitando saber quais maquinas tem o mesmo GUID para que assim eu possa solicitar que seja rodado o sysprep nelas...
Abraço. -
Olá,
Seria o ID da instalação então?
Dá uma olhada neste script:
DIM fso, WriteFile
Set fso = CreateObject("Scripting.FileSystemObject")
Set WriteFile = fso.CreateTextFile("CDKEY.txt", True)
Set WshShell = CreateObject("wscript.Shell")
Set WshNetwork = WScript.CreateObject("WScript.Network")
Set env = WshShell.environment("Process")
strComputer = env.Item("Computername")
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Const HKEY_LOCAL_MACHINE = &H80000002
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &_
".\root\default:StdRegProv")
strDigitalProductId="HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DigitalProductId"
strxpKey=GetKey(WshShell.RegRead(strDigitalProductId))
Set colItems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem",,48)
For Each objItem in colItems
report = report & "- Product ID: "& objItem.SerialNumber & vbCrLf
WriteFile.WriteLine("Product ID:" & objItem.SerialNumber)
WriteFile.Close
Next
MsgBox report
Function GetKey(rpk)
Const rpkOffset=52:i=28
szPossibleChars="BCDFGHJKMPQRTVWXY2346789"
Do 'While Rep1
dwAccumulator=0 : j=14
Do
dwAccumulator=dwAccumulator*256
dwAccumulator=rpk(j+rpkOffset)+dwAccumulator
rpk(j+rpkOffset)=(dwAccumulator\24) and 255
dwAccumulator=dwAccumulator Mod 24
j=j-1
Loop While j>=0
i=i-1 : szProductKey=mid(szPossibleChars,dwAccumulator+1,1)&szProductKey
if (((29-i) Mod 6)=0) and (i<>-1) then
i=i-1 : szProductKey="-"&szProductKey
End If
Loop While i>=0 'Goto Rep1
GetKey=szProductKey
End Function
Até mais,
Jesiel
Obs.: Se útil, classifique
-
-
-
-
Olá,
Marcelo... não... esse é o ID de instalação do S.O.
O SID do computador no dominio, verifique o script abaixo:
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colAccounts = objWMIService.ExecQuery _
("Select * From Win32_UserAccount Where LocalAccount=True")
Result = ""
For Each objAccount in colAccounts
If Left (objAccount.SID, 6) = "S-1-5-" and Right(objAccount.SID, 4) = "-500" Then
wscript.echo objAccount.SID
End If
Next
Ou faça o download do psgetsid:
http://technet.microsoft.com/en-us/sysinternals/bb897417.aspx
A sintaxe é psgetsid \\computador
Até mais,
Jesiel
Obs.: Se útil, classifique
- Marcado como Resposta Marcelo TI quarta-feira, 16 de dezembro de 2009 18:03
-