Doorgaan naar hoofdcontent

Installatie van SharePoint 2010 Central Administration

23 februari 2010: Bug in script met betrekking tot prerequisites installatie opgelost.

Dit weekend ben ik druk bezig geweest met het schrijven van een PowerShell installatie script voor SharePoint 2010 (beta 2). Het script installeert alle vereiste programma’s, de binaries van SharePoint 2010 en het Central Administration gedeelte op een Windows Server 2008 R2 domain controller met daarop SQL Server 2008 R2. Hierbij wordt er gebruik gemaakt van Kerberos voor de authenticatie.

Het script bestaat uit totaal twaalf stappen.
  1. Security aanpassing t.b.v. installatie op een Domain Controller
  2. Installatie WCF hotfix voor .NET Framework 3.5 Service Pack 1
  3. Installatie SharePoint 2010 Prerequisites
  4. Installatie Microsoft Server Speech Platform + Language pack
  5. Installatie SharePoint 2010
  6. Aanmaken Configuration en Central Administration Content databases
  7. Toepassen beveiligingsinstellingen
  8. Installatie farm services
  9. Installatie beschikbare features
  10. Provisioning van Central Administration
  11. Installatie help bestanden
  12. Installatie applicatie data
Aangezien het script zelf ruimschoots is voorzien van commentaar houd ik het verdere commentaar vrij kort.

Het enige dat ik nog wil opmerken is het volgende. Bij het testen merk ik dat de prerequisites installer nog geen een keer is uitgevoerd zonder problemen en dat mijn script om die reden de eerste keer stopt. Zodra ik hetzelfde script voor een tweede keer draai gaat alles goed.

# ------------------------------------------------------------------------------
# Installatie script voor SharePoint 2010 (Alleen Central Administration)
# ------------------------------------------------------------------------------
#
# Dit script installeert SharePoint 2010 op een enkele server waarop de volgende
# componenten reeds aanwezig zijn:
#
# - Microsoft Windows Server 2008 R2 Standard Edition
#   * Active Directory; reeds gevuld met het benodige service accounts en
#      de benodigde DNS namen voor de installatie van SharePoint 2010.
# - Microsoft SQL Server 2008 R2; geactiveerde componenten:
#  * SQL Server Database Engine
#  * Analysis Services
#  * Reporting Services
#  * Integration Services
#  * Alle client tools en SQL Server Books Online
#
# Controleer onderstaande vereisten en start dit script vanuit een Windows 
# PowerShell 2.0 window dat gestart is middels de optie "Run as administrator".
#
# * Controleer of alle DNS namen en accounts die dit script gebruiken aanwezig 
#  zijn in Active Directory, de DNS namen naar de juiste server verwijzen, 
#  dat de (eventuele) wachtwoorden kloppen en dat accounts actief zijn.
# * Dat in de map van de installatie media het config.xml bestand voorzien is 
#  van de juiste SharePoint licentie code. Zie relevante sectie in het 
#  script voor meer informatie hierover.
#  * Het installatie account lokale beheerder rechten heeft op de server waarop 
#   de installatie gedaan wordt.
# * Het installatie account lid is van de SQL Server dbcreator fixed server 
#  rol.
# * Het installatie account lid is van de SQL Server securityadmin server rol.
# * Het advies is om niet met een gewoon beheerder account te installeren 
#  maar met een specifiek SharePoint installatie account dat na gebruik
#  niet verwijderd  maar alleen gedeactiveerd wordt.
#
# De log bestanden die ontstaan gedurende de installatie worden weggeschreven
# in de temp map van het installatie account.

Write-Host "[START] Installatie SharePoint 2010 op Domain Controller";


# ------------------------------------------------------------------------------
# Algemene instellingen
# ------------------------------------------------------------------------------

# Locatie van het installatie bestanden
[System.String] $SETUP_MEDIA = "D:\SharePoint2010";


