如何通过 Powershell 创建带有点的 AD 用户名?

如何通过 Powershell 创建带有点的 AD 用户名?

我正在尝试更改现有脚本,以便我的用户名是名字首字母加点姓氏,例如:John Doe 的用户名将是 j.doe 当前脚本的工作方式(没有 .)为:$firstname.substring(0,$i) + $lastname

谢谢。

答案1

有多种方法可以构建该字符串。[咧嘴笑] 以下是我想到的 4 个。

代码的作用是什么……

  • 伪造读取包含 FirstName、LastName 数据的 CSV 文件,并用您喜欢的数据源
    替换整个块。#region/#endregion
  • 迭代结果集合
  • 使用 4 种不同的方法构建所需的字符串,
    我偏爱-f字符串格式运算符,但许多人更喜欢字符串连接。
  • 发送每一个到显示器
  • 在结果组之间添加分隔线

代码 ...

#region >>> fake reading in a CSV file
#    when ready to do this for real, use your prefered data source
#    and delete or comment out the entire "#region/#endregion" block
$NameList = @'
FirstName, LastName
Alfa, Bravo
Charlie, Delta
Echo, Foxtrot
'@ -split [System.Environment]::NewLine |
    ConvertFrom-Csv
#endregion >>> fake reading in a CSV file

foreach ($NL_Item in $NameList)
    {
    # string format operator
    '{0}.{1}' -f $NL_Item.FirstName[0], $NL_Item.LastName

    # -join operator
    $NL_Item.FirstName[0], $NL_Item.LastName -join '.'

    # string concatenation
    $NL_Item.FirstName[0] + '.' + $NL_Item.LastName

    # variable-in-string expansion
    "$($NL_Item.FirstName[0]).$($NL_Item.LastName)"

    # yes, you can multiply a string [*grin*] 
    '=' * 20
    }

输出 ...

A.Bravo
A.Bravo
A.Bravo
A.Bravo
====================
C.Delta
C.Delta
C.Delta
C.Delta
====================
E.Foxtrot
E.Foxtrot
E.Foxtrot
E.Foxtrot
====================

答案2

$firstname.substring(0,$i) +"."+ $lastname

相关内容