Executando uma tarefa agendada como SYSTEM com a janela do console aberta

2

Estou criando automaticamente tarefas agendadas com essa linha em um script do Windows em lotes:

schtasks /Create /RU SYSTEM /RP SYSTEM /TN startup-task-%%i /TR %SPEEDWAY_DIR%\%TARGET_DIR%%%i\%STARTUPFILE% /SC HOURLY /MO 1 /ST 17:%%i1:00

Eu queria evitar usar credenciais de usuário específicas e, assim, decidi usar o SYSTEM.

Agora, ao verificar a lista de processos dos gerenciadores de tarefa ou, melhor ainda, diretamente com o

C:\> schtasks

comando em si, tudo está funcionando bem, as tarefas estão sendo executadas como pretendido.

No entanto, neste caso em particular, eu gostaria de ter uma janela de console aberta onde eu possa ver o log voando.

Eu sei que posso usar

C:\> tail -f thelogfile.log

se eu instalei cygwin (em todas as máquinas) ou algumas ferramentas proprietárias como o Baretail no Windows. Mas como só mudo para essas máquinas em caso de problemas, prefiro iniciar a tarefa agendada de tal forma que o usuário every veja imediatamente o log.

Alguma chance?

Obrigado!

    
por raoulsson 31.08.2009 / 19:10

4 respostas

1

O get-content -wait do Powershell seguirá um arquivo como tail -f

    
por 15.07.2013 / 17:18
0

Se você estiver procurando por algo semelhante à cauda, você pode usar o comando more ou o comando type.

C:\>more /?
Displays output one screen at a time.

MORE [/E [/C] [/P] [/S] [/Tn] [+n]] < [drive:][path]filename
command-name | MORE [/E [/C] [/P] [/S] [/Tn] [+n]]
MORE /E [/C] [/P] [/S] [/Tn] [+n] [files]

    [drive:][path]filename  Specifies a file to display one
                            screen at a time.

    command-name            Specifies a command whose output
                            will be displayed.

    /E      Enable extended features
    /C      Clear screen before displaying page
    /P      Expand FormFeed characters
    /S      Squeeze multiple blank lines into a single line
    /Tn     Expand tabs to n spaces (default 8)

            Switches can be present in the MORE environment
            variable.

    +n      Start displaying the first file at line n

    files   List of files to be displayed. Files in the list
            are separated by blanks.

    If extended features are enabled, the following commands
    are accepted at the -- More -- prompt:

    P n     Display next n lines
    S n     Skip next n lines
    F       Display next file
    Q       Quit
    =       Show line number
    ?       Show help line
    <space> Display next page
    <ret>   Display next line
    
por 31.08.2009 / 20:59
0

Uma maneira possível de conseguir isso seria criar uma tarefa em execução como o usuário conectado no login usando schtasks. A tarefa executaria um arquivo de lote, com o último bit do arquivo de lote excluindo a tarefa e criando outra.

Você também pode querer fazer algumas verificações para ver se o usuário fez logoff (a criatividade pode ser necessária), já que você não precisa que suas tarefas continuem em execução enquanto a máquina estiver em uma tela de logon ou outra pessoa estiver registrada em.

Se eles não tiverem acesso para executar o processo original, você poderá executá-lo usando o trabalho do schtasks original e, em seguida, apenas fazer com que o arquivo de lote do usuário leia a saída.

Espero que esteja claro?

    
por 09.10.2009 / 21:39
0

Estou um pouco confuso .. você só 'muda' para essas máquinas ocasionalmente, não quer instalar o tail.exe, mas você está instalando uma tarefa agendada?

Algumas ideias vêm à mente:

1) Coloque tail.exe em um local de rede e use-o diretamente. Dado que o UID é SYSTEM, o compartilhamento de rede precisa apenas de acesso $ COMPUTERNAME, acho que o grupo é Usuários em oposição a Usuários Autorizados, ou vice-versa

2) Execute o trabalho em si na área de trabalho do usuário: Use psexec. Tem uma opção -i (nterativa). Então, psexec -accepteula -s -i cmd /k echo hello . Você pode omitir o -s se o trabalho de planejamento já estiver fornecendo o sistema. Além disso, o / k é apenas para prova de conceito, você usaria / c normalmente.

3) Escreva um programa:)

    
por 14.05.2013 / 06:39