# ------------------------------------------------------------------------------
# Aanpassing t.b.v. installatie op een Domain Controller
# ------------------------------------------------------------------------------
#
# Indien SharePoint 2010 wordt geïnstalleerd op een server die ook in gebruik is
# als Domain Controller dient er een registry aanpassing doorgevoerd te worden.
# Deze aanpassing is nodig voor het gebruik van Sandboxed Solutions. Zonder de
# aanpassing zal het proces SPUCWorkerProcess.exe niet starten ondanks dat de
# Microsoft SharePoint Foundation User Code Service wel start.

Write-Host "[01/12] Aanbrengen registry aanpassing t.b.v. installatie op Domain Controller...";

[System.Security.Principal.NTAccount] $identity = "Users";
[System.Security.AccessControl.RegistryRights] $aclRegistryRights = "FullControl";
[System.Security.AccessControl.InheritanceFlags] $aclInheritanceFlags = "ContainerInherit, ObjectInherit";
[System.Security.AccessControl.PropagationFlags] $aclPropagationFlags = "None";
[System.Security.AccessControl.AccessControlType] $aclAccessControlType = "Allow";

# Aanmaken ACL regel
[System.Security.AccessControl.RegistryAccessRule] $aclRule = New-Object -TypeName System.Security.AccessControl.RegistryAccessRule(
$identity, 
$aclRegistryRights, 
$aclInheritanceFlags, 
$aclPropagationFlags, 
$aclAccessControlType);

[System.Security.AccessControl.RegistrySecurity] $acl = Get-Acl -Path "HKLM:\System\CurrentControlSet\Control\ComputerName";
$acl.AddAccessRule($aclRule);

# Aanbrengen van de ACL regel op de bewuste registry entry
[System.String] $foutMelding = $null;
Set-Acl -Path "HKLM:\System\CurrentControlSet\Control\ComputerName" -AclObject $acl -ErrorAction SilentlyContinue -ErrorVariable $foutMelding;

if( [System.String]::IsNullOrEmpty($foutMelding) -eq $true )
{
Write-Host "Registry aanpassing aangebracht";
}
else
{
# Alleen loggen, fout is niet blokkerend voor verdere installatie
Write-Warning $foutMelding;

# Wis foutmelding voor vervolg van het script
$foutMelding = $null;
}


# ------------------------------------------------------------------------------
# KB976462 - WCF hotfix voor .NET Framework 3.5 Service Pack 1
# ------------------------------------------------------------------------------
#
# Deze hotfix is een 'prerequisite' voor de installatie van Microsoft Office 
# SharePoint Server 2010 beta op Windows Server 2008 R2 en Windows 7. Het lost
# de drie onderstaande problemen op:
#
# Feature 1:
# ----------
# The hotfix adds the AllowInsecureTransport property in the 
# SecurityBindingElement class for the .NET Framework 3.5 Service Pack 1. The 
# default value of this property is set to False. When the property is set to 
# True, the mixed-mode secured message can be sent over an unsecured transport 
# such as HTTP in Windows Communication Foundation (WCF) services. The property 
# should be set to True only when the client and the service are in a trusted 
# environment.
#
# Feature 2:
# ----------
# WCF services in the .NET Framework 3.5 Service Pack 1 use only a single 
# thread to receive secure messages, even if SharePoint has multiple Web 
# services concurrently receiving requests from different service clients.
#
# This hotfix adds DispatcherSynchronization endpoint functionality to improve 
# the performance of the SharePoint services that use WCF. This endpoint 
# functionality lets you use multiple threads in a service instance to 
# concurrently receive secure messages.
#
# Feature 3:
# ----------
# This hotfix provides access to the OutgoingSupportingTokens property in the 
# SecurityMessageProperty class. SharePoint Web service clients can use this new 
# property to reduce the average latency of client-side requests by reusing 
# tokens when they are required. Previously, tokens were regenerated for each 
# request.

Write-Host "[02/12] Installatie WCF hotfix voor .NET Framework 3.5 Service Pack 1...";

[System.String] $KB976462_Exe = "{0}\KB976462\Windows6.1-KB976462-v2-x64.msu" -f  $SETUP_MEDIA;
[System.String] $KB976462_Parameters = "/quiet /norestart /log";

