none
Script para Identificar Serviços RRS feed

  • Pergunta

  • Senhores,

    Bom dia!

    Necessito identificar, na rede, os servidores que possuam algum serviço que inicie como administrador do domínio.

    O ambiente possui W2K3 e W2K8.

    Alguém pode me ajudar?

    Grato.

    quinta-feira, 10 de fevereiro de 2011 13:04

Respostas

  • Marcelo,

     

    Acho que o PsService pode te ajudar.

     

    http://technet.microsoft.com/en-us/sysinternals/bb897542

    http://technet.microsoft.com/pt-br/sysinternals/bb897542

     

    Poste por favor, caso encontre algum problema

     

    Se foi util,vote

    quinta-feira, 10 de fevereiro de 2011 17:51
  • Marcelo,

    Veja este código em PowerShell, vc pode verificar vários computadores de uma só vez alterando a primeira linha com vários nomes de computadores.

    Não se esqueça de colocar o nome da conta de administrador que você quer verificar no lugar do LocalService no código abaixo

    $computers="servidorA","servidor2"
    
    foreach($computer in $computers){gwmi win32_Service -Computer $computer -filter "startname='LocalSystem'" | ft systemname,name,startname}

    Veja este que foi uma das soluções da Olimpiadas de Script

    $accounts = 'LocalSystem', 'NT Authority\LocalService', 'NT Authority\NetworkService'
    
    $computer = '127.0.0.1', '10.10.10.33', 'demo5'
     
    Get-WmiObject Win32_Service -ComputerName $computer |
      Where-Object { $accounts -notcontains $_.StartName } |
      Select-Object __SERVER, StartName, Name, DisplayName

    Expert Solution for the 2011 Scripting Games Beginner Event 4: Use PowerShell to Identify Non-Standard Windows Service Account 

    blogs.technet.com/b/heyscriptingguy/archive/2011/04/21/expert-solution-for-the-2011-scripting-games-beginner-event-4-use-powershell-to-identify-non-standard-windows-service-accounts.aspx

    Segue alguns links que podem ser úteis

    Finding Services Using non-System Accounts With PowerShell 

    theessentialexchange.com/blogs/michael/archive/2008/02/29/finding-services-using-non-system-accounts-with-powershell.aspx


    Fábio de Paula Junior


    domingo, 12 de agosto de 2012 17:01
    Moderador
  • Caro Marcelo!

     

    Só para completar as informações dos colegas. Quando precisei criar um script para a mesma função, fiz da seguinte forma.

     

    1.Script que captura o nome de todos os computados/servidores Onlines!

    del AllServers.txt
    del OnlineServers.txt
    del OfflineServers.txt
    $_criteria1 = Read-host "Enter a unique 1st part of machinenames you want to Query or * use 1st part as wildcard"
    $_criteria2 = Read-host "SEnter a unique 2nd part of machinenames you want to Query or * use 2nd part as wildcard"
    dsquery computer -name $_criteria1$_criteria2* -o rdn -limit 0 | where { $_ -notmatch 'PC' -And $_ -notmatch 'NB'}>>Siteserverliste_tmp.txt
    (Get-Content Siteserverliste_tmp.txt) | 
    Foreach-Object {$_ -replace """", ""} | 
    Set-Content AllServers.txt
    del Siteserverliste_tmp.txt
    $Servere=Get-Content AllServers.txt
    Foreach ($_ in $Servere)
    {
    $ping = new-object System.Net.NetworkInformation.Ping
    $Reply = $ping.send($_)
    if ($Reply.status –eq “Success”) 
    {Write-Output "$_" >>OnlineServers.txt}
    else
    {Write-Output "$_" >>OfflineServers.txt}
    $Reply = ""
    }


    Com este script ele ira gerar um arquivo na pasta C:\temp chamado onlineservers.txt

     

    2.Analizar os serviços que rodam com uma determinada conta (Com base nos computadores listados no script acima)

    get-content onlineservers.txt |
    ForEach-Object  {gwmi win32_service -computerName $_| 
    where {$_.StartName -like "*\Administrator"}} |
    select __Server,name,startname |
    convertto-html | 
    out-file services_that_uses_spesific_account.html
     

    Dê uma olhada neste link quando postei a mesma pergunta no Forum!

     

    http://social.technet.microsoft.com/Forums/pt-BR/winsrv2008pt/thread/59aa931b-2c94-4bc8-a968-f6b44066b123

    Att,

    Rodrigo Galdino!

    • Sugerido como Resposta Rodrigo Galdino segunda-feira, 13 de agosto de 2012 12:03
    • Marcado como Resposta Fábio JrModerator segunda-feira, 13 de agosto de 2012 23:49
    segunda-feira, 13 de agosto de 2012 12:03

Todas as Respostas

  • Marcelo,

     

    Acho que o PsService pode te ajudar.

     

    http://technet.microsoft.com/en-us/sysinternals/bb897542

    http://technet.microsoft.com/pt-br/sysinternals/bb897542

     

    Poste por favor, caso encontre algum problema

     

    Se foi util,vote

    quinta-feira, 10 de fevereiro de 2011 17:51
  • Marcelo,

    Veja este código em PowerShell, vc pode verificar vários computadores de uma só vez alterando a primeira linha com vários nomes de computadores.

    Não se esqueça de colocar o nome da conta de administrador que você quer verificar no lugar do LocalService no código abaixo

    $computers="servidorA","servidor2"
    
    foreach($computer in $computers){gwmi win32_Service -Computer $computer -filter "startname='LocalSystem'" | ft systemname,name,startname}

    Veja este que foi uma das soluções da Olimpiadas de Script

    $accounts = 'LocalSystem', 'NT Authority\LocalService', 'NT Authority\NetworkService'
    
    $computer = '127.0.0.1', '10.10.10.33', 'demo5'
     
    Get-WmiObject Win32_Service -ComputerName $computer |
      Where-Object { $accounts -notcontains $_.StartName } |
      Select-Object __SERVER, StartName, Name, DisplayName

    Expert Solution for the 2011 Scripting Games Beginner Event 4: Use PowerShell to Identify Non-Standard Windows Service Account 

    blogs.technet.com/b/heyscriptingguy/archive/2011/04/21/expert-solution-for-the-2011-scripting-games-beginner-event-4-use-powershell-to-identify-non-standard-windows-service-accounts.aspx

    Segue alguns links que podem ser úteis

    Finding Services Using non-System Accounts With PowerShell 

    theessentialexchange.com/blogs/michael/archive/2008/02/29/finding-services-using-non-system-accounts-with-powershell.aspx


    Fábio de Paula Junior


    domingo, 12 de agosto de 2012 17:01
    Moderador
  • Caro Marcelo!

     

    Só para completar as informações dos colegas. Quando precisei criar um script para a mesma função, fiz da seguinte forma.

     

    1.Script que captura o nome de todos os computados/servidores Onlines!

    del AllServers.txt
    del OnlineServers.txt
    del OfflineServers.txt
    $_criteria1 = Read-host "Enter a unique 1st part of machinenames you want to Query or * use 1st part as wildcard"
    $_criteria2 = Read-host "SEnter a unique 2nd part of machinenames you want to Query or * use 2nd part as wildcard"
    dsquery computer -name $_criteria1$_criteria2* -o rdn -limit 0 | where { $_ -notmatch 'PC' -And $_ -notmatch 'NB'}>>Siteserverliste_tmp.txt
    (Get-Content Siteserverliste_tmp.txt) | 
    Foreach-Object {$_ -replace """", ""} | 
    Set-Content AllServers.txt
    del Siteserverliste_tmp.txt
    $Servere=Get-Content AllServers.txt
    Foreach ($_ in $Servere)
    {
    $ping = new-object System.Net.NetworkInformation.Ping
    $Reply = $ping.send($_)
    if ($Reply.status –eq “Success”) 
    {Write-Output "$_" >>OnlineServers.txt}
    else
    {Write-Output "$_" >>OfflineServers.txt}
    $Reply = ""
    }


    Com este script ele ira gerar um arquivo na pasta C:\temp chamado onlineservers.txt

     

    2.Analizar os serviços que rodam com uma determinada conta (Com base nos computadores listados no script acima)

    get-content onlineservers.txt |
    ForEach-Object  {gwmi win32_service -computerName $_| 
    where {$_.StartName -like "*\Administrator"}} |
    select __Server,name,startname |
    convertto-html | 
    out-file services_that_uses_spesific_account.html
     

    Dê uma olhada neste link quando postei a mesma pergunta no Forum!

     

    http://social.technet.microsoft.com/Forums/pt-BR/winsrv2008pt/thread/59aa931b-2c94-4bc8-a968-f6b44066b123

    Att,

    Rodrigo Galdino!

    • Sugerido como Resposta Rodrigo Galdino segunda-feira, 13 de agosto de 2012 12:03
    • Marcado como Resposta Fábio JrModerator segunda-feira, 13 de agosto de 2012 23:49
    segunda-feira, 13 de agosto de 2012 12:03