当前位置: 首页 > 编程笔记 >

PowerShell函数参数用星号隐藏的方法

干京
2023-03-14
本文向大家介绍PowerShell函数参数用星号隐藏的方法,包括了PowerShell函数参数用星号隐藏的方法的使用技巧和注意事项,需要的朋友参考一下

本文介绍在PowerShell中创建函数时,如何让函数的参数输入值的时候自动变成星号。

什么叫自动变成星号呢?举个例子,我们在登录一个邮箱时,输入用户时看到的是明文的,但我们在输入密码时,看到的是一个个增加的星号。在使用PowerShell自定义函数时,如何设置才能让输入密码之类的参数时,自己用星号掩盖呢?且往下看。


function Test-Password {

    param

    (

    [Parameter(Mandatory=$true)]

    $password

    )

    $plain = (New-Object System.Management.Automation.PSCredential(‘splaybow.com',$password)).GetNetworkCredential().Password

    Write-Host “你输入了: $plain”

}

像上面这个函数,定义了一个必选的$password函数,我们不希望在输入这个参数的值时以明文显示,因为那样很有可能会被旁边的人把密码剽窃。于是我们将代码作一下修改。


function Test-Password {

    param

    (

    [System.Security.SecureString]

    [Parameter(Mandatory=$true)]

    $password

    )

    $plain = (New-Object System.Management.Automation.PSCredential(‘splaybow.com',$password)).GetNetworkCredential().Password

    Write-Host “你输入了: $plain”

}


注意,上面在Parameter这个限制语句之前加了一句“[System.Security.SecureString]”,这个修饰语句用于将输入参数设置为安全字符串类型,这样输入这个参数的值时,就会变成星号了。这是一个很有用的技巧,大家不妨试试。

关于PowerShell函数设置输入参数被星号掩盖,本文就介绍这么多,希望对您有所帮助,谢谢!

 类似资料:
  • 问题内容: 函数参数中的星号有什么作用? 当我查看pickle模块时,我看到了: 我知道在参数之前(对于可变数量的参数)之前的单星号和双星号,但是在此之前没有。而且我很确定这与泡菜无关。那可能只是这种情况的一个例子。我将其发送给翻译人员时才知道它的名字: 如果重要的话,我使用的是python 3.3.0。 问题答案: 用于强制调用方使用命名参数-因此,如果没有以下关键字参数,则无法将函数定义为参数

  • 函数参数中的星号有什么作用? 当我查看pickle模块时,我看到: 我知道前面的参数有一个单星号和双星号(对于可变数量的参数),但是它没有前面的任何东西。我很确定这和泡菜无关。这可能只是这种情况发生的一个例子。当我把这个发给翻译时,我才知道它的名字: 如果重要的话,我使用的是python 3.3.0。

  • 本文向大家介绍Python 带星号(* 或 **)的函数参数详解,包括了Python 带星号(* 或 **)的函数参数详解的使用技巧和注意事项,需要的朋友参考一下 1. 带默认值的参数 在了解带星号(*)的参数之前,先看下带有默认值的参数,函数定义如下: (1)带默认值的参数(defaultStr、defaultNum)不传参时的调用: (2)带默认值的参数(defaultStr、defaultN

  • 问题内容: 我正在使用itertools.chain以这种方式“拉平”列表列表: 这跟说的有什么不同? 问题答案: 是“ splat”运算符:它接受一个列表作为输入,并将其扩展为函数调用中的实际位置参数。 所以如果是,那就等于说 这与传递just显然不同。对于您的情况,您有一个想要拼合的列表列表;什么确实是在所有你传递给它的位置参数,其中每个位置参数是在自己的权利迭代拼接返回一个迭代。 换句话说,

  • 问题内容: 我正在使用以这种方式“拉平”列表列表: 这跟说的有什么不同? 问题答案: 是“ splat”运算符:它接受一个列表作为输入,并将其扩展为函数调用中的实际位置参数。 所以如果,那就 这与传递just显然不同。对于你的情况,你有一个要拼合的列表列表;什么确实是在所有你传递给它的位置参数,其中每个位置参数是在自己的权利迭代拼接返回一个迭代。 换句话说,你希望将每个列表作为参数传递给,这会将它

  • 我正在构建一个API,在这里我有几个endpoint,我需要用户ID,所以在从这篇文章中投票最多的答案(而不是被接受的答案)中得到想法后:ASP。NET MVC将对象从自定义操作筛选器传递到操作。 我创建了一个动作过滤器,我可以用属性来设置它。 所以我基本上是通过这个操作过滤器获得用户ID,它通过这样的方式从授权头获得: 唯一的问题是,现在它在我的Swagger文档中将参数显示为必需的参数(我根本