# Start hotfix installatie
[System.Diagnostics.Process]::Start($KB976462_Exe,$KB976462_Parameters);

# Wacht tot hotfix installatie klaar is.
[System.Diagnostics.Process] $KB976462Process = (Get-Process | Where-Object { $_.ProcessName -ieq "wusa" });
$KB976462Process.WaitForExit();


# ------------------------------------------------------------------------------
# SharePoint 2010 Prerequisites 
# ------------------------------------------------------------------------------
#
# Voordat SharePoint 2010 geïnstalleerd kan worden dient wel de vereiste
# software aanwezig te zijn. We installeren deze eerst unattended met het
# meegeleverde installatie programma.

Write-Host "[03/12] Installatie prerequisites (dit kan enige tijd duren)...";

# Microsoft SQL Server 2008 Native Client
# http://go.microsoft.com/fwlink/?LinkId=166505
[System.String] $Prerequisite_SQLNCli = "{0}\Prerequisites\sqlncli.msi" -f  $SETUP_MEDIA;

# Microsoft Chart Controls for Microsoft .NET Framework 3.5
# http://go.microsoft.com/fwlink/?LinkID=141512
[System.String] $Prerequisite_ChartControl = "{0}\Prerequisites\MSChart.exe" -f  $SETUP_MEDIA;

# Microsoft "Geneva" Framework
# http://go.microsoft.com/fwlink/?LinkID=165752
[System.String] $Prerequisite_IDFX = "{0}\Prerequisites\MicrosoftGenevaFramework.amd64.msi" -f  $SETUP_MEDIA;

# Microsoft Sync Framework Runtime v1.0 (x64)
# http://go.microsoft.com/fwlink/?LinkID=141237&clcid=0x409
[System.String] $Prerequisite_Sync = "{0}\Prerequisites\Synchronization.msi" -f  $SETUP_MEDIA;

# Microsoft Filter pack 2.0
# http://go.microsoft.com/fwlink/?LinkId=166504
[System.String] $Prerequisite_FilterPack = "{0}\Prerequisites\FilterPackx64.exe" -f  $SETUP_MEDIA;

# Microsoft SQL Server 2008 Analysis Services ADOMD.NET
# http://go.microsoft.com/fwlink/?LinkId=130651
[System.String] $Prerequisite_ADOMD = "{0}\Prerequisites\SQLSERVER2008_ASADOMD10.msi" -f  $SETUP_MEDIA;

# Microsoft Server Speech Platform Runtime (x64)
# http://www.microsoft.com/downloads/details.aspx?familyid=B444FA90-AD7A-490F-86A4-A900567714F0&displaylang=en
[System.String] $Prerequisite_Speech = "{0}\Prerequisites\SpeechPlatformRuntime.msi" -f  $SETUP_MEDIA;

# Speech recognition language for English
# http://download.microsoft.com/download/E/0/3/E033A120-73D0-4629-8AED-A1D728CB6E34/SR/MSSpeech_SR_en-US_TELE.msi
[System.String] $Prerequisite_SpeechLPK_enUS = "{0}\Prerequisites\MSSpeech_SR_en-US_TELE.msi" -f  $SETUP_MEDIA;

# Speech recognition language for Spanish
# http://download.microsoft.com/download/E/0/3/E033A120-73D0-4629-8AED-A1D728CB6E34/SR/MSSpeech_SR_es-ES_TELE.msi
[System.String] $Prerequisite_SpeechLPK_esES = "{0}\Prerequisites\MSSpeech_SR_es-ES_TELE.msi" -f  $SETUP_MEDIA;

# Speech recognition language for German
# http://download.microsoft.com/download/E/0/3/E033A120-73D0-4629-8AED-A1D728CB6E34/SR/MSSpeech_SR_de-DE_TELE.msi
[System.String] $Prerequisite_SpeechLPK_deDE = "{0}\Prerequisites\MSSpeech_SR_de-DE_TELE.msi" -f  $SETUP_MEDIA;

