如何使用 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"
}
我们有一个 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"
}