如何使用 PowerShell 根据名字和姓氏的文件名生成用户名

How to use PowerShell to generate username based on filename of first and last name

我们有一个 JPG 文件列表,文件名以逗号分隔,文件名基于员工姓名(即:“Smith,John.jpg”)。我想根据他们的用户名(即:“jsmith.jpg”)创建此文件的副本。

所以基本上我认为我需要根据文件名中的姓氏和名字搜索 AD,找到 SAMAccountName,然后使用该名称创建文件的副本。

谁能帮我解决这个问题?

编辑:

感谢以下帮助,我得到了以下结果:

Import-Module ActiveDirectory
$Folder = "G:\Photos" # folder that contains the JPG files
$Files = get-childitem $Folder

foreach ($file in $files)
{
$CurrentFileName = $file.name
$SplitCurrent = $CurrentFileName.Split(", ")
$LastName = $SplitCurrent[0]
$FirstName = $SplitCurrent[2].Substring(0,$SplitCurrent[2].Length-4)
$UserName = Get-ADUser -Filter 'GivenName -eq $FirstName -and sn -eq $LastName' -properties SamAccountName | select -ExpandProperty SamAccountName
$NewFileName = $UserName + ".jpg"

Copy-Item -Path $file.FullName -Destination "$Folder$NewFileName"
}

谢谢!

我认为你不需要从 AD 获取任何东西,只要 JPG 文件的文件名与用户名匹配即可。

代码:

$Folder = "C:\Test" # folder that contains the JPG files

$Files = get-childitem $Folder
foreach ($file in $files)
{
    $CurrentFileName = $file.name
    $SplitCurrent = $CurrentFileName.Split(",")
    $LastName = $SplitCurrent[0]
    $FirstInitial = $SplitCurrent[1].Substring(0,1)
    $NewFileName = $LastName + $FirstInitial + ".jpg"

    Copy-Item -Path $file.FullName -Destination "$Folder$NewFileName"
}