# Speech recognition language for French
# http://download.microsoft.com/download/E/0/3/E033A120-73D0-4629-8AED-A1D728CB6E34/SR/MSSpeech_SR_fr-FR_TELE.msi
[System.String] $Prerequisite_SpeechLPK_frFR = "{0}\Prerequisites\MSSpeech_SR_fr-FR_TELE.msi" -f  $SETUP_MEDIA;

# Speech recognition language for Japanese
# http://download.microsoft.com/download/E/0/3/E033A120-73D0-4629-8AED-A1D728CB6E34/SR/MSSpeech_SR_ja-JP_TELE.msi
[System.String] $Prerequisite_SpeechLPK_jaJP = "{0}\Prerequisites\MSSpeech_SR_ja-JP_TELE.msi" -f  $SETUP_MEDIA;

# Speech recognition language for Chinese
# http://download.microsoft.com/download/E/0/3/E033A120-73D0-4629-8AED-A1D728CB6E34/SR/MSSpeech_SR_zh-CN_TELE.msi
[System.String] $Prerequisite_SpeechLPK_zhCN = "{0}\Prerequisites\MSSpeech_SR_zh-CN_TELE.msi" -f  $SETUP_MEDIA;

[System.String] $Prerequisite_Exe = "{0}\Setup\prerequisiteinstaller.exe" -f $SETUP_MEDIA;

# Beide Microsoft Server Speech Platform command line parameters nog weggelaten 
# omdat SharePoint 2010 beta 2 deze nog niet ondersteund. 
# /Speech:$Prerequisite_Speech /SpeechLPK:$Prerequisite_SpeechLPK_enUS
[System.String] $Prerequisite_Parameters = "/unattended /SQLNCli:{0} /ChartControl:{1} /IDFX:{2} /Sync:{3} /FilterPack:{4} /ADOMD:{5}" -f $Prerequisite_SQLNCli, $Prerequisite_ChartControl, $Prerequisite_IDFX, $Prerequisite_Sync, $Prerequisite_FilterPack, $Prerequisite_ADOMD;

# Uitvoeren van prerequisiteinstaller.exe met de unattended parameters
[System.Diagnostics.Process]::Start($Prerequisite_Exe,$Prerequisite_Parameters);

# Wacht tot setup klaar is.
[System.Diagnostics.Process] $PrerequisiteProcess = (Get-Process | Where-Object { $_.ProcessName -ieq "prerequisiteinstaller" });
$PrerequisiteProcess.WaitForExit();

Write-Host "Installatie prerequisites afgerond";


# ------------------------------------------------------------------------------
# Prequisites - Microsoft Server Speech Platform + Language pack
# ------------------------------------------------------------------------------
#
# De prequisites installer brengt in beta 2 nog niet de Microsoft Server Speech 
# Platform componenten aan. Daarom installeren we deze bestanden apart.
#
# Het Microsoft Server Speech Platform en bijbehorende talen zijn nodig voor het
# phonetisch matchen van namen binnen SharePoint Search 2010.

Write-Host "[04/12] Installatie Microsoft Server Speech Platform Runtime en bijbehorend language pack (dit kan enige tijd duren)...";

# Meet het aantal msiexec processen dat reeds loopt
[System.Array] $Speech_ProcessenInitieel = (Get-Process | Where-Object { $_.ProcessName -ieq "msiexec" });

[System.String] $Speech_Exe = "msiexec.exe";
[System.String] $Speech_Log = "{0}\SpeechPlatformRuntime.log" -f $Env:TEMP;
[System.String] $Speech_Parameters = "/package {0} /passive /norestart /log {1}" -f $Prerequisite_Speech, $Speech_Log;

# Uitvoeren van prerequisiteinstaller.exe met de unattended parameters
[System.Diagnostics.Process]::Start($Speech_Exe,$Speech_Parameters);

