none
Script de verificação de data,parar serviço,copiar arquivos especificos,deletar e iniciar serviço. RRS feed

  • Pergunta

  • Boa Tarde a todos do Forum gostaria de um script que faça o seguinte:

    Que ele verifique a data de modificação do arquivo que eu tenho na máquina com o do servidor , se o do servidor for mais atual um serviço X é parado , dois arquivos dat da máquina excluidos, em seguida é copiado os arquivos e depois o mesmo serviço iniciado.

     

    quinta-feira, 20 de maio de 2010 13:54

Todas as Respostas

  • Rodrigo,

    Segue o script que vc precisa.

    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Dim strLocalFile1, strLocalFile2, strRemoteFile1, strRemoteFile2

    'Caminho do dat1 local
    strLocalFile1 = "C:\Dat1.dat"
    'Caminho do dat2 local
    strLocalFile2 = "C:\Dat2.dat"
    'Caminho do dat1 no server
    strRemoteFile1 = "\\server\share\dat1.dat"
    'Caminho do dat2 no server
    strRemoteFile2 = "\\server\share\dat2.dat"
    'Nome do serviço que deseja manipular, é o nome do serviço e nçao e do exibição, preste atenção nisso
    strServiceName = "SeuServiço"

    Set objFileLocal1 = ObjFSO.GetFile(strLocalFile1)
    Set objFileLocal2 = ObjFSO.GetFile(strLocalFile2)
    Set objFileRemote1 = ObjFSO.GetFile(strRemoteFile1)
    Set objFileRemote2 = ObjFSO.GetFile(strRemoteFile2)

    If DateDiff("h",objFileLocal1.DateLastModified, objFileRemote1.DateLastModified) > 1 Then
       StopService strServiceName
       objFso.DeleteFile(strLocalFile1)
       objFso.CopyFile strRemoteFile1, strLocalFile1, True
    End If

    If DateDiff("h",objFileLocal2.DateLastModified, objFileRemote2.DateLastModified) > 1 Then
       StopService strServiceName
       objFso.DeleteFile(strLocalFile2)
       objFso.CopyFile strRemoteFile2, strLocalFile2, True
    End If

    StartService strServiceName

    Public Sub StopService(strServiceName)
     Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
     Set colListOfServices = objWMIService.ExecQuery("Select * from Win32_Service Where Name ='" & strServiceName & "'")
     For Each objService in colListOfServices
         objService.StopService()
     Next
    End Sub

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

    Só altere o caminho dos arquivos e o nome do serviço.

    Qualquer dúvida poste e se for útil vote.

    Abraço.

     


    Gabriel Nascimento MCP / MCSA / CCNA http://gabrielnascimentoit.spaces.live.com -- Se for útil vote.
    quinta-feira, 20 de maio de 2010 15:04
  • Olá!

    Precisava de algo muito parecido!

    Que ele pare o serviço do windows, copie um arquivo para a estação e depois inicie o serviço novamente.

    O arquivo nao deleta se o serviço estiver executando.

    Tentei fazer com esse script, mas sempre me retorna permissão negada, acho que o serviço nao ta parando. E o nome do serviço está correto.

    Abraço!


    MCP - MCDST
    segunda-feira, 25 de outubro de 2010 19:10