If you also encounter the following errors when installing Exchange 2016, I can perhaps save you a bit of searching:
Fehler:
Der folgende Fehler wurde generiert, als „$error.Clear();
Set-WERRegistryMarkers;
" was executed: "Microsoft.Exchange.Provisioning.ProvisioningBrokerException: Error initializing the provisioning level: '"Error initializing the scripting agent: "File not found: 'C:\Program Files\Microsoft\Exchange Server\V15\Bin\CmdletExtensionAgents\ScriptingAgentConfig.xml'.""' -> Microsoft.Exchange.Provisioning.ProvisioningException: "Error initializing the scripting agent: "File not found: 'C:\Program Files\Microsoft\Exchange Server\V15\Bin\CmdletExtensionAgents\ScriptingAgentConfig.xml'."" -> System.IO.FileNotFoundException: "File not found: 'C:\Program Files\Microsoft\Exchange Server\V15\Bin\CmdletExtensionAgents\ScriptingAgentConfig.xml'."
for Microsoft.Exchange.ProvisioningAgent.ScriptingAgentConfiguration.Initialize(String xmlConfigPath)
for Microsoft.Exchange.ProvisioningAgent.ScriptingAgentConfiguration..ctor(String xmlConfigPath)
- End of internal exception stack monitoring -
for Microsoft.Exchange.ProvisioningAgent.ScriptingAgentConfiguration..ctor(String xmlConfigPath)
for Microsoft.Exchange.ProvisioningAgent.ScriptingAgentClassFactory.get_Configuration()
for Microsoft.Exchange.ProvisioningAgent.ScriptingAgentClassFactory.GetSupportedCmdlets()
for Microsoft.Exchange.Provisioning.ProvisioningBroker.BuildHandlerLookupTable(CmdletExtensionAgent[] enabledAgents, Exception& ex)
- End of internal exception stack monitoring -
for Microsoft.Exchange.Provisioning.ProvisioningLayer.GetProvisioningHandlersImpl(Task task)
for Microsoft.Exchange.Provisioning.ProvisioningLayer.GetProvisioningHandlers(Task task)
for Microsoft.Exchange.Configuration.Tasks.Task.b__4()
for Microsoft.Exchange.Configuration.Tasks.Task.InvokeNonRetryableFunc(Action func, Boolean terminatePipelineIfFailed)".
The relevant part is as follows:
File not found: 'C:\Program Files\Microsoft\Exchange Server\V15\Bin\CmdletExtensionAgents\ScriptingAgentConfig.xml'
Background: I have tried Exchange 2016 in an existing Exchange 2013 organization with activated Scripting Agent to be installed. The ScriptingAgentConfig.xml file can therefore not exist on the Exchange 2016 servers currently being installed.
Troubleshooting: As the installation of Exchange 2016 can now only be completed incompletely, the ScriptingAgentConfig.xml file can be copied from an existing Exchange server to the corresponding directory on the Exchange 2016 server. The setup can then be continued.
Simply copy the file from the path specified above from an existing Exchange server to the corresponding directory on the incompletely installed server and restart the setup.
After copying the file, the installation runs smoothly.
Guten Morgen,
ein ähnliches Problem, das jedoch dazu passt – und vielleicht hilft es ja jemandem vor dem Verzweifeln weiter.
Update auf CU20 brach mehrfach ab – fehlende Dateien:
C:\Program Files\Microsoft\Exchange Server\V15\bin\ManageScheduledTask.ps1
C:\Program Files\Microsoft\Exchange Server\V15\bin\de-DE\ManageScheduledTask.Strings.psd1
C:\Program Files\Microsoft\Exchange Server\V15\bin\EnterpriseServiceEndpointsConfig.xml
Diese konnten im Installationsimage des CU20 gefunden werden, wobei es kein „de-DE“-Verzeichnis gab (anlegen). Bei der Datei war auch die DE-Version im Image zu nehmen.
Anschließend lief es dann.
Sonnige Grüße – Karsten
Danke! Das hat mein 2016er CU22 Update heute wiederbelebt.
Und wenn die datei nirgendwo ist?
Hallo Frank,
folgender Fehler kommt bei der Installation, bitte um Unterstützung.
Fehler:
Der folgende Fehler wurde generiert, als „$error.Clear();
if ($RoleIsDatacenter -ne $true -and $RoleIsDatacenterDedicated -ne $true)
{
if (Test-ExchangeServersWriteAccess -DomainController $RoleDomainController -ErrorAction SilentlyContinue)
{
$sysMbx = $null;
$name = „SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}“;
$dispName = „Microsoft Exchange“;
Write-ExchangeSetupLog -Info („Retrieving mailboxes with Name=$name.“);
$mbxs = @(Get-Mailbox -Arbitration -Filter {name -eq $name} -IgnoreDefaultScope -ResultSize 1 );
if ($mbxs.Length -eq 0)
{
Write-ExchangeSetupLog -Info („Retrieving mailbox databases on Server=$RoleFqdnOrName.“);
$dbs = @(Get-MailboxDatabase -Server:$RoleFqdnOrName -DomainController $RoleDomainController);
if ($dbs.Length -ne 0)
{
Write-ExchangeSetupLog -Info („Retrieving users with Name=$name.“);
$arbUsers = @(Get-User -Filter {name -eq $name} -IgnoreDefaultScope -ResultSize 1);
if ($arbUsers.Length -ne 0)
{
Write-ExchangeSetupLog -Info („Enabling mailbox $name.“);
$sysMbx = Enable-Mailbox -Arbitration -Identity $arbUsers[0] -DisplayName $dispName -database $dbs[0].Identity;
}
}
}
else
{
if ($mbxs[0].DisplayName -ne $dispName )
{
Write-ExchangeSetupLog -Info („Setting DisplayName=$dispName.“);
Set-Mailbox -Arbitration -Identity $mbxs[0] -DisplayName $dispName -Force;
}
$sysMbx = $mbxs[0];
}
# Set the Organization Capabilities needed for this mailbox
if ($sysMbx -ne $null)
{
# We need 1 GB for uploading large OAB files to the organization mailbox
Write-ExchangeSetupLog -Info („Setting mailbox properties.“);
set-mailbox -Arbitration -identity $sysMbx -UMGrammar:$true -OABGen:$true -GMGen:$true -ClientExtensions:$true -MailRouting:$true -MessageTracking:$true -PstProvider:$true -MaxSendSize 1GB -Force;
Write-ExchangeSetupLog -Info („Configuring offline address book(s) for this mailbox“);
Get-OfflineAddressBook | where {$_.ExchangeVersion.CompareTo([Microsoft.Exchange.Data.ExchangeObjectVersion]::Exchange2012) -ge 0 -and $_.GeneratingMailbox -eq $null} | Set-OfflineAddressBook -GeneratingMailbox $sysMbx.Identity;
}
else
{
Write-ExchangeSetupLog -Info („Cannot find arbitration mailbox with name=$name.“);
}
}
else
{
Write-ExchangeSetupLog -Info „Skipping creating E15 System Mailbox because of insufficient permission.“
}
}
“ ausgeführt wurde: „Microsoft.Exchange.Data.DataValidationException: ‚Database‘ ist für ‚UserMailbox‘ verbindlich.“.
Fehler:
Der folgende Fehler wurde generiert, als „$error.Clear();
if ($RoleIsDatacenter -ne $true -and $RoleIsDatacenterDedicated -ne $true)
{
if (Test-ExchangeServersWriteAccess -DomainController $RoleDomainController -ErrorAction SilentlyContinue)
{
$sysMbx = $null;
$name = „SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}“;
$dispName = „Microsoft Exchange“;
Write-ExchangeSetupLog -Info („Retrieving mailboxes with Name=$name.“);
$mbxs = @(Get-Mailbox -Arbitration -Filter {name -eq $name} -IgnoreDefaultScope -ResultSize 1 );
if ($mbxs.Length -eq 0)
{
Write-ExchangeSetupLog -Info („Retrieving mailbox databases on Server=$RoleFqdnOrName.“);
$dbs = @(Get-MailboxDatabase -Server:$RoleFqdnOrName -DomainController $RoleDomainController);
if ($dbs.Length -ne 0)
{
Write-ExchangeSetupLog -Info („Retrieving users with Name=$name.“);
$arbUsers = @(Get-User -Filter {name -eq $name} -IgnoreDefaultScope -ResultSize 1);
if ($arbUsers.Length -ne 0)
{
Write-ExchangeSetupLog -Info („Enabling mailbox $name.“);
$sysMbx = Enable-Mailbox -Arbitration -Identity $arbUsers[0] -DisplayName $dispName -database $dbs[0].Identity;
}
}
}
else
{
if ($mbxs[0].DisplayName -ne $dispName )
{
Write-ExchangeSetupLog -Info („Setting DisplayName=$dispName.“);
Set-Mailbox -Arbitration -Identity $mbxs[0] -DisplayName $dispName -Force;
}
$sysMbx = $mbxs[0];
}
# Set the Organization Capabilities needed for this mailbox
if ($sysMbx -ne $null)
{
# We need 1 GB for uploading large OAB files to the organization mailbox
Write-ExchangeSetupLog -Info („Setting mailbox properties.“);
set-mailbox -Arbitration -identity $sysMbx -UMGrammar:$true -OABGen:$true -GMGen:$true -ClientExtensions:$true -MailRouting:$true -MessageTracking:$true -PstProvider:$true -MaxSendSize 1GB -Force;
Write-ExchangeSetupLog -Info („Configuring offline address book(s) for this mailbox“);
Get-OfflineAddressBook | where {$_.ExchangeVersion.CompareTo([Microsoft.Exchange.Data.ExchangeObjectVersion]::Exchange2012) -ge 0 -and $_.GeneratingMailbox -eq $null} | Set-OfflineAddressBook -GeneratingMailbox $sysMbx.Identity;
}
else
{
Write-ExchangeSetupLog -Info („Cannot find arbitration mailbox with name=$name.“);
}
}
else
{
Write-ExchangeSetupLog -Info „Skipping creating E15 System Mailbox because of insufficient permission.“
}
}
“ ausgeführt wurde: „Microsoft.Exchange.Data.DataValidationException: ‚Database‘ ist für ‚UserMailbox‘ verbindlich.
bei Microsoft.Exchange.Configuration.Tasks.Task.ThrowError(Exception exception, ErrorCategory errorCategory, Object target, String helpUrl)
bei Microsoft.Exchange.Configuration.Tasks.Task.WriteError(Exception exception, ErrorCategory category, Object target, Boolean reThrow)
bei Microsoft.Exchange.Configuration.Tasks.DataAccessTask`1.Validate(TDataObject dataObject)
bei Microsoft.Exchange.Configuration.Tasks.SetTaskBase`1.InternalValidate()
bei Microsoft.Exchange.Configuration.Tasks.SetRecipientObjectTask`3.InternalValidate()
bei Microsoft.Exchange.Management.Common.SetMailEnabledRecipientObjectTask`3.InternalValidate()
bei Microsoft.Exchange.Management.RecipientTasks.SetUserBase`3.InternalValidate()
bei Microsoft.Exchange.Management.RecipientTasks.SetMailboxBase`3.InternalValidate()
bei Microsoft.Exchange.Management.RecipientTasks.SetMailbox.InternalValidate()
bei Microsoft.Exchange.Configuration.Tasks.Task.b__91_1()
bei Microsoft.Exchange.Configuration.Tasks.Task.InvokeRetryableFunc(String funcName, Action func, Boolean terminatePipelineIfFailed)“.
Hallo Frank,
hat mir auch bei der Exchange 2016 Installation in einer vorhandenen Exchange 2010 Organisation geholfen, vielen Dank.