# Wacht tot de installatie klaar is door het aantal msiexec processen te 
# monitoren en dit te vergelijken met het initieel aantal lopende processen. 
# Deze manier van wachten is noodzakelijk omdat er meerdere msiexec
# processen gaan lopen als installeren.
Do {}
While ( (Get-Process | Where-Object { $_.ProcessName -ieq "msiexec" }).Count -gt $Speech_ProcessenInitieel.Count)

Write-Host "Installatie Microsoft Server Speech Platform Runtime afgerond";

# Lijst van taalpacks die geïnstalleerd dienen te worden op de server
[System.Collections.ArrayList] $SpeechLPK_Taalpacks = New-Object System.Collections.ArrayList;
$SpeechLPK_Taalpacks.Add(@{Taal="de-DE";InstallatiePad=$Prerequisite_SpeechLPK_deDE});
$SpeechLPK_Taalpacks.Add(@{Taal="en-US";InstallatiePad=$Prerequisite_SpeechLPK_enUS});
$SpeechLPK_Taalpacks.Add(@{Taal="es-ES";InstallatiePad=$Prerequisite_SpeechLPK_esES});
$SpeechLPK_Taalpacks.Add(@{Taal="fr-FR";InstallatiePad=$Prerequisite_SpeechLPK_frFR});
$SpeechLPK_Taalpacks.Add(@{Taal="ja-JP";InstallatiePad=$Prerequisite_SpeechLPK_jaJP});
$SpeechLPK_Taalpacks.Add(@{Taal="zh-CN";InstallatiePad=$Prerequisite_SpeechLPK_zhCN});

foreach ($SpeechLPK_Taalpack in $SpeechLPK_Taalpacks) 
{
# Meet het aantal msiexec processen dat reeds loopt
[System.Array] $SpeechLPK_ProcessenInitieel = (Get-Process | Where-Object { $_.ProcessName -ieq "msiexec" });

[System.String] $SpeechLPK_Exe = "msiexec.exe";
[System.String] $SpeechLPK_Log = "{0}\MSSpeech_SR_{1}_TELE.log" -f $Env:TEMP, $SpeechLPK_Taalpack.Taal;
[System.String] $SpeechLPK_Parameters = "/package {0} /passive /norestart /log {1}" -f $SpeechLPK_Taalpack.InstallatiePad, $SpeechLPK_Log;

# Uitvoeren van installatie met unattended parameters
[System.Diagnostics.Process]::Start($SpeechLPK_Exe, $SpeechLPK_Parameters);

# Wacht tot de installatie klaar is door het aantal msiexec processen te 
# monitoren en dit te vergelijken met het initieel aantal lopende processen.
# Deze manier van wachten is noodzakelijk omdat er meerdere msiexec
# processen gaan lopen als we de taalpacks installeren.
Do {}
While ( (Get-Process | Where-Object { $_.ProcessName -ieq "msiexec" }).Count -gt $SpeechLPK_ProcessenInitieel.Count)

# Voor iedere geregistreerde taal dienen we de waarde van het Vendor 
# attribuut te veranderen in "Microsoft Corporation". Deze verandering van 
# waarde kan problemen opleveren voor Microsoft Exchange Server 2010 en 
# andere producten die gebruik maken van speech technologie maar is nodig 
# voor het correct werken van het phonetisch matchen van namen.
[System.String] $Speech_RegistryKey = "HKLM:\SOFTWARE\Microsoft\Speech Server\v10.0\Recognizers\Tokens\SR_MS_{0}_TELE_10.0\Attributes" -f $SpeechLPK_Taalpack.Taal;
Set-ItemProperty -Path $Speech_RegistryKey -Name "Vendor" -Value "Microsoft Corporation";

[System.String] $Speech_Melding = "Installatie Speech recognition language ({0}) afgerond" -f $SpeechLPK_Taalpack.Taal;
Write-Host $Speech_Melding;
}


# ------------------------------------------------------------------------------
# SharePoint 2010 installatie bestanden
# ------------------------------------------------------------------------------
#
# We installeren unattended de binaire bestanden van de SharePoint farm. Binnen
# de installatie media dienen we hiervoor wel een wijziging door te voeren in
# het bestand config.xml (staat in de map "Files\SetupFarmSilent"). Het betreft
# het vullen van de juiste licentie sleutel binnen de nog te activeren PIDKEY 
# sectie (). We maken gebruik
# van een farm installatie (= SQL Server) en niet van een single Server 
# (= SQL Express) installatie.

