Powershell - пользовательское перечисление как параметр для скрипта - PullRequest
0 голосов
/ 31 мая 2019

У меня есть скрипт с набором функций и инструкций и объявленным перечислением:

Add-Type -TypeDefinition @"
    public enum CleanUpPolicy {
        NoCleanUp,
        CleanUpByExpiration,
        CleanUpByMaxCount
    }
"@

и параметры скрипта с таким перечислением:

param (
    [CleanUpPolicy] $cleanUp = [CleanUpPolicy]::NoCleanUp
)

Скрипт отлично работает, когда я запускаю его локально. Однако этот скрипт должен быть загружен и выполнен на удаленной машине, и здесь возникают проблемы. Когда я делаю загрузку и выполнение, я получаю сообщение об ошибке iex: невозможно найти тип [CleanUpPolicy] Вот скрипт, который загружает и выполняет скрипт:

iwr ("https://<some_url>/test.ps1") | iex

Что я делаю не так? Заранее спасибо за помощь

1 Ответ

0 голосов
/ 31 мая 2019

Я думаю, что add-type работает, компилируя определение типа в C #. Может быть, что-то не так с этим. Но в PS 5 вы можете создавать перечисления без использования add-type (перечисление flags тоже). https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_enum?view=powershell-5.1

Enum CleanUpPolicy {
  NoCleanUp
  CleanUpByExpiration
  CleanUpByMaxCount
}


[CleanupPolicy]0
NoCleanUp
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...