多个强制参数集

2023-12-13

我正在开发一个包含多个参数集的函数,其中一些是强制性的,一些是可选的。

这只是一个例子,但想象一下以下情况:

从 AD 组中添加或删除用户或计算机的功能(由于某种原因,您需要区分用户和计算机)。

请记住这只是一个例子。在这种情况下,添加/删除单个内容会容易得多[string]参数与一个ValidateSet(),但这不是重点。

所以你有 4 个参数集:

Param
(
    [Parameter(ParameterSetName = 'Add', Mandatory = $true)][switch] $Add,
    [Parameter(ParameterSetName = 'Remove', Mandatory = $true)][switch] $Remove,

    [Parameter(ParameterSetName = 'User', Mandatory = $true)][switch] $User,
    [Parameter(ParameterSetName = 'Computer', Mandatory = $true)][switch] $Computer
)

现在的问题是你只能使用四个参数之一,而不是(添加或删除)和(用户或计算机)

我知道每个参数可以使用多个参数集,但我看不到强制它具有两个始终强制的参数集的方法。实际上,您必须始终指定“添加”或“删除”以及“用户”或“计算机”。

如何才能做到这一点?


您需要为这些不同的组合定义多个参数集。 尝试这个:

Function TestParamSet {
    [CmdletBinding()]
    Param
    (
        [Parameter(ParameterSetName = 'AddUser', Mandatory = $true)]
        [Parameter(ParameterSetName = 'AddComputer', Mandatory = $true)]
        [switch] $Add,

        [Parameter(ParameterSetName = 'RemoveUser', Mandatory = $true)]
        [Parameter(ParameterSetName = 'RemoveComputer', Mandatory = $true)]
        [switch] $Remove,

        [Parameter(ParameterSetName = 'AddUser', Mandatory = $true)]
        [Parameter(ParameterSetName = 'RemoveUser', Mandatory = $true)]
        [switch] $User,

        [Parameter(ParameterSetName = 'AddComputer', Mandatory = $true)]
        [Parameter(ParameterSetName = 'RemoveComputer', Mandatory = $true)]
        [switch] $Computer
    )

    Process {
        #Do Nothing
    }
}

并且,当您获得有关此功能的帮助时,您会看到以下内容:

PS C:\> Get-Help TestParamSet 

NAME
    TestParamSet

SYNTAX
    TestParamSet -Add -Computer  [<CommonParameters>]

    TestParamSet -Add -User  [<CommonParameters>]

    TestParamSet -Remove -Computer  [<CommonParameters>]

    TestParamSet -Remove -User  [<CommonParameters>]


ALIASES
    None


REMARKS
    None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

多个强制参数集 的相关文章

