powershell - 使用 $host.ui.PromptForCredential 时输入值存储在哪里?
问题描述
在以下代码中,系统将 $Credential 的值存储在哪里?
$Credential= $host.ui.PromptForCredential("","Please Enter Your domain username, eg. user1@contoso.com","","")
代码执行后值会发生什么变化?
请原谅非常基本的问题......只是想确定我正在制作的脚本的任何安全隐患。我还希望能找到专门解决此问题的 MSDN/TechNet 文章。
非常感谢你。
解决方案
首先,你应该Get-Credential
改用 - 它更容易并且做同样的工作:
$credential = Get-Credential -Message "Please Enter Your domain username, eg. user1@contoso.com"
这两种方法都创建了一个PsCredential
对象,对该对象的引用存储在$credential
. 密码以 . 形式存储在内存中SecureString
,以帮助确保其安全,并且不会写入磁盘、注册表等,除非您特意这样做:
PS C:\> $credential
UserName Password
-------- --------
domain\user System.Security.SecureString
因此,不随意尝试阅读是安全的。但是,它并不完全安全:
PS C:\> $credential.GetNetworkCredential() | Format-List *
UserName : user
Password : Password123
SecurePassword : System.Security.SecureString
Domain : domain
推荐阅读
- python - 使用自定义 Python 在 Yarn 上的 Spark 在客户端模式下失败
- ios - iOS Swift 批量请求
- r - 将函数作为输入并在调用时使其表达式可见的函数
- angular - 如何将图像添加到幻灯片
- r - 如何在 google colab for R 中加载 csv 文件?
- vb.net - 在 VB.Net 中获取索引最高值
- aws-lambda - 为 AWS Lambda 添加权限的正确 terraform 语法
- asp.net-core - 如何修复:在 Azure Devops 构建管道实体框架不生成 SQL 脚本
- github - 无法在 Cocoapods 上推送自定义框架
- image - fluttercandies 扩展图像。如何用 1 根手指而不是 2 根手指双击来放大图像?