Write-Host "[05/12] Installatie binaire bestanden van SharePoint farm (dit kan enige tijd duren)...";

# Uitvoeren van een Farm installatie
[System.String] $SPS_Setup = "{0}\Setup\setup.exe" -f $SETUP_MEDIA;
[System.String] $SPS_Parameters = "/config {0}\Setup\Files\SetupFarmSilent\config.xml" -f $SETUP_MEDIA;

# Start setup
[System.Diagnostics.Process]::Start($SPS_Setup,$SPS_Parameters);

# Wacht tot setup klaar is.
[System.Diagnostics.Process] $SPSProcess = (Get-Process | Where-Object { $_.ProcessName -ieq "setup" });
$SPSProcess.WaitForExit();

Write-Host "Installatie binaire bestanden afgerond";


# ------------------------------------------------------------------------------
# Laden SharePoint cmdlets
# ------------------------------------------------------------------------------
#
# Voor het kunnen uitvoeren van SharePoint 2010 Management Shell cmdlets dient
# voldaan te worden aan de volgende minimum vereisten:
#
# - Het account dient lid te zijn van de SharePoint_Shell_Access rol op de 
#  configuratie database
# - Het account dient lid te zijn van de WSS_ADMIN_WPG lokale groep op de
#  computer waar SharePoint 2010 is geinstalleerd.
#
# Het account waaronder dit installatie script draait voldoet aan deze eisen.

Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue;


# ------------------------------------------------------------------------------
# Aanmaken Configuration en Central Administration Content databases
# ------------------------------------------------------------------------------
#
# Het script maakt twee databases aan die samen het centrale hart van de 
# SharePoint farm vormen. De functie van beide databases is als volgt:
#
# Configuration database:
# -----------------------
# The configuration database handles all administration of the deployment, 
# directing requests to the appropriate database, and managing load-balancing 
# for the back-end databases. When a front-end Web server receives a request 
# for a page in a particular site, it checks the configuration database to 
# determine which content database holds the site's data. 
#
# Central Administration Content database:
# ----------------------------------------
# The back-end content database stores all site content, including site 
# documents or files in document libraries, list data, and Web Part properties,
# as well as user names and rights. All the data for a specific site resides in 
# one content database on only one computer.

Write-Host "[06/12] Aanmaken Configuration en Central Administration Content databases...";

# Naam van de nieuwe configuratie database.
[System.String] $spConfigDb_DatabaseName = "SharePoint_Configuration";

# Database server waarop nieuwe configuratie database staat.
[System.String] $spConfigDb_DatabaseServer = $Env:COMPUTERNAME;

# Naam voor de Central Administration content database voor de nieuwe farm.
[System.String] $spConfigDb_AdministrationContentDatabaseName = "SharePoint_Configuration_Content";

# Gegevens voor het Farm Administrator account.
[System.Security.SecureString] $spConfigDb_Wachtwoord = ConvertTo-SecureString -String "W8woord" -AsPlainText -Force;  
[System.String] $spConfigDb_Gebruikersnaam = "{0}\SPS_Farm" -f $Env:USERDOMAIN; 

# Credential object voor het Farm Administrator account.
[System.Management.Automation.PSCredential] $spConfigDb_FarmCredentials;
$spConfigDb_FarmCredentials = New-Object System.Management.Automation.PSCredential(
$spConfigDb_Gebruikersnaam, 
$spConfigDb_Wachtwoord);

# 'Secure password phrase' voor het toevoegen van andere machines aan deze farm.
[System.Security.SecureString] $spConfigDb_Passphrase = ConvertTo-SecureString -String "Sp2010C0nFigP@$$Phra$e" -AsPlainText -Force;

