使用.Net Core在PowerShell中安装ActiveDirectory驱动器时出现问题



我们正在创建一个微服务来在AD中做一些事情。该服务要求将active directory作为PSDrive安装到AD

我了解装载的工作原理,并且可以在服务器上的PowerShell中成功完成装载。

对于要添加的模块,我们必须指定ActiveDirectory.psd1的物理位置以供其导入。

我怀疑这就是以下脚本没有成功执行的原因。

脚本:New-PSDrive -PSProvider ActiveDirectory -Name AD -Root "" -Server (Get-ADDomainController -Discover -Service PrimaryDC).Name

如果这样执行,则抛出的异常表明参数Server无效。

删除此参数时,异常表示提供程序ActiveDirectory不存在。

我对此采取了正确的方法吗?

这是C#代码:

string moduleDirectory = Configuration["AppSettings:Directories:PowerShellModules"];
var requiredPowerShellModules = new Dictionary<string, string>()
{
{ "ActiveDirectory", $"{moduleDirectory}\ActiveDirectory\ActiveDirectory.psd1" }
};
foreach (KeyValuePair<string, string> module in requiredPowerShellModules)
{
bool hasModule = Modules.HasModule(module.Key, powerShell);
if (!hasModule)
{
Modules.ImportModule(module.Value, powerShell);
if (!Modules.HasModule(module.Key, powerShell))
{
throw new Exception($"Unable to import PowerShell module: "{module.Key}" at path "{module.Value}"");
}
}
}
//Check if AD Drive mounted
var adDriveResult = powerShell.AddScript("Get-PSDrive AD -ErrorAction SilentlyContinue").Invoke();
//Mount AD Drive if not exists
if (adDriveResult.Count != 1)
powerShell
.AddScript("New-PSDrive -PSProvider ActiveDirectory -Name AD -Root "" -Server (Get-ADDomainController -Discover -Service PrimaryDC).Name ") //
.Invoke();

此问题是由ActiveDirectory powershell模块的过时版本引起的。

服务器上的版本是1.0.0.0,而不是1.0.1.0

相关内容

  • 没有找到相关文章

最新更新