【问题标题】:Set Site logo in SharePoint Online using PowerShell Script and CSOM使用 PowerShell 脚本和 CSOM 在 SharePoint Online 中设置网站徽标
【发布时间】:2014-08-27 21:27:22
【问题描述】:

是否有人能够使用 Powershell 和 CSOM 在 SharePoint Online 网站上设置网站徽标? 谢谢

奈杰尔

【问题讨论】:

    标签: powershell sharepoint csom


    【解决方案1】:

    以下代码解决设置Site Logo(ctx为ClientContext):

    ctx.Web.SiteLogoUrl = "/teams/test/SiteAssets/45.jpg";

    ctx.Web.Update();

    ctx.ExecuteQuery();

    【讨论】:

      【解决方案2】:

      这是在 sharepoint 2016 中使用 powershell 更改默认 sharepoint 徽标的脚本

      $logoLocation= "http://sharepoint2016/SiteAssets/MyCompanyLogo.png"
      $oSite=new-object Microsoft.SharePoint.SPSite("http://sharepoint2016/")
      foreach($oWeb in $oSite.Allwebs) {
      $oWeb.SiteLogoUrl=$logoLocation
      $oWeb.Update()
      }
      

      【讨论】:

        【解决方案3】:

        根据 UserVoice 请求Make the SiteLogoUrl property available in CSOM 和发布UserVoice driving improvements to SharePoint APISharePoint Online Client Components SDK Web 类的 版本支持SiteLogoUrl 属性。

        如何在 PowerShell 中使用 CSOM 设置Web.SiteLogoUrl property

        [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client")
        [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client.Runtime")
        
        Function Get-SPOCredentials([string]$UserName,[string]$Password)
        {
           $SecurePassword = $Password | ConvertTo-SecureString -AsPlainText -Force
           return New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($UserName, $SecurePassword)
        }
        
        Function Web-SetLogo([Microsoft.SharePoint.Client.ClientContext]$Content,[string]$SiteLogoUrl)
        {
           $Context.Web.SiteLogoUrl = $SiteLogoUrl
           $Context.Web.Update()
           $Context.ExecuteQuery()
        }
        
        $UserName = "username@contoso.onmicrosoft.com"
        $Password = Read-Host -Prompt "Enter the password"    
        $Url = "https://contoso.sharepoint.com/"
        
        $context = New-Object Microsoft.SharePoint.Client.ClientContext($Url)
        $context.Credentials = Get-SPOCredentials -UserName $UserName -Password $Password
        
        Web-SetLogo -Content $context -SiteLogoUrl "/SiteAssets/ContosoLogo.jpg"
        
        $context.Dispose()
        

        【讨论】:

          【解决方案4】:

          此脚本可让您一键更改整个网站集的徽标:

          来源:https://github.com/t1llo/change_logo_SharePointOnline-PS

          重要提示:仅在 sharePoint Online Management Shell 中执行时有效。

          #Add PowerShell Module for SharePoint Online
              Import-Module Microsoft.Online.SharePoint.Powershell -DisableNameChecking
          
              ##Configuration variables
              $SiteUrl = "https://yoursite.collection.com/"
              $LogoURL="https://yourlogo.com"
          
              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 Recursively
                          Update-Logo($Subsite)
                      }
                  }
          
                  #Call the function to change logo of the web
                  Update-Logo($Web)
              }
              Catch {
                  write-host -f Red "Error updating Logo!" $_.Exception.Message
              }
          

          【讨论】:

            猜你喜欢
            • 2023-04-01
            • 2023-03-19
            • 2017-01-30
            • 2017-04-04
            • 2014-06-19
            • 2017-12-01
            • 2017-12-31
            • 1970-01-01
            • 2015-06-22
            相关资源
            最近更新 更多