您好,
我正在尝试自动化域控制器的安装和升级,域控制器被添加到没有子域的现有根目录林中。我在ConfigMgr任务序列中使用以下代码执行此操作(因此脚本本身作为系统运行):
function Install-DomainController
{
param(
[string]$CUST_DSRMPassword,
[System.Management.Automation.PSCredential]$CUST_ADDSCredentials
)
Write-LogEntry -Type Information -Message "Promoting the Server to a Domain Controller..."
try
{
Install-ADDSDomainController `
-NoGlobalCatalog:$false `
-CreateDNSDelegation:$false `
-CriticalReplicationOnly:$false `
-Credential $CUST_ADDSCredentials `
-Adprepcredential $CUST_ADDSCredentials `
-DatabasePath "$NTDSPath" `
-DomainName "$DomainName" `
-InstallDNS:$true `
-LogPath "$NTDSPath" `
-ReplicationSourceDC "$CUST_DomainControllerToUse" `
-SysvolPath "$SysvolPath" `
-Force:$true `
-NoRebootOnCompletion:$true `
-SafeModeAdministratorPassword (ConvertTo-SecureString -AsPlainText $CUST_DSRMPassword -Force)
}
catch
{
$ErrorMessage = $_.Exception.Message
$FailedItem = $_.Exception.ItemName
Write-LogEntry -Type Error -Message "The Item '$FailedItem' caused the following error: '$ErrorMessage'!"
}
}
凭据作为参数传递,格式为[System.Management.Automation.PSCredential]。我可以通过在运行时打开cmd窗口,运行powershell并使用以下代码来验证凭据是否正确:
$CUST_ADDSCredentials.Password
$CUST_ADDSCredentials.GetNetworkCredential()
$CUST_ADDSCredentials.GetNetworkCredential().Password
我知道我传递给cmdlet的用户实际上是域管理员,企业管理员和架构管理员的成员。但我仍然收到以下错误消息:
用户不是DA或EA。 VerifyUserCredentialPermissions错误消息: 您尚未提供属于域的用户凭据 管理员组或Enterprise Admins组。安装可能会失败 拒绝访问错误。你想继续吗?
我很困惑我在这里做错了什么。我是否可能需要通过打开单独的PSSession并使用Invoke-Command -Session -ScriptBlock {}来在不同的上下文中运行cmdlet?或者是否有一些显而易见的东西我不知道?
感谢任何帮助: - )
最诚挚的问候,
佛瑞德