Powershell - 使 SecureString 可供其他用户使用

Powershell - Make SecureString available for other user

我有一个应用程序,我必须在其中存储密码。此应用程序正在使用 SYSTEM 用户调用。我已经混淆了脚本并将其存储在安全位置。

现在我的问题是:是否有可能创建一个可以由一个或多个其他用户解密的 SecureString?

我读过有关使用密钥加密然后将此密钥存储在文件中的可能性,但在我看来这只不过是一种混淆,因为可以访问密钥文件的每个人都可以解密密码。

感谢您的帮助:)

编辑:
澄清我的问题:我想知道除了使用密钥文件之外是否还有其他解决方案。

是的,众所周知,如果您强制用户输入安全字符串,输入者可以使用

将其撤消
$credential = Get-Credential
$credential.UserName
$credential.Password

# Results
<#
cmdlet Get-Credential at command pipeline position 1
Supply values for the following parameters:

$credential.UserName
testuser

$credential.Password
System.Security.SecureString
#>

或使用 .Net 命名空间。那么,如何采用将凭据存储在用户计算机上的 Windows 凭据管理器中的方法。在您的应用程序安装中,您动态生成凭据来存储您随后用于执行的凭据。每当他们 运行 您的代码时,您的代码都会从 Credential Manager 调用 creds,而无需用户交互。

MS PowerShellGallery.com 中有几个模块,在针对凭据管理器使用时可以轻松访问和部署在系统上。

Find-Module -Name '*credential*'

<#
Version              Name                                Repository           Description                                                                           
-------              ----                                ----------           -----------                                                                           
2.0                  CredentialManager                   PSGallery            Provides access to credentials in the Windows Credential Manager                      
...
1.0.11               pscredentialmanager                 PSGallery            This module allows management and automation of Windows cached credentials.           
4.5                  BetterCredentials                   PSGallery            A (compatible) major upgrade for Get-Credential, including support for storing cred...
0.0.1                SecureCredentials                   PSGallery            This module allow to secure store encrypted credentials for running powershell daemon 
1.1.7                CredentialStore                     PSGallery            CredentialStore saves powershell credentials securely to file                         
...
1.1                  CredentialsManager                  PSGallery            The module Credentials Manager provides you with convenient and safe way to store y...
...
1.0.2                CredentialManagement                PSGallery            Manage Credentials stored in the Windows Credential Manager                           
1.1.0                PSCredentialTools                   PSGallery            PSCredentialTools provides various methods for securely storing and retrieving cred...
1.1                  New-Credential                      PSGallery            Simply creates an object (System.Management.Automation.PSCredential) that can be us...
...
#>