Updates project to add powershell module
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
using System;
|
||||
using System.Management.Automation;
|
||||
|
||||
namespace Lithnet.CredentialProvider.RegistrationTool
|
||||
{
|
||||
[Cmdlet(VerbsCommon.Get, "CredentialProvider", DefaultParameterSetName = "None")]
|
||||
public class GetCredentialProviderCmdlet : PSCmdlet
|
||||
{
|
||||
[Parameter(ParameterSetName = "GetByFileName")]
|
||||
public string File { get; set; }
|
||||
|
||||
[Parameter(ParameterSetName = "GetByClsid")]
|
||||
public Guid Clsid { get; set; }
|
||||
|
||||
[Parameter(ParameterSetName = "GetByProgId")]
|
||||
public string ProgId { get; set; }
|
||||
|
||||
protected override void ProcessRecord()
|
||||
{
|
||||
if (this.ParameterSetName == "None")
|
||||
{
|
||||
foreach (var item in CredentialProviderRegistrationServices.GetCredentalProviders())
|
||||
{
|
||||
this.WriteObject(item);
|
||||
}
|
||||
}
|
||||
else if (this.ParameterSetName == "GetByFileName")
|
||||
{
|
||||
var assembly = CredentialProviderRegistrationServices.LoadAssembly(this.File);
|
||||
|
||||
foreach (var type in CredentialProviderRegistrationServices.GetCredentialProviders(assembly))
|
||||
{
|
||||
CredentialProviderRegistrationServices.GetCredentialProvider(type);
|
||||
this.WriteVerbose($"Got credential provider {type.FullName}");
|
||||
}
|
||||
}
|
||||
else if (this.ParameterSetName == "GetByClsid")
|
||||
{
|
||||
CredentialProviderRegistrationServices.GetCredentialProvider(this.Clsid);
|
||||
}
|
||||
else if (this.ParameterSetName == "GetByProgId")
|
||||
{
|
||||
var clsid = CredentialProviderRegistrationServices.GetClsidFromProgId(this.ProgId);
|
||||
CredentialProviderRegistrationServices.GetCredentialProvider(clsid);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user