You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PowerShell创建术语组/集/术语时遇lcid参数错误求助

问题原因与修复方案

错误根源

你遇到的lcid参数超出范围错误,核心原因是创建TermSet和Term时未指定有效的语言代码标识符(LCID)。SharePoint术语库是多语言架构,PnP PowerShell的New-PnPTermSet和New-PnPTerm cmdlet需要明确知道要为哪个语言版本创建术语集/术语,缺少这个参数时,cmdlet会尝试使用无效的默认值,从而触发报错。

另外你的脚本还有两个小问题:

  • $TermGroupDescription变量未定义,创建TermGroup时会传入空描述
  • Term存在性判断的提示文本写错了,把变量$TermName写成了固定字符串TermName

修复后的脚本

下面是修正后的完整脚本,我添加了LCID参数(以简体中文2052为例,你可以根据实际需求换成其他LCID,比如英文1033),同时修复了上述两个小问题:

$TermGroup = Read-Host -Prompt 'Input your Term group'
$TermSet = Read-Host -Prompt 'Input your Term set'
$TermName = Read-Host -Prompt 'Input your Term name'
# 初始化术语组描述,可根据需求修改
$TermGroupDescription = "Term group for $TermGroup"
# 指定有效的LCID,这里用简体中文2052,英文用1033
$LCID = 2052

#Check if Term Group is empty
If($TermGroup)
{
    #Check if Term group exists
    If(-Not(Get-PnPTermGroup -Identity $TermGroup -ErrorAction SilentlyContinue))
    {
        #Create new group in Termstore
        New-PnPTermGroup -Name $TermGroup -Description $TermGroupDescription
        Write-host -f Green "Term Group '$TermGroup' created successfully!"
    }
    Else
    {
        Write-host -f Yellow "Term Group '$TermGroup' already exists!"
    }
}
Else
{
   Write-host -f Yellow "No 'TermGroup' provided"
}

#Check if Term Set is empty
If($TermSet -and $TermGroup)
{
    #Check if Term set exists
    If(-Not(Get-PnPTermSet -Identity $TermSet -TermGroup $TermGroup -ErrorAction SilentlyContinue))
    {
        #Create new set in Termstore,添加LCID参数
        New-PnPTermSet -Name $TermSet -TermGroup $TermGroup -LCID $LCID
        Write-host -f Green "Term Set '$TermSet' created successfully!"
    }
    Else
    {
        Write-host -f Yellow "Term Set '$TermSet' already exists!"
    }
}
Else
{
   Write-host -f Yellow "No 'TermSet' provided or TermGroup is missing"
}

#Check if Term Name is empty
If($TermName -and $TermSet -and $TermGroup)
{
    #Check is Term Name exists
    If(-Not(Get-PnPTerm -Identity $TermName -TermSet $TermSet -TermGroup $TermGroup -ErrorAction SilentlyContinue))
    {
        #Create new Term,添加LCID参数
        New-PnPTerm -Name $TermName -TermSet $TermSet -TermGroup $TermGroup -LCID $LCID
        Write-host -f Green "Term '$TermName' created successfully!"
    }
    Else
    {
        Write-host -f Yellow "Term '$TermName' already exists!"
    }
}
Else
{
   Write-host -f Yellow "No 'TermName' provided or TermSet/TermGroup is missing"
}

关键修改点说明

  1. 添加LCID参数:在New-PnPTermSet和New-PnPTerm中加入-LCID $LCID,确保cmdlet使用有效的语言上下文
  2. 初始化描述变量:定义$TermGroupDescription,避免创建TermGroup时传入空值
  3. 增加依赖判断:在处理TermSet和Term时,先检查依赖的TermGroup/TermSet是否存在,避免无效操作
  4. 修正提示文本:把Term存在提示里的TermName改成变量$TermName,显示正确的术语名称

内容的提问来源于stack exchange,提问作者DanielJ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 15:45:16