none
Scritp WMI RRS feed

  • Pergunta

  •  

    Amigos.

     

    Como posso fazer ou melhor que comandos usar para criar um filtro WMI no qual o mesmo levante se a maquina é uma estação de trabalho ou se a maquina é um servidor, estou criando um ad na empresa que estou e ja estou testando algumas GPO's porem vejo que por exemplo a gpo que atende papel de parede, é aplicada na estação e tb no servidor, ja ouvi falar que com filtros WMI eu posso definir parametros para que a GPO seja aplicada em um lugar x y z e nao seja aplicada em a b c... como fazer, como seria esse scritp.

     

     

    Abraço

     

     

    Obridado.

    segunda-feira, 12 de janeiro de 2009 11:44

Respostas

  • Marcelo

     

    Se o papel de parede for definido por GPO, o ideal é que seja criado um filtro WMI para a aplicação da GPO

     

    Veja o link abaixo, ele vai te ajudar bastante

     

    http://www.computerperformance.co.uk/w2k3/gp/group_WMI_filters.htm

     

     

    abracos

     

    quinta-feira, 15 de janeiro de 2009 12:30
  • Marcelo

     

    Neste caso é melhor voce utilizar a query que esta descrita no site

     

    Select * from Win32_OperatingSystem where Caption = "Microsoft Windows XP Professional"

    Voce pode fazer alterações do tipo aplicar a gpo para os sistemas operacionais windows xp e windows 2000 professional, neste caso a query ficaria

    Select * from Win32_OperatingSystem where Caption = " Microsoft Windows XP Professional and Caption = "Windows 2000 Professional"

     

     

    Seria importante apenas voce confirmar o caption correto das estações antes de adicionar no script, pois na query deve ser escrito o valor exato que é armazenado no S.O.

     

     

    quinta-feira, 15 de janeiro de 2009 14:05

