ACC 플러그인 패키지 생성

  • 릴리스 버전: Australia
  • 업데이트 날짜 2026년 03월 12일
  • 소요 시간: 4분
  • 정정 작업을 정의하는 PowerShell 스크립트, Ruby 스크립트 및 엔드포인트 장치에서 정정 작업을 실행할 수 있도록 허용 목록이 포함된 (ACC) 플러그인 패키지를 생성합니다 에이전트 클라이언트 수집기 .

    시작하기 전에

    필요한 역할: 관리자

    프로시저

    1. 로컬 컴퓨터에 ACC 플러그인의 루트 폴더를 만들고 이름을 지정합니다.
      예: acc-dex-custom.
    2. 루트 폴더에서 allowlistbin이라는 두 개의 하위 폴더를 만듭니다.
    3. PowerShell 또는 명령 프롬프트 명령을 사용하여 PowerShell 스크립트를 생성하고 엔드포인트 장치에서 실행할 정정 작업을 정의합니다.
      1. bin 폴더에서 .ps1 파일을 만들고 이름을 .ps1 확장명으로 지정합니다.
        예: CustomScript.ps1
      2. .ps1 파일을 열고 명령을 추가합니다.
        예를 들어 다음 샘플 .ps1 파일은 장치에서 W32Time 프로세스를 중지 및 시작하고, 스풀러 서비스를 일시 중지 및 다시 시작하는 명령을 사용하여 사용자 지정 정정 작업을 정의합니다.
        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 spooler
        주:
        실행 중에 인스턴스에 정의된 입력 매개변수를 수락하도록 PowerShell 스크립트를 ServiceNow 구성할 수 있습니다.
      3. 파일을 저장합니다.
    4. 인스턴스에서 .ps1 파일을 호출하는 Ruby 스크립트를 ServiceNow 만듭니다.
      1. bin 폴더에서 Ruby 파일을 만들고 .rb 확장자로 이름을 지정합니다.
      2. .rb 파일을 열고 일반 Ruby 또는 Ruby 프레임워크를 사용하여 코드를 추가합니다.
        Ruby 스크립트에는 다음과 같은 논리가 포함되어야 합니다.
        • 만든 .ps1 스크립트를 호출하여 올바른 파일 경로를 입력했는지 확인합니다.
        • 명령이 성공적으로 실행되었는지 확인합니다.
        • 실행 상태, 출력 및 오류(있는 경우)를 포함하는 출력 JSON 을 생성합니다.
      3. 명령을 실행하고 출력을 검토하여 .ps1 파일이 성공적으로 호출되었는지 또는 오류가 있는지 확인합니다.
        예를 들어, 다음 샘플 .rb 파일은 acc-f-commons 플러그인 실행 명령을 사용하여 .ps1 파일(CustomScript.ps1)을 실행하고, 명령이 성공적으로 실행되는지 확인하고, 결과를 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()
        주:

        PowerShell 스크립트가 인스턴스의 입력 매개변수를 ServiceNow 수락하도록 구성된 경우 Ruby 스크립트는 실행 중에 이러한 매개변수를 PowerShell 스크립트에 전달합니다.

    5. 허용 목록 파일을 생성하고 엔드포인트 장치에서 실행할 수 있는 Ruby 스크립트를 지정합니다.
      1. 허용 목록 하위 폴더에서 허용 목록 JSON 파일을 만듭니다.
        예를 들면 check-allowlist.json입니다.
      2. .rb 스크립트의 일부로 수락할 인수와 같은 조건을 정의하거나 사용자 지정 논리를 생성합니다.
      3. 파일을 저장합니다.
    6. 유틸리티를 사용하여 ACC 플러그인 폴더에 대한 tar.gz 파일을 생성합니다.
      주:
      tar.gz 파일 이름은 플러그인 루트 폴더 이름과 일치해야 합니다. 예를 들면 다음과 같습니다acc-dex-custom.tar.gz