使用 .Net Core 在 PowerShell 中安装 ActiveDirectory 驱动器时遇到问题
Trouble mounting ActiveDirectory Drive in PowerShell using .Net Core
我们正在创建一个微服务来在 AD 中做一些事情。此服务要求将活动目录作为 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
。
我们正在创建一个微服务来在 AD 中做一些事情。此服务要求将活动目录作为 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
。