Todas as Respostas

  •  

    Marcelo

     

    Voce pode identificar quem é servidor ou estação atraves do sistema operacional, correto ?

     

    Neste caso voce pode utilizar a clase WMI abaixo

     

     

    strComputer = "."
    Set objWMIService = GetObject("winmgmts:"  & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set colOSes = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
    For Each objOS in colOSes
      OSName =  objOS.Caption
    Next


     

    A partir do resultado de OSName, voce pode tratar qual o sistema operacional que esta na estaçao, e atribuir papel de parede e outras configurações especificas

     

     

    espero que te ajude

    segunda-feira, 12 de janeiro de 2009 15:11
  •  

    Ok Tiago.

     

    Mais como a GPO vai saber que deve se aplicar somente em OS não server ?????

    segunda-feira, 12 de janeiro de 2009 15:16
  • Tiago.

     

    Poderia ficar assim:

     

     

     

    strComputer = "."
    Set objWMIService = GetObject("winmgmts:"  & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set colOSes = objWMIService.ExecQuery("Select * from Win32_OperatingSystem where Caption = Microsoft Windows XP Professional")

     

    segunda-feira, 12 de janeiro de 2009 15:41
  • Ola Marcelo

     

     

    No caso da consulta do seu post, se voce rodar o script em uma estaçao windows server 2003, ela não lhe retornara nada, pois ele so vai retornar um valor quando a estação for windows xp.

     

    eu lhe aconselharia definir a seguinte logica

     

    strComputer = "."
    Set objWMIService = GetObject("winmgmts:"  & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set colOSes = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
    For Each objOS in colOSes
      OSName =  objOS.Caption
    Next

     

    IF OSName = "Windows XP Professional" or OSName = "Windows 2000 Professional" then

    'adicionar bloco de codigo que ira definir o papel de parede

    end if

     

    Seria importante apenas voce executar o script abaixo em uma estação Windows XP e Windows 2000 para saber o valor exato que sera retornado pelo script

     

    strComputer = "."
    Set objWMIService = GetObject("winmgmts:"  & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set colOSes = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
    For Each objOS in colOSes
     wscript.echo  objOS.Caption
    Next

     

     

    Caso voce tenha estações Windows Vista na rede, execute o bloco de script acima em uma estação Windows Vista, marque o valor que sera retornado e adicione mais uma condição no IF

     

    Depois voce pode adicionar este script em uma policy de usuario ou no logon script dos mesmos

     

    abraços....

    terça-feira, 13 de janeiro de 2009 11:40
  • Bom dia Marcelo,

     

    Vc pode tb utilizar a clase Win32_SystemEnclosure na sub-clase ChassisTypes onde:

     

    Value Meaning
    1 Other
    2 Unknown
    3 Desktop
    4 Low Profile Desktop
    5 Pizza Box
    6 Mini Tower
    7 Tower
    8 Portable
    9 Laptop
    10 Notebook
    11 Hand Held
    12 Docking Station
    13 All in One
    14 Sub Notebook
    15 Space-Saving
    16 Lunch Box
    17 Main System Chassis
    18 Expansion Chassis
    19 SubChassis
    20 Bus Expansion Chassis
    21 Peripheral Chassis
    22 Storage Chassis
    23 Rack Mount Chassis
    24 Sealed-Case PC

     

    Para mais detalhes de uma olhada no link abaixo

     

    http://msdn.microsoft.com/en-us/library/aa394474(VS.85).aspx

     

    Grato

     

    Rodrigo Diniz

    terça-feira, 13 de janeiro de 2009 12:44
  • Tiago.

     

    Bom dia.

     

    Cara ok vou testar agora, porem duas perguntas:

     

    meu estou definindo o papel de parede pela gpo e nao por scritp isso altera algo ?

     

    vc colocou que devo colocar o script em uma policy ou no logon script correto mais na policy posso entrar como filtro wmi ou nao ?

     

    Valeu pela força.

     

    quinta-feira, 15 de janeiro de 2009 09:38
  • Marcelo

     

    Se o papel de parede for definido por GPO, o ideal é que seja criado um filtro WMI para a aplicação da GPO

     

    Veja o link abaixo, ele vai te ajudar bastante

     

    http://www.computerperformance.co.uk/w2k3/gp/group_WMI_filters.htm

     

     

    abracos

     

    quinta-feira, 15 de janeiro de 2009 12:30
  • Tiagao

     

    e isso mesmo que quero,, mais o que tenho que mudar no seu script para que ele entre como filtro wmi, pois colocando mesmo por completo ele da erro e nao deixa criar um filtro novo.

    quinta-feira, 15 de janeiro de 2009 12:34
  • Marcelo

     

    Neste caso é melhor voce utilizar a query que esta descrita no site

     

    Select * from Win32_OperatingSystem where Caption = "Microsoft Windows XP Professional"

    Voce pode fazer alterações do tipo aplicar a gpo para os sistemas operacionais windows xp e windows 2000 professional, neste caso a query ficaria

    Select * from Win32_OperatingSystem where Caption = " Microsoft Windows XP Professional and Caption = "Windows 2000 Professional"

     

     

    Seria importante apenas voce confirmar o caption correto das estações antes de adicionar no script, pois na query deve ser escrito o valor exato que é armazenado no S.O.

     

     

    quinta-feira, 15 de janeiro de 2009 14:05
  •  

    Tiago

     

    Valeu pela paciência e pela força.

     

    Obrigado.

    quinta-feira, 15 de janeiro de 2009 15:16
  •  

    Tiago

     

    bom dia.

     

    Cara me da uma força desculpa te ficar tanto no seu pe heheh

     

    eu usei a query

     

    Select * from Win32_OperatingSystem where Caption = " Microsoft Windows XP Professional"

    porem quando log em um xp ou um 2003, o papel de parede nao é definido, e quando eu tiro o filtro da gpo, o papel de parede é definido, o que pode ser... existe alguma coisa sobre idioma, acho que nao seria isso ne, pois o server é eng e a estaçao é brz.

     

    valeu cara...

     

    abaço.

    sexta-feira, 16 de janeiro de 2009 10:52
  • Marcelo

     

    Bom dia

     

    a principio existe um espaço no valor do caption que não pode existir

    Caption = " Microsoft Windows XP Professional"   deveria ficar

    Caption = "Microsoft Windows XP Professional"

     

    por se tratar de uma compração entre string, os espaços em branco serão contados como um caracter valido

     

    veja se é so este o problema, vou testar este filtro aqui e ve se pode haver mais alguma coisa

     

    espero seu retorno blz..

     

     

    sexta-feira, 16 de janeiro de 2009 12:35
  • Macelo

     

    Efetuei um teste aqui e a aplicação da policy por WMI funcionou

     

    Eu utilizei a seguinte query

    select * from w32_operatingsystem where caption = "Microsoft Windows XP Professional"


    Namespace
    root\CIMV2

     

     

    execute o comando gpresult /z nos servidores e estação para ver se a gpo esta sendo atualizada no computador destino e se ela esta sendo aplicada ou filtrada

     

     

    lembre se que esta gpo deve aplicada numa OU que contenha os usuario ou que contenha outra OU que contem os usuarios

     

    abracos

    sexta-feira, 16 de janeiro de 2009 14:58
  • Tiagao

     

    Foi isso mesmo que eu fiz, so nao usei o /z no gpresult vou ver agora ja te falo.

     

    sexta-feira, 16 de janeiro de 2009 15:02
  • Tiago.

     

    E apresentado essa informação na estaçao xp.

     

        Objetos de diretiva de grupo
        aplicados
        -------------------------------------------
            Default Domain Policy
            Diretivas de grupo locais

     

        Os GPOs a seguir não foram aplicados porque foram filtrados
        ------------------------------------------------------------
            pp  --- nome da gpo de teste do papel de parede
                Filtragem:  Negado (filtro WMI)
          Filtro WMI: OS Select

     
    sexta-feira, 16 de janeiro de 2009 15:07
  •  

    Marcelo

     

     

    Na minha estação tambem apareceu isto,  porem a gpo foi aplicada

     

     

    sexta-feira, 16 de janeiro de 2009 16:56
  • Estranho Tiagoa.

     

    aqui o papel de parede nao mudou, essas duas variavies podem ser causadoras disso ?

     

    a conta a qual esta sendo usada como teste é uma conta que tb é administradora do dominio e esta na OU aonde a gpo foi lincada, eu acho que nao mais...

     

    e a outra coisa é que a gpo esta fazendo referencia a um jpg que esta em um caminho na rede, que tb creio que nao seja o problema pois se eu tiro o filtro, o papel de parede troca.

     

    muito estranho.

     

     

    sexta-feira, 16 de janeiro de 2009 17:47
  • Senhores,

    Me desculpem a intromissão, mas deixe-me ver se eu entendi.

    Marcelo, você quer que uma GPO seja aplicada só para usuários de desktop e não para usuários de servidor, certo? Por exemplo:

    Você tem dois usuários, um que é o simples (não administrador de domínio) que você usa no seu desktop e o outro que é o de administrador de domínio, certo? 

    Não sei como é a sua empresa, se vocês tem Wk3 que são members server (por exemplo um servidor de intranet) e tb não sei qual a importância de uma configuração não ser aplicada no servidor. Mas acho que o ponto chave do seu problema seja o desenho da gpo, ou seja, para quem (OUs) ela se aplica.

    Dependendo da maneira que esteja estruturado o seu AD, você pode aplicar uma GPO diretamente na OU desejada. Algo como você querer que os micros da recepção sejam os únicos da rede com um papel de parede com o logo da empresa. Você teria uma OU RECEPÇÃO e lá você colocaria os usuários que pertencem à recepção, linkaria a GPO lá e pronto, sem necessitar de um filtro WMI.

    Peço desculpas ao Tiago pois a pergunta foi realmente sobre Script WMI e o Tiago foi perfeito na explicação, mas sinto que talvez o problema esteja mesmo no desenho da gpo.

    Espero ter ajudado com essas observações.

    Sucesso.

    Evandro
    quarta-feira, 21 de janeiro de 2009 03:13
  • Marcelo

     

    Desculpe esta respondendo so agora, estou meio sem tempo

     

    a respeito do filtro não esta aplicando, pode ser algum problema de WMI na estação

     

    Não tive muito tempo para pesquisar, mas tem uma ferramenta da microsoft chamada wmi diagnostic, ela ira testar o WMI da estação e caso tenha algum problema ele lhe informa

     

     

    abraços

     

    segunda-feira, 26 de janeiro de 2009 01:47