如何透過 Powershell 建立帶點的 AD 使用者名稱?

如何透過 Powershell 建立帶點的 AD 使用者名稱?

我正在嘗試更改現有腳本,以便我的用戶名是名字初始點姓氏,例如:John Doe 的用戶名將是j.doe 當前腳本的工作原理(不帶。)為: $firstname.substring(0,$ i) + $姓氏

謝謝。

答案1

有多種方法可以建構該字串。 [咧嘴笑] 這是我想到的其中四個。

代碼的作用...

  • 假冒讀取帶有 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

相關內容