Aqui está um exemplo de passagem de parâmetros com schtasks
:
schtasks /create /tn "test" /TR "\"C:\Program Files\SyncToy 2.1\SyncToyCmd.exe\"-R" /sc daily /st 08:00:00
como posso executar schtasks a partir da linha de comando, de modo que eu possa passar parâmetros durante o tempo de execução. Eu tenho um trabalho em lotes que espera parâmetros durante o tempo de execução que é criado na tarefa agendada. Eu não posso ter um parâmetro fixo, então eu não posso fornecer o parâmetro quando eu criar a tarefa que eu preciso para fornecer isso durante o tempo de execução. Eu estava esperando se há uma maneira de fazer como, eu preciso executar essa tarefa de schtasks usando a linha de comando, porque eu posso definir a tarefa para ser executado como administrador e dar ao usuário com menos função invocar a tarefa sob demanda
schtasks /Run /Tn "task" /parameter....?
Aqui está um exemplo de passagem de parâmetros com schtasks
:
schtasks /create /tn "test" /TR "\"C:\Program Files\SyncToy 2.1\SyncToyCmd.exe\"-R" /sc daily /st 08:00:00
Não - os parâmetros são configurados dentro da própria tarefa.
Eu hesitaria em pensar que isso seria viável do ponto de vista da segurança, seja hipoteticamente, alguém com uma tarefa executando cmd.exe
com um determinado conjunto de parâmetros, tendo esses parâmetros modificados na execução por um usuário não administrador ? Não é uma boa situação.
Outra solução seria ter o script do PowerShell imprimindo os parâmetros ou dados que o trabalho em lote precisa para um arquivo de texto e, em seguida, fazer com que o trabalho em lote seja lido no arquivo de texto em tempo de execução.
Eu levo em consideração o comentário de Shane Madden, porém, quem tiver acesso a escrever este arquivo de texto e executar a tarefa agendada, terá acesso a modificar o comportamento do processo