# Aanmaken configuration database
New-SPConfigurationDatabase -DatabaseName $spConfigDb_DatabaseName -DatabaseServer $spConfigDb_DatabaseServer -AdministrationContentDatabaseName $spConfigDb_AdministrationContentDatabaseName -FarmCredentials $spConfigDb_FarmCredentials -Passphrase $spConfigDb_Passphrase -ErrorVariable $foutMelding;

if( [System.String]::IsNullOrEmpty($foutMelding) -eq $true )
{
Write-Host "Databases aangemaakt";
}
else
{
# Log melding en stop verdere uitvoering script
Write-Error $foutMelding;
exit;
}


# ------------------------------------------------------------------------------
# Toepassen beveiligingsinstellingen
# ------------------------------------------------------------------------------
#
# Toepassen van beveiligingsinstellingen op alle resources van SharePoint. Denk
# hierbij aan bestanden, mappen en registry sleutels.

Write-Host "[07/12] Toepassen beveiligingsinstellingen op bestanden, mappen en registry sleutels...";

Initialize-SPResourceSecurity -ErrorVariable $foutMelding;

if( [System.String]::IsNullOrEmpty($foutMelding) -eq $true )
{
Write-Host "Beveiliging aangebracht";
}
else
{
# Log melding en stop verdere uitvoering script
Write-Error $foutMelding;
exit;
}


# ------------------------------------------------------------------------------
# Installatie farm services
# ------------------------------------------------------------------------------

Write-Host "[08/12] Installatie van farm services...";

Install-SPService -ErrorVariable $foutMelding;

if( [System.String]::IsNullOrEmpty($foutMelding) -eq $true )
{
Write-Host "Farm services geïnstalleerd";
}
else
{
# Log melding en stop verdere uitvoering script
Write-Error $foutMelding;
exit;
}


# ------------------------------------------------------------------------------
# Installatie beschikbare features
# ------------------------------------------------------------------------------
#
# Scan naar bestaande maar nog niet geregistreerde features en installeer deze
# op de farm.

Write-Host "[09/12] Installatie van alle beschikbare features...";

Install-SPFeature -AllExistingFeatures -ErrorVariable $foutMelding;

if( [System.String]::IsNullOrEmpty($foutMelding) -eq $true )
{
Write-Host "Features geïnstalleerd";
}
else
{
# Log melding en stop verdere uitvoering script
Write-Error $foutMelding;
exit;
}


# ------------------------------------------------------------------------------
# Provisioning van Central Administration
# ------------------------------------------------------------------------------
#
# Aanmaken van een Central Administration Web applicatie en deze starten op de 
# lokale machine.

Write-Host "[10/12] Provisioning Central Administration...";

# Poort nummer waarop Central Administration bereikbaar is. Nummer moet geldig
# zijn en nog niet in gebruik zijn op de machine onder IIS.
[System.Int32] $spCentralAdmin_Port = 8089;

# Specificatie van de authorization provider voor deze Web applicatie. Waarde:
# Kerberos / NTLM / Claims.
[System.String] $spCentralAdmin_WindowsAuthProvider = "Kerberos";

New-SPCentralAdministration -Port $spCentralAdmin_Port -WindowsAuthProvider $spCentralAdmin_WindowsAuthProvider -ErrorVariable $foutMelding;

if( [System.String]::IsNullOrEmpty($foutMelding) -eq $true )
{
Write-Host "Central Administration Web application aangemaakt";
}
else
{
# Log melding en stop verdere uitvoering script
Write-Error $foutMelding;
exit;
}


# ------------------------------------------------------------------------------
# Installatie help bestanden
# ------------------------------------------------------------------------------
#
# Installeer alle beschikbare help bestanden op de farm.

Write-Host "[11/12] Installatie van help bestanden...";

Install-SPHelpCollection -All -ErrorVariable $foutMelding;

if( [System.String]::IsNullOrEmpty($foutMelding) -eq $true )
{
Write-Host "Help bestanden geïnstalleerd";
}
else
{
# Log melding en stop verdere uitvoering script
Write-Error $foutMelding;
exit;
}


