Powershell を使用してドットを含む AD ユーザー名を作成するにはどうすればよいですか?

Powershell を使用してドットを含む AD ユーザー名を作成するにはどうすればよいですか?

既存のスクリプトを変更して、ユーザー名が firstname の先頭にドットが付いた姓になるようにします。たとえば、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

関連情報