Como um script (PowerShell) pode determinar se está sendo executado na inicialização?

2

Estou criando um script de inicialização do PoSh que inicializa algumas tarefas agendadas. Uma tarefa é acionada no logon do usuário e outra é acionada no modo inativo. Ambas as tarefas executam o script novamente. Somente a primeira parte do script é necessária na inicialização, mas o script inteiro deve ser executado todas as outras vezes.

Como um script pode determinar quando ele está sendo executado na inicialização versus a execução em horários posteriores?

    
por Teknowledgist 28.06.2017 / 22:23

2 respostas

3

Eu recomendaria a opção de parâmetro também. Faça duas tarefas agendadas, uma para executar na inicialização, que chama a opção -AtStartup . Então você pode fazer uma segunda tarefa para chamar o script sem o comutador. O tipo de chave para parâmetros é construído para este propósito.

Function Start-Task {
    [CmdletBinding()]
    Param(
       [Parameter(Mandatory=$True,Position=1)]
       [string]$paramOne,

       [Parameter(Mandatory=$True)]
       [string]$paramTwo,

       [switch]$AtStartup
    )

    if ($AtStartup) {
        #Do startup activities....
        Test-Connection -ComputerName Localhost
    }

    #Rest of script work
}
    
por 28.06.2017 / 22:59
2

Você poderia usar

[System.Environment]::TickCount

para obter o número de milissegundos decorridos desde o início do sistema.

    
por 28.06.2017 / 23:06