随机推荐

  • 使用 QXmlQuery (Qt XQuery) 时如何绑定命名空间前缀?

    我正在尝试使用 QXmlQuery 对具有声明的默认命名空间的文档执行 XQuery 表达式 供讨论
  • 当我想从steam市场获取json时,jquery json错误

    我在向 Steam 发送 ajax 请求时遇到问题 我想从蒸汽市场获得价格 function jPrice httpToJson getJSON httpToJson function data return data median pri
  • 如何将 DLL 中的表单嵌入到 Inno Setup 向导页面中?

    我在 Delphi DLL 中构建了一些 VCL 表单 这些表单在 Inno Setup 安装期间显示 然而 如果我可以将这些表单嵌入到 Inno Setup 向导中 那就会更加简洁 我该怎么做呢 对您来说最简单的方法是创建一个导出函数 它
  • 单队列:多个消费者并发消息处理

    我是jms新手 目标是在异步侦听器的 onMessage 方法中同时处理来自队列的消息 方法是将侦听器实例附加到多个消费者 每个消费者使用自己的会话并在单独的线程中运行 这样消息就会传递给不同的消费者并发处理 1 是否可以通过创建多个消费者
  • 在 R Shiny 中使用 renderText() 输出多行文本

    我想使用一个输出多行文本renderText 命令 然而 这似乎不可能 例如 从闪亮教程我们已经截断了代码server R shinyServer function input output output text1 lt renderTe
  • 什么是 JavaScript 数组?

    我试图了解 JavaScript 数组是什么 因为传统编程语言将数组定义为可以使用偏移量寻址的连续存储区域 现在 一个普通的 JavaScript 对象可以被寻址为 myObj myProperty my Value or myObj my
  • React:如何从子组件渲染父组件?

    我的任务是为客户构建一个项目 该项目需要一个父组件包装三个子组件 具体来说 父组件按照以下方式渲染子组件 父级 顶部 中间 底部 PARENT 组件代表一组项目中的一个 在顶部组件中 有一个菜单按钮 显示组中所有项目的列表 其目的是 如果用
  • 在循环中使用 Promises 和 fs.readFile

    我试图理解为什么下面的承诺设置不起作用 注意 我已经使用 async map 解决了这个问题 但我想了解为什么我的以下尝试不起作用 正确的行为应该是 bFunc 应根据需要运行多次以读取所有图像文件 下面的 bFunc 运行两次 然后 cF
  • 计算不带小数的平均值

    我希望我能弄清楚这一点 我需要生成一个表 其平均值称为 AVG AMT 整数 并且没有小数 它可以舍入或截断 对于这张桌子来说 这确实不重要 这是我试图写的 SELECT TC Code AVG ALW AMT as int 8 0 AS
  • 如何在我不想编辑的第 3 方代码中禁用 gcc 发出的未使用变量警告?

    我想知道您将什么开关传递给 gcc 编译器来关闭未使用的变量警告 我在 Windows 上的 boost 中遇到错误 并且我不想触及 boost 代码 C boost 1 52 0 boost system error code hpp A
  • Angular JS 指令 - 模板、编译还是链接?

    我想创建一个 Angular JS 指令来检查字符串的长度 如果字符串太长 无法使用过滤器缩短它 并在鼠标悬停时显示 Angular UI 弹出窗口 我应该在指令中的哪个位置放置功能以使其正常工作 链接 模板或编译 风景 div proje
  • 如何暂停多处理进程?

    我希望用户能够在启动后的任何给定时间暂停多处理的执行 如何实现 我的代码是 coding utf 8 from PySide import QtCore QtGui from Ui MainWindow import Ui MainWind
  • 无法将 1 和 0 的字符串写入二进制文件,C++

    我有一个函数 它接收一个指向带有要打开的文件名的字符串的指针 并用 1 和 0 进行编码 编码线包含类似的东西010100110101110101010011写入二进制文件后 我有完全相同的 你会推荐吗 谢谢 void codeFile c
  • docker React 无法在本地主机上运行

    我正在尝试使用 docker 运行我的 React 应用程序 当我运行容器时 一切看起来都很好 但我无法在本地主机 或 127 0 0 1 上访问它 这是我的配置 Dockerfile FROM node carbon RUN mkdir
  • Django 中的 AbstractUser 与 AbstractBaseUser?

    指某东西的用途AbstractUser and AbstractBaseUser看起来很相似 from django contrib auth models import AbstractUser AbstractBaseUser 两者有什
  • 如何使ForeignKey('self')禁令的管理员引用其自身?

    我有一个模型 其自身带有外键 例如 class Folder models Model name models CharField parent folder models ForeignKey self null True blank T
  • 运行单个 Maven 插件执行?

    我以为我是一个经验丰富的 Maven 用户 但我对如何做到这一点有一个心理障碍 我已经能够使用 Maven sql 插件通过我定义并绑定到的插件执行在数据库中删除 创建和安装模式pre integration test phase 然而 现
  • 在公式栏中隐藏公式

    当我在 Visual Basic 中使用下面所示的代码时 HYPERLINK公式中出现的部分bar 在工作表中 我只想 TextHere 显示在公式栏中 我可以添加哪些额外代码 我尝试通过在保护选项卡中更改其属性来隐藏它 但它不允许我再编辑
  • 以编程方式 Fling ListView Android

    有没有一种方法可以以编程方式在列表视图上执行 Fling 我知道有猴子可以做所有这些事情 但这需要计算机与 adb 等连接 我想在任何手机上使用我的应用程序来完成此操作 而不需要猴子 谢谢 费萨尔 有两种方法可以 平滑滚动 而不是跳转到某个
  • 多个强制参数集

    我正在开发一个包含多个参数集的函数 其中一些是强制性的 一些是可选的 这只是一个例子 但想象一下以下情况 从 AD 组中添加或删除用户或计算机的功能 由于某种原因 您需要区分用户和计算机 请记住这只是一个例子 在这种情况下 添加 删除单个内