Skip to content

Custom Scripts

NoahRJ edited this page Jun 15, 2026 · 1 revision

Custom Scripts

Since Iru resources must also contain metadata (e.g. active or name), each resource's on-disk representation is actually a directory of associated files. Certain files are required for a directory to be recognized as a resource.

Tip

Additional files, such as a README.md, can be added without causing issues so long as they cannot be confused with the required files.

Directory Structure

Each script requires:

  1. A directory within an iructl repository scripts directory containing the script's files
  2. Exactly one info.[plist|yaml|json] file containing the script's associated metadata
  3. Exactly one audit script file (filename must start with audit)
  4. Optionally one remediation script file (filename must start with remediation)
$ lsd --tree scripts/MyFancyScript
 MyFancyScript
├──  audit.zsh
├──  info.json
└──  remediation.zsh

info.json

{
  "id": "b27aa82f-4a6d-4a3b-8097-68ca39eb705b",
  "name": "MyFancyScript",
  "active": false,
  "execution_frequency": "once",
  "restart": false
}

audit.zsh

#!/bin/zsh -f
# https://docs.iru.com/en/endpoint/library/library-items-profiles/custom-scripts-overview#custom-scripts-overview

echo "Hello, World!"
exit 0

remediation.zsh

#!/bin/zsh -f
# https://docs.iru.com/en/endpoint/library/library-items-profiles/custom-scripts-overview#custom-scripts-overview

echo "Hello, World!"
exit 0

Clone this wiki locally