none
Colher o ID do Windows RRS feed

  • 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.
    terça-feira, 15 de dezembro de 2009 18:48

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
    quarta-feira, 16 de dezembro de 2009 15:14

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"
    quarta-feira, 16 de dezembro de 2009 00:24
  • 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 ?

    quarta-feira, 16 de dezembro de 2009 10:47
  • 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


    quarta-feira, 16 de dezembro de 2009 12:38
  • 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.
    quarta-feira, 16 de dezembro de 2009 13:00
  • 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


    quarta-feira, 16 de dezembro de 2009 13:04
  • Opa hehe faltou o script tche..

    Abraço.
    quarta-feira, 16 de dezembro de 2009 13:08
  • agora sim vou testar.
    quarta-feira, 16 de dezembro de 2009 13:09
  • Jesiel.

    Esse product ID que ele apresenta é o GUID da estação em relação ao dominio ? ou seja quando é feito um ghost de uma maquina e baixado em outra, sem rodar o sysprep esse Product ID será o mesmo entre elas ?
    quarta-feira, 16 de dezembro de 2009 13:11
  • 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
    quarta-feira, 16 de dezembro de 2009 15:14
  • Mais uma vez obrigado meu grande amigo e esse mesmo que quero.
    quarta-feira, 16 de dezembro de 2009 18:04