1

SharePoint 2013 ファームに問題があります。ファームに Web アプリケーションを作成するためのスクリプトがありますが、スクリプトを実行しても、その Web アプリケーション内に発行サイト コレクションを作成できません。(最初にここに投稿: https://sharepoint.stackexchange.com/questions/64308/fails-to-create-publishing-site-collection-in-scripted-web-application

したがって、環境は次のようにセットアップされます。

  1. アプリケーションにはホスト ヘッダーを使用しています。
  2. レジストリに BackConnectionHostNames が設定されています。
  3. ここでは、ファーム管理者アカウントを使用してアプリ プールを実行します。
  4. mysites のセットアップがあり、明らかに機能しています。
  5. 検索は設定されていません。
  6. コンテンツ タイプ ハブのセットアップがあり、明らかに機能しています。

したがって、症状は次のように表示されます。

  1. スクリプトから作成した新しいホスト ヘッダー ベースの Web アプリケーションで発行サイト コレクションを作成できません。発行サイト コレクションを作成するために GUI を使用すると、しばらくの間「作業中」と表示され、「作業中」のまま回転している間にエラーが表示されます。イベントログには、次の内容があります。

    Event log message was: 'The site template was not provisioned successfully. Delete this
    site collection in Central Administration, and then create a new site collection.'. 
    Exception was: 'Microsoft.SharePoint.SPException: Provisioning did not succeed. Details:  
    Failed to initialize some site properties for Web at Url: '' 
    OriginalException: Access is denied. (Exception from HRESULT: 0x80070005 
    (E_ACCESSDENIED)) ---> System.UnauthorizedAccessException: Access is denied. (Exception
    from HRESULT: 0x80070005 (E_ACCESSDENIED))
    
  2. Central Admin GUI から Web アプリケーションを作成した場合、そこに発行ポータルを正常に作成できます。

  3. スクリプトを使用して Web アプリケーションを作成した場合、チーム サイトを正常に作成できます。

以下は私のスクリプトに従います。CA GUI が処理することを忘れましたか?

$ver = $host | select version
if ($ver.Version.Major -gt 1)  {$Host.Runspace.ThreadOptions = "ReuseThread"}
Add-PsSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
Import-Module WebAdministration -ErrorAction SilentlyContinue



Function CreateWebApplication($WebApplicationURL, $HttpPort, $WebApplicationName,     
                              $ContentDatabase, $ApplicationPoolDisplayName,  
                              $ApplicationPoolIdentity, $ApplicationPoolPassword, 
                              $PortalSuperReader, $PortalSuperUser) {


Write-Progress -Activity "Creating Web Application" -Status "Creating Web Application $WebapplicationURL"

if($WebApplicationURL.StartsWith("http://")) 
{ 
    $HostHeader = $WebApplicationURL.Substring(7) 
    $HTTPPort = "80" 
} 
elseif($WebApplicationURL.StartsWith("https://")) 
{ 
    $HostHeader = $WebApplicationURL.Substring(8) 
    $HTTPPort = "443" 
}

$AppPoolManagedAccount = Get-SPManagedAccount $ApplicationPoolIdentity

$AuthenticationProvider = New-SPAuthenticationProvider –UseWindowsIntegratedAuthentication
#Create a new web application using the existing parameters, assign it to the WebApp variable such that object cache user accounts can be configured
$WebApp = New-SPWebApplication -ApplicationPool $ApplicationPoolDisplayName -ApplicationPoolAccount $AppPoolManagedAccount.Username -AuthenticationProvider $AuthenticationProvider -Name $WebApplicationName -url $WebApplicationURL -port $HTTPPort -DatabaseName $ContentDatabase -HostHeader $HostHeader

Write-Progress -Activity "Creating Web Application" -Status "Configuring Object Cache Accounts"

#Assign Object Cache Accounts
$WebApp.Properties["portalsuperuseraccount"] = $PortalSuperUser
$WebApp.Properties["portalsuperreaderaccount"] = $PortalSuperReader

Write-Progress -Activity "Creating Web Application" -Status "Creating Object Cache User Policies for Web Application"

#Create a New Policy for the Super User
$SuperUserPolicy = $WebApp.Policies.Add($PortalSuperUser, "Portal Super User Account")
#Assign Full Control To the Super User

$SuperUserPolicy.PolicyRoleBindings.Add(
    $WebApp.PolicyRoles.GetSpecialRole(
    [Microsoft.SharePoint.Administration.SPPolicyRoleType]::FullControl))

#Create a New Policy for the Super Reader
$SuperReaderPolicy = $WebApp.Policies.Add($PortalSuperReader, "Portal Super Reader Account")
#ASsign Full Read to the Super Reader
$SuperReaderPolicy.PolicyRoleBindings.Add(
$WebApp.PolicyRoles.GetSpecialRole(
[Microsoft.SharePoint.Administration.SPPolicyRoleType]::FullRead))

Write-Progress -Activity "Creating Web Application" -Status "Updating Web Application Properties"

#Commit changes to the web application
$WebApp.update()

}

CreateWebApplication "http://add.ress.lan" 80 "Intranet 3"
"sp_intranet3_content" "Intranet3 Pool" "sp_farm" "P4sswd!" 
"sp_superreader" "sp_superuser"
4

1 に答える 1