상승 된 자격 증명을 사용하려면 이진 cmdlet을 작성 중이므로 PSCredential
매개 변수를 사용하고 싶습니다. 내가 찾을 수있는 모든 내가 원하는 바가 아니다, C#을에서 PowerShell cmdlet을 실행하는 방법입니다 -C# 코드에서 PSCredentials 사용
[Parameter]
public PSCredential Credential { get; set; }
이에 대한 문서의 별개의 부족이있는 것 같습니다.
직접 Windows 가장을 피하기 위해 SimpleImpersonation
너겟 패키지를 다운로드했습니다.
using (Impersonation.LogonUser("GLOBAL", "last.first", "mypassword", LogonType.Interactive))
{
foreach (ServerInfo server in Targets)
ProcessRecord();
}
제가 System.Security.Principal.WindowsIdentity.GetCurrent().Name
를 검사 할 때, 사용자는 정확하지만 I가 명령을 실행할 때 (예 ServerManager.OpenRemote(computerName)
)는 I은 UnauthorizedAccessException
을 받는다. 원하는 사용자로 실행되는 PowerShell 인스턴스에서이 코드를 실행하면 cmdlet가 완벽하게 실행됩니다.
어쨌든 PSCredential
을 C# 바이너리 cmdlet에서 활용하는 방법에 대한 단서가 있습니까?