如何解决术语“Get-ADFineGrainedPasswordPolicySubject”未被识别为命令行开关从 powershell 在 C# 中执行时
虽然我可以创建细粒度的策略并使用“Add-ADFineGrainedPasswordPolicySubject”命令行开关应用这些策略,但没有任何问题。但是,虽然这些命令行开关是从 C# 程序中引用的,但它开始抱怨 Get-ADFineGrainedPasswordPolicySubject
和 Add-ADFineGrainedPasswordPolicySubject
作为“术语 Get-ADFineGrainedPasswordPolicySubject”未被识别为命令行开关或函数。
我真的不知道。我已经导入了“Active Directory”模块,但仍然一直抛出异常。
没有在互联网上的某处找到任何解决方案,有点卡住了。
请参考以下源代码。
using (var powerShell = PowerShell.Create())
{
powerShell.Commands.AddCommand("Import-Module").AddArgument("ActiveDirectory");
powerShell.Invoke();
powerShell.Commands.Clear();
powerShell.Commands.AddCommand(new Command("Get-ADDefaultDomainPasswordPolicy",true));
ICollection<PSObject> defaultDomainPasswordPolicyOutput = powerShell.Invoke();
if (defaultDomainPasswordPolicyOutput != null)
{
defaultDomainPasswordPolicyOutput.ToList().ForEach(policy =>
{
var newFineGrainedpolicyCmdLet = $"New-ADFineGrainedPasswordPolicy -Name preppedPolicy -Precedence 1";
powerShell.Commands.AddCommand(new Command(newFineGrainedpolicyCmdLet,true));
powerShell.Invoke();
Console.WriteLine("Error Count : {0}",powerShell.Streams.Error.Count);
var fineGrainedPolicySubjCmdLetASked = $"Get-ADFineGrainedPasswordPolicySubject -Identity preppedPolicy";
powerShell.Commands.AddCommand(fineGrainedPolicySubjCmdLetASked);
powerShell.Invoke();
var fineGrainedPolicySubjCmdLet = $"Add-ADFineGrainedPasswordPolicySubject -Identity preppedPolicy -Subjects S-ahpOneserver";
powerShell.Commands.AddCommand(fineGrainedPolicySubjCmdLet);
powerShell.Invoke();
});
}
else
{
Console.WriteLine("Policies dont found.");
Console.ReadLine();
}
}
}
catch(Exception ex)
{
Console.WriteLine("Inside exception area : ");
Console.WriteLine("Exceptions {0}",ex);
Console.ReadLine();
}
该程序可以在具有 .NET 环境的 Windows Server 2012 R2 上运行,并在那里抛出上述异常。
知道如何摆脱这种情况吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。