自定义PowerShell函数,在设置参数的时候中,可以将参数设置为某些情况下可选,某些条件下又设置为必选。

  示例代码从网站复制的。

 function Connect-Somewhere
{
[CmdletBinding(DefaultParameterSetName='A')]
param
(
[Parameter(ParameterSetName='A',Mandatory=$false)]
[Parameter(ParameterSetName='B',Mandatory=$true)]
$ComputerName,
[Parameter(ParameterSetName='B',Mandatory=$false)]
$Credential
)
$chosen = $PSCmdlet.ParameterSetName
“You have chosen $chosen parameter set.”
}

  示例函数定义了两个参数集:A,B。

  参数集A只有一个参数$ComputerName,且它是可选的。

  参数集B有两个参数$ComputerName和$Credential。

  如使用默认参数集A,函数不需要输入ComputerName参数,因为它不是必选的。

  如使用参数$Credential,参数集被赋值为B,这时参数$ComputerName属性Mandatory=$true,这时强制使用$ComputerName了。

下面一个例子更详细演示:

 function Test-ParameterSet
{
[CmdletBinding(DefaultParameterSetName = 'NonCredential')]
param
(
$id, [Parameter(ParameterSetName = 'LocalOnly', Mandatory = $false)]
$LocalAction, [Parameter(ParameterSetName = 'Credential', Mandatory = $true)]
[Parameter(ParameterSetName = 'NonCredential', Mandatory = $false)]
$ComputerName, [Parameter(ParameterSetName = 'Credential', Mandatory = $false)]
$Credential
) $PSCmdlet.ParameterSetName
$PSBoundParameters if ($PSBoundParameters.ContainsKey('ComputerName'))
{
Write-Warning '远程调用'
}
}

powershell ParameterSet解析的更多相关文章

  1. 【193】◀▶ PowerShell 官方资料索引

    Microsoft.PowerShell.Core 模块 Windows PowerShell 核心 Cmdlet Windows PowerShell 核心函数 Windows PowerShell ...

  2. Windows下非PE方式载荷投递方式研究

    0. 引言 0x1:载荷是什么?在整个入侵过程中起到什么作用? 载荷的作用在整个入侵链路的作用起到纽带的作用,它借助于目标系统提供的某些功能:组件:执行环境,将攻击者的传递的恶意payload包裹起来 ...

  3. PowerShell与CMD在路径解析上的一点不同

    对于路径含有空格的文件夹,在加入PATH环境变量时,前后往往会加上引号.这种情况,CMD可以正确识别:但是Powershell却不能加上引号,否则无法定位路径. 例如,在PS中,$env:path查看 ...

  4. 一键帮你复制多个文件到多个机器——PowerShell小脚本(内附PS远程执行命令问题解析)

    作为一个后台程序猿,经常需要把一堆程序集(DLL)或者应用程序(EXE)复制到多个服务器上,实现程序的代码逻辑更新,用以测试新的功能或改动逻辑.这里给大家介绍一个自己实现的PowerShell脚本,方 ...

  5. PowerShell ISE/文件名解析缺陷远程执行代码漏洞#RCE

    基础信息 ID 1337DAY-ID- 32642 类型 zdt Reporter hyp3rlinx 修改后的 2019-05-03 00:00:00 描述 在调试包含数组括号作为文件名一部分的特制 ...

  6. PowerShell Notes

    1.  概要 - PowerShell 是cmdlet(command-let)的指令集合,类似unix的bash. - IDE: Windows PowerShell ISE,不区分大小写,可以用命 ...

  7. Sharepoint学习笔记—习题系列--70-576习题解析 -(Q147-Q151)

    Question  147 Your company has an existing SharePoint 2010 public-facing Web site. The Web site runs ...

  8. Sharepoint学习笔记—习题系列--70-576习题解析 -(Q144-Q146)

    Question  144 You are planning a feature upgrade for a SharePoint 2010 farm. The original feature wi ...

  9. Sharepoint学习笔记—习题系列--70-576习题解析 -(Q112-Q115)

    Question  112 You are designing a public-facing SharePoint 2010 Web site for an elementary school th ...

随机推荐

  1. [Oracle,2018-03-02] oracle一次插入多条记录

    insert into student(name,age) ' from dual union all ' from dual union all ' from dual 在oracle中不能像mys ...

  2. Python的随机数模块

    random模块中几个随机函数用法. 引入random模块: import random 1.random.random() 此函数用于生成一个0到1的随机浮点数:0 <= n < 1.0 ...

  3. Laravel常见问题集锦

    1.提示:Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes? ...

  4. 【机器学习_7】numpy

    1. 定义 入门选手不抄作业了,先简单理解下,numpy最大的应用大概是方便做数学运算啥的,功劳在于一个叫ndarray(多维数组)的数据类型.numpy本身没有强大分析能力,只是pandas的基础啥 ...

  5. canal 配置 详细说明

    git hub  https://github.com/alibaba/canal canal.properties介绍:https://agapple.iteye.com/blog/1831873

  6. Linux shell : 管道 |

    概念 意义 理解 用法 返回值 PIPESTATUS An array variable (see Arrays) containing a list of exit status values fr ...

  7. linux 权限之acl

    查看分区ACL权限是否开启 centos 6 dumpe2fs -h /dev/sda1(是查看ext2/ext3/ext4 文件系统信息的命令) centos 7   xfs_growfs /dev ...

  8. C语言冷知识

    C语言属强类型语言(1)编程语言分2种:强类型语言和弱类型语言.强类型语言中所有的变量都有自己固定的类型,这个类型有固定的内存占用,有固定的解析方法:弱类型语言中没有类型的概念,所有变量全都是一个类型 ...

  9. linux 磁盘空间被占满但找不到目标文件的问题处理 lsof命令

    lsof简介 在终端下输入lsof即可显示系统打开的文件,因为 lsof 需要访问核心内存和各种文件,所以必须以 root 用户的身份运行它才能够充分地发挥其功能. 直接输入lsof部分输出为: 每行 ...

  10. oracle随机数(转)

    1.从表中随机取记录SELECT * FROM (SELECT * FROM STUDENT ORDER BY DBMS_RANDOM.RANDOM) WHERE ROWNUM < 4--表示从 ...