ค้นหาเว็บไซต์

SharePoint Online: จะเปลี่ยนโลโก้ของไซต์โดยใช้ PowerShell ได้อย่างไร


ความต้องการ: เปลี่ยนโลโก้ในไซต์ SharePoint Online

จะเปลี่ยนโลโก้ใน SharePoint Online ได้อย่างไร

คุณต้องการเปลี่ยนโลโก้ SharePoint Online ของคุณหรือไม่? การเปลี่ยนแปลงโลโก้เป็นข้อกำหนดทั่วไปเมื่อพูดถึงการสร้างแบรนด์ไซต์ SharePoint Online บางทีคุณอาจต้องการอัปเดตโลโก้ใหม่ของบริษัทเพื่อให้สอดคล้องกับแบรนด์ของคุณมากขึ้น ในบทความนี้ เราจะแนะนำคุณตลอดกระบวนการทีละขั้นตอน นอกจากนี้เรายังจะแสดงวิธีการเปลี่ยนโลโก้บนไซต์ SharePoint Online ของคุณโดยใช้ PowerShell

ฉันจะเพิ่มโลโก้ลงในไซต์ SharePoint Online ของฉันได้อย่างไร เมื่อต้องการตั้งค่าโลโก้ใน SharePoint Online ให้ทำตามขั้นตอนเหล่านี้:

  1. เข้าสู่ระบบในฐานะผู้ดูแลไซต์ในไซต์ SharePoint Online ของคุณ คลิกที่เฟืองการตั้งค่า >> เลือกการตั้งค่าไซต์ >> ในหน้าการตั้งค่าไซต์ คลิกลิงก์ “ชื่อ คำอธิบาย และโลโก้” (/_layouts/15/prjsetng.aspx)

  2. ที่นำคุณไปยังหน้าที่คุณสามารถตั้งค่าโลโก้สำหรับไซต์ได้ คุณสามารถใช้โลโก้จากคอมพิวเตอร์ของคุณหรือโลโก้ที่มีอยู่จากไซต์ SharePoint ของคุณ (แม้แต่รูปภาพที่มีอยู่จากอินเทอร์เน็ตด้วย)
  3. คลิกที่ลิงค์ “จากคอมพิวเตอร์” >> เรียกดูและอัปโหลดไฟล์โลโก้ของคุณ เมื่อคุณอัปโหลด ไฟล์โลโก้จะถูกบันทึกลงในไลบรารีเอกสาร “ทรัพย์สินของไซต์” ของไซต์

ทันทีที่คุณอัปโหลดรูปภาพสำหรับโลโก้ คุณจะพบโลโก้ใหม่ปรากฏทันทีที่ด้านซ้ายบนของเว็บไซต์ หรือคุณสามารถป้อนคำอธิบายโลโก้ และคำอธิบายนี้จะกลายเป็นคำแนะนำเครื่องมือสำหรับโลโก้ใหม่ของคุณ คลิกที่ปุ่ม "ตกลง" เพื่อบันทึกการเปลี่ยนแปลงของคุณ คลิกยกเลิกเพื่อยกเลิก

แค่นั้นแหละ! โลโก้ใหม่ของคุณจะปรากฏบนไซต์ SharePoint Online สำหรับประสบการณ์แบบคลาสสิกของคุณ

ขนาดโลโก้เริ่มต้นของ SharePoint Online: ขนาดโลโก้เริ่มต้นคือ 64px X 64px SharePoint จะลดขนาดรูปภาพที่ใหญ่ขึ้นของคุณโดยอัตโนมัติเพื่อให้พอดีกับความกว้าง 64 x สูง 192 พิกเซล!

SharePoint Online: วิธีเปลี่ยนโลโก้ในไซต์สมัยใหม่

ต่างจากไซต์ SharePoint เวอร์ชันคลาสสิก การเปลี่ยนโลโก้ของไซต์สำหรับไซต์ทีมสมัยใหม่และไซต์การติดต่อสื่อสารนั้นตรงไปตรงมา และสามารถทำได้ด้วยการคลิกเพียงไม่กี่ครั้ง

  1. ไปที่ไซต์ Modern SharePoint ในฐานะเจ้าของไซต์ >> คลิกที่ไอคอนรูปเฟืองการตั้งค่า >> คลิกที่ "เปลี่ยนรูปลักษณ์" จากเมนูการตั้งค่าไซต์

  2. ในแผงเปลี่ยนรูปลักษณ์ ให้คลิกลิงก์ "ส่วนหัว"

  3. ตอนนี้คุณสามารถคลิกที่ปุ่ม "เปลี่ยน" ใต้ "โลโก้ไซต์" เพื่อเรียกดูภาพโลโก้ที่รองรับเป็นโลโก้สำหรับเว็บไซต์ของคุณ เมื่ออัปโหลดรูปภาพแล้ว คุณจะเห็นตัวอย่างรูปภาพ โลโก้นี้จะถูกนำมาใช้ในส่วนหัวของเว็บไซต์

  4. คลิกบันทึกเพื่อใช้การเปลี่ยนแปลงของคุณ

