none
Ativar serviço "mensageiro" RRS feed

  • Pergunta

  •  

    Olá a todos,

     

    Alguém pode me dizer como montar um script para colocar todas as estações do domínio com o serviço "Mensageiro" para automático?

     

    Desde já agradeço a ajuda e uma ótima semana a todos.

     

    Wagner

    segunda-feira, 13 de agosto de 2007 15:37

Respostas

  • Wagner, este script executa uma busca em todas as máquinas do seu AD e efetua a mudança o mensageiro para Automático e inicia o serviço.

     

     

     

    On error Resume next

    Const ADS_SCOPE_SUBTREE = 2

    Set objConnection = CreateObject("ADODB.Connection")
    Set objCommand =   CreateObject("ADODB.Command")
    objConnection.Provider = "ADsDSOObject"
    objConnection.Open "Active Directory Provider"

    Set objCOmmand.ActiveConnection = objConnection
    objCommand.CommandText = _
        "Select Name, Location from 'LDAP://DC=SEUDOMINIO,DC=com,DC=br' " _
            & "Where objectClass='computer'" 
    objCommand.Properties("Page Size") = 1000
    objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
    Set objRecordSet = objCommand.Execute
    objRecordSet.MoveFirst

    Do Until objRecordSet.EOF


        strComputer = objRecordSet.Fields("Name").Value

        Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
        Set colListOfServices = objWMIService.ExecQuery("Select * from Win32_Service Where Name ='Messenger'")
         For Each objService in colListOfServices
           objService.changestartMode("Automatic")
           objService.StartService()
         Next


       
        objRecordSet.MoveNext
    Loop

     

     

    Lembrando que se o Firewall estiver habilitado ele não conseguirá conectar na máquina e se você não tiver permissões administrativas também não.

     

    Grande abraço

     

    segunda-feira, 13 de agosto de 2007 17:49
  • Segue o código. Basta colocar num arquivo .VBS e chamar pela linha de comando:
    cscript enable.vbs nome_do_computador_ou_ip
    strComputer = Wscript.Arguments(0)
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

    Set colServiceList = objWMIService.ExecQuery _
    ("Select * from Win32_Service where Name = 'Alerter'")

    For Each objService in colServiceList
    errReturnCode = objService.ChangeStartMode("Automatic")
    Next

    Caso queira, ainda há a opção de usar o Powershell de duas formas.

    1) coloque os computadores em um arquivo TXT, um abaixo do outro. Você pode fazer isso exportando um CSV de uma consulta no AD, por exemplo.

    2) Execute a linha a seguir, no prompt:
    cat lista.txt | foreach {cscript enable.cvs $_}

    ou ainda, use um one-liner no Powershell que faz tudo de uma vez:

    $ErrorAction = 'silentlycontinue'; cat lista.txt | % {get-wmiobject -computer $_ win32_service | ? {$_.caption -eq 'Alerter' | % {$_.changestartmode("Automatic")}}



    Espero ter ajudado,


    Vinicius Canto
    MVP Windows Server - Admin Frameworks
    Blog sobre Scripting e Windows Powershell: http://viniciuscanto.blogspot.com
    terça-feira, 14 de agosto de 2007 11:07
    Moderador

Todas as Respostas

  • Wagner, este script executa uma busca em todas as máquinas do seu AD e efetua a mudança o mensageiro para Automático e inicia o serviço.

     

     

     

    On error Resume next

    Const ADS_SCOPE_SUBTREE = 2

    Set objConnection = CreateObject("ADODB.Connection")
    Set objCommand =   CreateObject("ADODB.Command")
    objConnection.Provider = "ADsDSOObject"
    objConnection.Open "Active Directory Provider"

    Set objCOmmand.ActiveConnection = objConnection
    objCommand.CommandText = _
        "Select Name, Location from 'LDAP://DC=SEUDOMINIO,DC=com,DC=br' " _
            & "Where objectClass='computer'" 
    objCommand.Properties("Page Size") = 1000
    objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
    Set objRecordSet = objCommand.Execute
    objRecordSet.MoveFirst

    Do Until objRecordSet.EOF


        strComputer = objRecordSet.Fields("Name").Value

        Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
        Set colListOfServices = objWMIService.ExecQuery("Select * from Win32_Service Where Name ='Messenger'")
         For Each objService in colListOfServices
           objService.changestartMode("Automatic")
           objService.StartService()
         Next


       
        objRecordSet.MoveNext
    Loop

     

     

    Lembrando que se o Firewall estiver habilitado ele não conseguirá conectar na máquina e se você não tiver permissões administrativas também não.

     

    Grande abraço

     

    segunda-feira, 13 de agosto de 2007 17:49
  • Segue o código. Basta colocar num arquivo .VBS e chamar pela linha de comando:
    cscript enable.vbs nome_do_computador_ou_ip
    strComputer = Wscript.Arguments(0)
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

    Set colServiceList = objWMIService.ExecQuery _
    ("Select * from Win32_Service where Name = 'Alerter'")

    For Each objService in colServiceList
    errReturnCode = objService.ChangeStartMode("Automatic")
    Next

    Caso queira, ainda há a opção de usar o Powershell de duas formas.

    1) coloque os computadores em um arquivo TXT, um abaixo do outro. Você pode fazer isso exportando um CSV de uma consulta no AD, por exemplo.

    2) Execute a linha a seguir, no prompt:
    cat lista.txt | foreach {cscript enable.cvs $_}

    ou ainda, use um one-liner no Powershell que faz tudo de uma vez:

    $ErrorAction = 'silentlycontinue'; cat lista.txt | % {get-wmiobject -computer $_ win32_service | ? {$_.caption -eq 'Alerter' | % {$_.changestartmode("Automatic")}}



    Espero ter ajudado,


    Vinicius Canto
    MVP Windows Server - Admin Frameworks
    Blog sobre Scripting e Windows Powershell: http://viniciuscanto.blogspot.com
    terça-feira, 14 de agosto de 2007 11:07
    Moderador
  •  

    Valeu Wellington,

     

    Vou testar e qualquer coisa te falo...brigadão

     

    Wagner

     

    terça-feira, 14 de agosto de 2007 21:47
  • Vinicius,

     

    brigadão pela força, vou testar tb o seu e qualquer coisa conto com sua boa vontade e iniciativa...

     

    Abraço,

     

    Wagner

     

    terça-feira, 14 de agosto de 2007 21:48
  • Wagner, este script executa uma busca em todas as máquinas do seu AD e efetua a mudança o mensageiro para Automático e inicia o serviço.

     

     

     

    On error Resume next

    Const ADS_SCOPE_SUBTREE = 2

    Set objConnection = CreateObject("ADODB.Connection")
    Set objCommand =   CreateObject("ADODB.Command")
    objConnection.Provider = "ADsDSOObject"
    objConnection.Open "Active Directory Provider"

    Set objCOmmand.ActiveConnection = objConnection
    objCommand.CommandText = _
        "Select Name, Location from 'LDAP://DC=SEUDOMINIO ,DC=com,DC=br' " _
            & "Where objectClass='computer'" 
    objCommand.Properties("Page Size") = 1000
    objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
    Set objRecordSet = objCommand.Execute
    objRecordSet.MoveFirst

    Do Until objRecordSet.EOF


        strComputer = objRecordSet.Fields("Name").Value

        Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
        Set colListOfServices = objWMIService.ExecQuery("Select * from Win32_Service Where Name ='Messenger' ")
         For Each objService in colListOfServices
           objService.changestartMode("Automatic")
           objService.StartService()
         Next


       
        objRecordSet.MoveNext
    Loop

     

     

    Lembrando que se o Firewall estiver habilitado ele não conseguirá conectar na máquina e se você não tiver permissões administrativas também não.

     

    Grande abraço

     

    O porém, esse script funcionaria em uma rede Segmentada. ( Vlan´s ? )
    segunda-feira, 13 de setembro de 2010 13:55
  • Sim, o script funciona em ambientes com VLANS ele configura o serviço Messenger como automático em cada micro (claro , o micro deve estar ligado, vc deve ter permissões administrativas, como já dito antes).

    O que talvez pode não funcionar da maneira que você imagina é o serviço Mensageiro.


    Fábio de Paula Junior
    segunda-feira, 13 de setembro de 2010 19:24
    Moderador