각 사용자 이름과 암호를 실행해야하는 일부 사용자 지정 cmdlet가 있습니다. 현재이 cmdlet을 실행할 때마다 자격 증명을 입력해야합니다. 사용 패턴은 일반적으로 짧은 시간 내에 여러 명령 조합을 실행합니다. 어쩌면 매 2 일마다 한 번씩 실행할 수 있습니다. 즉,이 짧은 기간 내에 여러 번 암호를 입력해야합니다.Powershell cmdlet 호출에서 암호의 메모리 내 캐싱
Powershell이 일정 기간 동안 메모리에 자격 증명을 캐시 할 수있는 방법이 있습니까? 나는 이것이 보안상의 절충이라고 생각하지만, 비밀 번호가 SecureString
으로 저장되어 있다는 것을 고려할 때 나는 기꺼이하겠다. 일부 cmdlet 호출에서 데이터를 저장할 수있는 영구 "세션"개체가있는 경우에도 작동하지만 이러한 기능을 식별 할 수는 없습니다.
UPDATE는 내가 .NET 코어를 표적으로하고있어 및 PSCredential
유형을 사용할 수 없었습니다 언급하는 것을 잊었다. 내 기본 cmdlet은 수업이 있습니다
[Parameter(
Mandatory = true,
HelpMessage = "Credentials for access.",
ValueFromPipelineByPropertyName = true)]
public PSCredential Credentials
{
get;
set;
}
그러나 Password
속성이 컴파일러 오류가 있습니다 역 참조를 시도 : 내 프로젝트의
Reference to type 'SecureString' claims it is defined in 'mscorlib', but it could not be found Contented.PowerShell..NETStandard,Version=v1.6
관련 의존성은 다음과 같습니다
"dependencies": {
"Microsoft.PowerShell.5.ReferenceAssemblies": "1.0.0-*",
"System.Security.SecureString": "4.3.0"
},
불행히도 .NET 코어를 대상으로하기 때문에'PSCredential'이 작동하지 않습니다. 그 문제를 언급하는 걸 깜빡 했네. 미안해. –
글쎄, 당신의 코드 또는 뭔가를 공유, 그 문제가 지금 무엇인지 완전히 불분명하다 – 4c74356b41
업데이트 된 질문을 참조하십시오. –