我有一个脚本,其中包含一组功能和说明并声明了枚举:
Add-Type -TypeDefinition @"
public enum CleanUpPolicy {
NoCleanUp,
CleanUpByExpiration,
CleanUpByMaxCount
}
"@
以及带有该枚举的脚本参数,例如:
param (
[CleanUpPolicy] $cleanUp = [CleanUpPolicy]::NoCleanUp
)
当我在本地运行脚本时,脚本运行良好。但是,该脚本应在远程计算机上下载并执行,这会带来问题。 在执行下载和执行操作时,出现错误 iex:无法找到类型[CleanUpPolicy] 这是下载并执行脚本的脚本:
iwr ("https://<some_url>/test.ps1") | iex
我做错了什么? 预先感谢您的帮助
答案 0 :(得分:0)
我认为add-type通过将类型定义编译为C#起作用。也许这出了什么问题。但是在PS 5中,您可以不使用add-type(也可以使用标记枚举)来创建枚举。 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