คุณยังสามารถเปลี่ยนรูปขนาดย่อของโลโก้ไซต์ด้วยโลโก้สี่เหลี่ยมจัตุรัสเพื่อให้ปรากฏในการค้นหาและการ์ดไซต์ได้ หากคุณต้องการเปลี่ยนกลับเป็นโลโก้ SharePoint เริ่มต้น ให้คลิกที่ปุ่ม "ลบ"

SharePoint Online PowerShell เพื่อเปลี่ยนโลโก้:

การเปลี่ยนโลโก้จาก UI ของเว็บนั้นค่อนข้างง่ายใช่ไหม ถ้าคุณมีไซต์คอลเลกชันที่มีไซต์ย่อยและไซต์ย่อยหลายร้อยไซต์ล่ะ จะเกิดอะไรขึ้นหากไซต์ต่างๆ ใช้โลโก้บริษัทของคุณในเวอร์ชันที่แตกต่างกันและต้องการทำให้โลโก้สอดคล้องกัน PowerShell คือคำตอบ! ลองใช้สคริปต์ PowerShell เพื่อเปลี่ยนโลโก้ของไซต์ใน SharePoint Online


#Add PowerShell Module for SharePoint Online
Import-Module Microsoft.Online.SharePoint.Powershell -DisableNameChecking

##Configuration variables
$SiteUrl = "https://crescent.sharepoint.com/"
$LogoURL="/SiteAssets/Logo.png" #Existing file

Try {
    #Get Credentials to connect
    $Cred = Get-Credential
    $Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)

    #Setup the context
    $Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteUrl)
    $Ctx.Credentials = $Credentials
    $Web = $Ctx.Web

    #Change Logo
    $Web.SiteLogoUrl = $LogoURL
    $Web.Update()
    $Ctx.ExecuteQuery()

    Write-host "Logo Updated Successfully!" -ForegroundColor Green
}
Catch {
    write-host -f Red "Error updating Logo!" $_.Exception.Message
} 

โปรดทราบว่า URL ของไฟล์ที่ LogoURL ต้องเป็นไฟล์ที่มีอยู่ในไซต์ SharePoint Online ดังนั้น ให้อัปโหลดโลโก้ไปที่รากของไซต์คอลเลกชันของคุณก่อน

PowerShell เพื่อเปลี่ยนโลโก้ของไซต์สำหรับไซต์คอลเลกชันและไซต์ย่อย:

มาเปลี่ยนโลโก้สำหรับไซต์ทั้งหมดภายในไซต์คอลเลกชัน SharePoint Online ตรวจสอบให้แน่ใจว่าคุณได้อัปโหลดไฟล์ “logo.png” ในไลบรารีเนื้อหาของไซต์ก่อนที่จะรันสคริปต์นี้


#Add PowerShell Module for SharePoint Online
Import-Module Microsoft.Online.SharePoint.Powershell -DisableNameChecking

##Configuration variables
$SiteUrl = "https://crescent.sharepoint.com/Sites/Sales"
$LogoURL="/SiteAssets/Logo.png"

Try {
    #Get Credentials to connect
    $Cred = Get-Credential
    $Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)

    #Setup the context
    $Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteUrl)
    $Ctx.Credentials = $Credentials

    #Get the Root web
    $Web = $Ctx.Web
    $Ctx.Load($Web)
    $Ctx.ExecuteQuery()

    #Function to change Logo for the given web
    Function Update-Logo($Web)
    {
        #Update Logo
        $Web.SiteLogoUrl = $LogoURL
        $Web.Update()
        $Ctx.ExecuteQuery()
        Write-host "Updated Logo for Web:" $Web.URL

        #Process each subsite in the site
        $Subsites = $Web.Webs
        $Ctx.Load($Subsites)
        $Ctx.ExecuteQuery()        
        Foreach ($SubSite in $Subsites)
        {
            #Call the function to change sharepoint site logo
            Update-Logo($Subsite)
        }
    }
    
    #Call the function to change the logo of the web
    Update-Logo($Web)
}
Catch {
    write-host -f Red "Error updating Logo!" $_.Exception.Message
}

