Crie um pacote de plug-in do ACC
Crie um Agent Client Collector(ACC) pacote de plug-in que inclui o script PowerShell que define a ação corretiva, um script Ruby e uma lista de permissões para habilitar a execução da ação corretiva em um dispositivo de endpoint.
Antes de Iniciar
Função necessária: administrador
Procedimento
-
Crie uma pasta raiz para o plug-in ACC no seu computador local e nomeie-a.
Por exemplo, acc-dex-personalizado .
- Na pasta raiz, crie duas subpastas nomeadas lista de permissões e. compartimento .
-
Crie um script do PowerShell usando o PowerShell ou os comandos do prompt de comando para definir a ação corretiva a ser executada em um dispositivo de endpoint.
-
Em compartimento pasta, crie um .ps1 e nomeie-o com .ps1 extensão.
Por exemplo, CustomScript.ps1
-
Abra o. .ps1 arquivo e adicione os comandos.
Por exemplo, o exemplo a seguir .ps1 O arquivo define uma ação corretiva personalizada usando comandos para parar e iniciar o processo W32Time, pausar e reiniciar o serviço de spooler em um dispositivo.
sc.exe stop w32time $process = Get-Process -Name w32time -ErrorAction SilentlyContinue if ($process) { taskkill /f /t /im w32tm.exe } Start-Sleep -Seconds 5 sc.exe start w32time Start-Process "C:\Windows\System32\w32tm.exe" Start-Sleep -Seconds 5 sc.exe stop spooler sc.exe start spoolerNota:Você pode configurar o script do PowerShell para aceitar parâmetros de entrada definidos no ServiceNow instância durante a execução. - Salve o arquivo.
-
Em compartimento pasta, crie um .ps1 e nomeie-o com .ps1 extensão.
-
Crie um script Ruby para chamar o. .ps1 arquivo do ServiceNow instância.
- Em compartimento , crie um arquivo Ruby e nomeie-o com .rb extensão.
-
Abra o. .rb Arquivo e adicione seu código usando Ruby simples ou qualquer estrutura de Ruby.
O script Ruby deve incluir a lógica para:
- Ligue para .ps1 script que você criou, certificando-se de inserir o caminho de arquivo correto.
- Valide se o comando foi executado com sucesso.
- Crie uma saída JSON isso inclui o status de execução, a saída e os erros, se houver.
-
Execute o comando e revise a saída para confirmar se .ps1 o arquivo foi chamado com sucesso ou se houver erros.
Por exemplo, o exemplo a seguir .rb o arquivo executa a. .ps1 arquivo ( CustomScript.ps1 usando o comando de execução do plug-in acc-f-commons, valida se o comando é executado com sucesso e retorna o resultado JSON.
require "logger" require_relative "../../../acc-f-commons/bin/command_runner.rb" require "json" class CustomScript def initialize() @logger = Logger.new(STDOUT) @cmd_runner = CommandRunner.new @logger.level = "FATAL" end def execute_custom_script() status = "failure" msg = nil data = {} parent_cache_directory = File.expand_path("../..", File.dirname(__FILE__)).gsub(" ", "` ") query = "powershell -ExecutionPolicy Bypass " + parent_cache_directory + "/acc-dex-custom/bin/ps/customScript.ps1" output, error = @cmd_runner.runCmd(query, @logger, "mode con:cols=32766 lines=1 & chcp 65001 > nul & ", true, false) if !error && !output.empty? status = "success" msg = "Successfully ran script" data = output else msg = "Failed - #{error}" end result = { "status" => status, "type" => "device", "metric_type" => "remedial_action", "keys" => "custom_script", "data" => data, "message" => msg } puts JSON.generate(result) end end custom_script = CustomScript.new custom_script.execute_custom_script()Nota:Se o script do PowerShell estiver configurado para aceitar parâmetros de entrada do ServiceNow, o script Ruby passa esses parâmetros para o script PowerShell durante a execução.
-
Crie um arquivo de lista de permissões e especifique o script Ruby permitido para execução em dispositivos de endpoint.
-
Em lista de permissões subpasta, crie uma lista de permissões JSON arquivo.
Por exemplo, check-allowlist.json .
- Defina todas as condições, como argumentos, a serem aceitos como parte do .rb ou crie uma lógica personalizada.
- Salve o arquivo.
-
Em lista de permissões subpasta, crie uma lista de permissões JSON arquivo.
-
Gere um tar.gz Arquivo da pasta de plug-in do ACC usando qualquer utilitário.
Nota:. tar.gz o nome do arquivo deve corresponder ao nome da pasta raiz do plug-in. Por exemplo, acc-dex-custom.tar.gz