使用 powershell Pnponline 或 SPOService 添加站点语言

使用 powershell Pnponline 或 SPOService 添加站点语言

我通过这样的 ps 命令创建用户

New-MsolUser -UserPrincipalName $user.Email -Password $user.Password [...] -PreferredLanguage fr-FR

知道租户是德国人(de-DE),所有网络应用程序都是德语(见图)

应用程序德语

因此我需要连接到 SharePoint 网站才能像这样添加法语

FR-SP

但是我需要使用 powershell 来执行此操作,因为我每天使用该脚本创建很多帐户。

所以我跟着“怎么做”其中给出了如下 ps 命令:

> Install-Module -Name Microsoft.Online.SharePoint.PowerShell -SkipPublisherCheck -Force
> $user = "Testuser@my_tenant.onmicrosoft.com"
> $password = ConvertTo-SecureString 'a_secret_password_here' -AsPlainText -Force
> $creds = New-Object System.Management.Automation.PSCredential ($user,$password)
> Connect-PnPOnline -Url "https://my_tenant-my.sharepoint.com/personal/Testuser_my_tenant_onmicrosoft_com/_layouts/15/muisetng.aspx" -Credentials $creds
> $Web = Get-PnPWeb
> $Web.AddSupportedUILanguage(1036) (French)
> $web.Update()
> Invoke-PnPQuery

但问题是,这仅当用户在 SharePoint 网站上手动登录过一次后才有效,突然间它会创建用户 SharePoint url“”https://my_tenant-my.sharepoint.com/personal/Testuser_my_tenant_onmicrosoft_com/_layouts/15/muisetng.aspx“

如果之前已经完成(仅登录并且不加粗 FR 按钮),则脚本会像这样加粗按钮:

FR-加厚

否则我会得到这样的 404 not found 错误

错误 404

有什么想法可以在无需登录的情况下完成此操作吗?

答案1

好的,所以我联系了 Microsoft 支持,他们告诉我,导致错误 404 的 Onedrive 网站直到用户登录 Onedrive 管理网站时才会创建。因此,必须先预先配置个人帐户,如 Microsoft 上所示文献网站Onedrive,代码如下:

> $user = "[email protected]"
> $password = ConvertTo-SecureString 'my_personal_password' -AsPlainText -Force
> $creds = New-Object System.Management.Automation.PSCredential ($user,$password)
> Connect-MsolService -Credential $creds
> Connect-SPOService -Url "https://[userXX]-admin.sharepoint.com" -Credential $creds
> Request-SPOPersonalSite -UserEmails "[userXX]@[tenant].onmicrosoft.com"
> # The provisioning takes some time, so if one connects directly after creation, 
> #then the 404 error happens again, so we put a pause to the script
> Start-sleep -seconds 30
> Connect-PnPOnline -Url "https://tenant-my.sharepoint.com/personal/[userXX]_[tenant]_onmicrosoft_com/_layouts/15/muisetng.aspx" -Credentials $creds
> $Web = Get-PnPWeb
> $web.IsMultilingual = $true
> $Web.AddSupportedUILanguage(1036) #(French)
> $web.Update()
> Invoke-PnPQuery

因此,变量是[UserXX][tenant],基本上是创建的用户和公司(或个人)的名称

相关内容