# ------------------------------------------------------------------------------
# Installatie applicatie data
# ------------------------------------------------------------------------------
#
# Kopieer gedeelde applicatie data naar bestaande Web applicatie mappen.

Write-Host "[12/12] Installatie van applicatie data...";

Install-SPApplicationContent -ErrorVariable $foutMelding;

if( [System.String]::IsNullOrEmpty($foutMelding) -eq $true )
{
Write-Host "Applicatie bestanden gekopieerd";
}
else
{
# Log melding en stop verdere uitvoering script
Write-Error $foutMelding;
exit;
}


# ------------------------------------------------------------------------------

Write-Host "[EINDE] Installatie SharePoint 2010 op Domain Controller";

Reacties

Populaire posts van deze blog

Active Directory limieten

Zoals ieder systeem heeft Active Directory ook zijn limieten. Tijdens wat Active Directory research kwam ik het volgende Technet artikel tegen waarin deze worden benoemd: Active Directory Maximum Limits . Kort samengevat zijn de limieten: Maximum aantal objecten per domain controller in een forest : ongeveer 2,5 biljoen (gedurende de volledige levensduur). Maximum aantal security identifiers (SID's) per domein : ongeveer 1 biljoen (gedurende de volledige levensduur). Aantal groepen waarvan een security indentifier (persoon, groep, computer account) lid kan zijn : ongeveer 1.015 groepen. FQDN lengte limiet : maximum lengte is 64 tekens (dit is inclusief punten en mintekens) voor de fully qualified domain name (FQDN). Bestandsnaam limiet : Windows kent een pad lengte limiet van 260 tekens. Deze is ook van toepassing op de fysieke bestanden van AD zoals SYSVOL. Organisational unit limiet : maximum lengte is 64 tekens. Heeft te maken met de Windows limiet van 260 tekens die in de gaten

Winsxs folder neemt veel ruimte in

In Windows Millenium is de Winsxs folder geintroduceerd. Deze folder bevat meerdere versies van in gebruik zijnde DLL bestanden. Het doel hiervan is dat iedere programma de juiste versie van de benodigde DLL kan gebruiken. Dit principe staat ook wel bekend als "Windows Side by Side". De folder die hiervoor gebruikt wordt is dus "C:\Windows\winsxs" en deze folder vormt dus de native assembly cache. In een tijd dat het vrij normaal is dat een computer is voorzien van een 500 GB harde schijf is de overhead van meerdere versies van een bestand opslaan niet echt een probleem. Echter in mijn geval wel. Op een van mijn multi boot computers heb ik een Vista Ultimate (met daarop Vista, MS Office en enkele andere programa's) van 32 GB. Mijn (persoonlijke) data staat op een aparte partitie. Door de installatie van de vele Windows updates is de vrije ruimte op deze partitie gezakt tot 2,85 GB (en dus in de rode waarschuwingszone terecht gekomen). Van de 32 GB is meer dan

Bevindingen over de E-tech ADWG02 tot nu toe

Ik heb de E-tech ADWG02 nu bijna een week in gebruik. Dit is de vervangende modem voor de buggy Linksys WAG54G die ik eerder gekocht had. Mijn bevindingen over de E-tech tot nu toe: Geen crashes tot nu toe. De firmware lijkt op dat punt stabiel. Het apparaat is niet door middel van een knop aan of uit te zetten. Erg vervelend omdat ik het apparaat alleen uit kan zetten door de stekker uit het stopcontact te halen. De reden dat ik hem graag uit wil kunnen zetten is dat het apparaat in de woonkamer staat (in het zicht) en de lampjes nogal fel schijnen. Dat vind ik niet erg prettig. Daarnaast wil ik niet dat de verbinding de gehele dag open staat uit beveiligingsoverwegingen en vanwege het stroomverbruik. WIFI is middels een setting uit te zetten. Als je de setting uitvinkt en bevestigd door middel van een 'apply' zie je het lampje uitgaan op de ADSL modem. Er is op dat moment ook geen WIFI verbinding actief. Sla je de setting definitief op dan reboot de modem automat