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

PowerShell导入CSV时如何将$true/$false字符串转为布尔值创建AD用户

报错原因

[System.Convert]::ToBoolean()是.NET框架提供的方法,仅能识别不含$前缀的True/False类字符串(不区分大小写),你的CSV中存储的是带$的$true/$false格式字符串,不符合方法的解析规则,所以抛出格式错误。

最优解决方法

直接修改布尔值转换的两行代码即可,方案兼容你提到的仅$true/$false的取值场景,同时支持大小写、带前后空格等常见异常情况:

# 替换原来的两行[System.Convert]::ToBoolean转换代码
$Enabled = $User.Enabled.Trim() -in '$true', 'true'
$ChangePasswordAtLogon = $User.mustChangePassword.Trim() -in '$true', 'true'

该方案通过PowerShell原生的集合匹配逻辑实现转换:只要对应列的值是$true或者true(自动忽略前后空格、不区分大小写)就返回$true,其余情况返回$false,完全不会出现解析报错。

额外注意

你当前代码中New-ADUser的参数写法不符合PowerShell语法规范,参数名和参数值之间不需要加等号,需要把所有参数行的=删除,否则布尔值问题解决后仍会触发参数错误,修正后的代码片段如下:

New-ADUser `
    -Name $Name `
    -Surname  $SurName `
    -GivenName $GivenName `
    -EmailAddress $Email `
    -SamAccountName $SamAccountName `
    -Path $Path `
    -AccountPassword (ConvertTo-SecureString $Password -AsPlainText -Force) `
    -Enabled $Enabled `
    -ChangePasswordAtLogon $ChangePasswordAtLogon `
    -Description $Description

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 14:57:02