PnP PowerShell เพื่อเปลี่ยนโลโก้สำหรับไซต์ทั้งหมดในคอลเลกชันไซต์ SharePoint Online

มาตั้งค่าโลโก้ในแต่ละเว็บในไซต์คอลเลกชันในครั้งนี้ แทนที่จะอ้างอิงถึงโลโก้จากเว็บระดับบนสุด มาอัปโหลดไปยังแต่ละไซต์แล้วใช้ PnP PowerShell เพื่อเปลี่ยนโลโก้ของไซต์ใน SharePoint Online


#Function to set site Logo
Function Set-PnPSiteLogo
{
[cmdletbinding()]
 
    param(
    [parameter(Mandatory = $true, ValueFromPipeline = $false)]$Web,
    [parameter(Mandatory = $true, ValueFromPipeline = $false)][String] $LogoFilePath
    )
   
    Try {
        Write-host "Updating Logo on Site '$($Web.URL)'"
        Connect-PnPOnline -Url $Web.URL -Interactive
 
        #Ensure "Site Assets" library in the site
        $SiteAssets = Get-PnPList -Identity "Site Assets" -ErrorAction SilentlyContinue 
        If($SiteAssets -eq $Null)
        {
            New-PnPList -Title "Site Assets" -Template DocumentLibrary -Url "SiteAssets" -ErrorAction SilentlyContinue | Out-Null
        }
 
        #Upload Logo File to 'Site Assets' library of the current web
        Add-PnPFile -Path $LogoFilePath -Folder "SiteAssets" | Out-Null
  
        #Get File Name from Logo File's Full Path
        $LogoFileName = Split-Path $LogoFilePath -leaf
 
        #Set Site Logo
        Set-PnpWeb -SiteLogoUrl "$($Web.ServerRelativeUrl)/SiteAssets/$($LogoFileName)"  
    }
    catch {
        write-host "Error: $($_.Exception.Message)" -foregroundcolor Red
    }
}
#Parameters
$SiteURL = "https://Crescent.sharepoint.com/sites/Marketing"
$LogoPath = "C:\Temp\Logo.jpg"
 
#Connect to Site
Connect-PnPOnline -Url $SiteURL -Interactive
$Webs = Get-PnPSubWeb -Recurse -IncludeRootWeb
 
#Call the function to change site logo
$Webs | ForEach-Object { Set-PnPSiteLogo -Web $_ -LogoFilePath $LogoPath }    

อย่างไรก็ตาม PowerShell นี้ใช้งานได้กับไซต์ที่เชื่อมต่อที่ไม่ใช่กลุ่มเท่านั้น!

จะเปลี่ยนโลโก้บนไซต์ที่เชื่อมต่อกับ Modern Group ได้อย่างไร

ถ้าไซต์ถูกสร้างขึ้นในกลุ่ม Office 365 หรือ Microsoft Teams โลโก้ที่เปลี่ยนไปในแอปเหล่านั้นจะไม่สะท้อนกลับไปยัง SharePoint Online เพียงแทนที่ไฟล์ “__siteIcon__.jpg” ใต้ไลบรารี “Site Assets” (สร้างใหม่หากไม่มีอยู่!) เพื่อเปลี่ยนโลโก้ของเว็บไซต์!

หากคุณต้องการตั้งค่าโลโก้ของไซต์สำหรับไซต์ที่เชื่อมต่อกลุ่มสมัยใหม่ด้วย PowerShell ให้ใช้ Set-PnPSite cmdlet พร้อมพารามิเตอร์ "LogoFilePath":


$SiteURL = "https://crescent.sharepoint.com/sites/Purchase"
$LogoPath = "C:\Temp\Logo.jpg"

#Connect to Site
Connect-PnPOnline -Url $SiteURL -Interactive

#Set Site Logo
Set-PnPSite -LogoFilePath $LogoPath

เมื่อพยายามเปลี่ยนโลโก้ของไซต์ในกลุ่มไซต์ที่เชื่อมต่อ ฉันได้รับข้อความแสดงข้อผิดพลาด: “เราประสบปัญหาในการอัปเดตไอคอน โปรดลองอีกครั้งในไม่กี่นาที." เนื่องจาก: ผู้ใช้ที่พยายามเปลี่ยนโลโก้ของไซต์ไม่ใช่เจ้าของกลุ่ม! เพียงเพิ่มผู้ใช้เป็นเจ้าของกลุ่ม Office 365 และเขาควรจะสามารถเปลี่ยนโลโก้ของไซต์ได้!

