PowerShell | Добавить каталог в ПУТЬ | Использовать в сценарии

#powershell

Вопрос:

Я изучал PowerShell, и лучший способ учиться-это делать. Сценарий:

 D:Toolschainsawchainsaw.exe D:Toolschainsawmapping_files D:Toolschainsawsigma_rules  

Я добавил D:Toolschainsaw к своему ПУТИ

У меня есть журналы событий, скажем, в C:TestEventLogs которых я создаю свой текущий каталог в PowerShell

 chainsaw.exe hunt ./ --rules sigma_rules/ --mapping mapping_files/sigma-mapping.yml --csv text.csv  

Теперь команда, подобная приведенной ниже, потерпит неудачу, потому что, хотя PowerShell может найти chainsaw.exe поскольку он находится в моем ПУТИ, он не может найти другие папки, указанные двумя другими аргументами --rules sigma_rules/ --mapping mapping_files/sigma-mapping.yml

Любые советы или обходные пути для этого будут оценены по достоинству. Я пытаюсь автоматизировать некоторые вещи, используя функции и аргументы PS, и я застрял на этой работе, потому что не хочу жестко D:Toolschainsawmapping_files кодировать и D:Toolschainsawsigma_rules в командной строке.

Комментарии:

1. Возможно, добавление пути D:Toolschainsaw в окружающую среду-это то, что вы ищете? Тогда вы можете решить эту проблему с помощью чего-то вроде $env:Chainsawmapping_filessigma-mapping.yml

Ответ №1:

Как уже отмечалось, вам может быть полезно создать переменную среды для пути к файлу:

 [Environment]::SetEnvironmentVariable("CHAINSAW", D:Toolschainsaw, "Machine")  

Тогда вы можете использовать это как $env:CHAINSAWmapping_filessigma-mapping.yml

Комментарии:

1. Спасибо вам обоим! После публикации вопроса мне удалось добавить ENV для достижения этой цели. Я рад, что два добрых и отзывчивых незнакомца в Интернете тоже подумали об одном и том же методе — еще раз спасибо.