จะเปลี่ยนโลโก้ของไซต์ในผู้เช่าทั้งหมดสำหรับไซต์และไซต์ย่อยทั้งหมดได้อย่างไร

สคริปต์ PowerShell นี้วนซ้ำผ่านแต่ละไซต์คอลเลกชัน SharePoint ในผู้เช่า Microsoft 365 และอัปเดตโลโก้จากพารามิเตอร์ สคริปต์นี้สามารถจัดการทั้งไซต์คลาสสิกและไซต์ที่เชื่อมต่อกับกลุ่มสมัยใหม่

ตรวจสอบให้แน่ใจว่าคุณได้เพิ่มตัวเองเป็นผู้ดูแลไซต์คอลเลกชันให้กับไซต์ทั้งหมดในผู้เช่าก่อนที่จะรันสคริปต์นี้! จะเพิ่มผู้ดูแลไซต์คอลเลกชันลงในไซต์ SharePoint Online ทั้งหมดในผู้เช่าได้อย่างไร

#Parameters
$Domain =  "Crescent" #Your Domain Name in SharePoint Online. E.g. https://Crescent.SharePoint.com
$LogoFilePath = "C:\Temp\SPLogo.jpg"
$Cred = Get-Credential

#Frame Tenant URL and Tenant Admin URL
$TenantURL = "https://$Domain.SharePoint.com"
$TenantAdminURL = "https://$Domain-Admin.SharePoint.com"

#Function to set site Logo
Function Set-PnPSiteLogo
{
    [cmdletbinding()]

   param(
    [parameter(Mandatory = $true, ValueFromPipeline = $True)]$Web,
    [parameter(Mandatory = $true, ValueFromPipeline = $False)][String] $LogoFilePath
    )
  
    Try {
        Connect-PnPOnline -Url $Web.URL -Credentials $Cred
        #Ensure "Site Assets" library in the site
        $SiteAssets = Get-PnPList -Identity "Site Assets" -ErrorAction SilentlyContinue 
        If($SiteAssets -eq $Null)
        {
            New-PnPList -Title "Site Assets" -Template DocumentLibrary -Url "SiteAssets" -ErrorAction SilentlyContinue | Out-Null
        }

        #Upload Logo File to 'Site Assets' library of the current web
        Add-PnPFile -Path $LogoFilePath -Folder "SiteAssets" | Out-Null
 
        #Get File Name from Logo File's Full Path
        $LogoFileName = Split-Path $LogoFilePath -leaf

        #Set Site Logo
        Set-PnpWeb -SiteLogoUrl "$($Web.ServerRelativeUrl)/SiteAssets/$($LogoFileName)"
        Write-host "`n`tUpdated Logo on Web '$($Web.URL)'" -f Green

    }
    catch {
        write-host "Error: $($_.Exception.Message)" -foregroundcolor Red
    }
}

#Connect to Admin Center
Connect-PnPOnline -Url $TenantAdminURL -Credentials $Cred
    
#Get All Site collections - Exclude BOT, Video Portals and MySites
$Sites = Get-PnPTenantSite -Filter "Url -like $TenantURL -and Url -notlike '-my.sharepoint.com/' -and Url -notlike '/portals/'"
   
#Iterate through all site collections
$Sites | ForEach-Object {
    #Connect to each site collection
    Connect-PnPOnline -Url $_.URL -Credentials $Cred
    
    Write-host "Processing Site Collection:"$_.URL -f Yellow -NoNewline
    #Check if its a Group site
    If($_.Template -like 'GROUP*')
    {
        Set-PnPSite -LogoFilePath $LogoFilePath
        Write-host "`n`tUpdated Logo on Group Site!" -f Green
    }
    Else
    {   
        #Call the Function for site & all Subwebs
        Get-PnPSubWeb -Recurse -IncludeRootWeb | ForEach-Object { Set-PnPSiteLogo -Web $_ -LogoFilePath $LogoFilePath }
    }
}

ลองเปลี่ยนเค้าโครงส่วนหัว โลโก้ของไซต์ และพื้นหลังในไซต์ SharePoint Online สมัยใหม่ดูไหม ไปเลย: วิธีเปลี่ยนเค้าโครงส่วนหัว, โลโก้ของไซต์, พื้นหลังใน SharePoint Online โดยใช้ PowerShell

บทความที่เกี่ยวข้อง