我有一个PowerShell脚本来替换单张照片:
Import-Module ActiveDirectory
$photo = [byte[]](Get-Content C:\scripts\foto\XXX.jpg -Encoding byte)
Set-ADUser XXX -Replace @{thumbnailPhoto=$photo}
我有一个文本文件,其中包含以下帐户的用户名:
ROB ALAN COY GREGOR
我想自动替换Active Directory中的所有照片。我该怎么做?
答案 0 :(得分:1)
我建议您是否要更换所有用户照片以执行更多类似的操作:
Get-ADUser | Where-Object { Test-Path "C:\scripts\foto\$($_.SamAccountName).jpg" } | Set-ADUser -Replace @{thumbnailPhoto=(Get-Content "C:\scripts\foto\$($_.SamAccountName).jpg" -Encoding byte)}
未经测试。这应该为路径中存在图片及其用户名的所有用户设置照片。
答案 1 :(得分:0)
我无法理解阿西戈尔可能是正确的单线。在这里,它逐行分解为foreach循环。
$users = get-adUser
foreach ($user in $users){
$photoPath = "C:\scripts\foto\$($_.SamAccountName).jpg"
if (Test-Path $photoPath ) {
$photo = Get-Content "C:\scripts\foto\$($user.SamAccountName).jpg" -Encoding byte
Set-ADUser $user -Replace @{thumbnailPhoto=$photo}
}
}
答案 2 :(得分:0)
我认为这要好一点:
Import-Module ActiveDirectory
$users = Get-ADUser -Filter *
foreach ($user in $users){
$photoPath = "C:\foto\$($user.SamAccountName).jpg"
if (Test-Path $photoPath ) {
$photo = Get-Content "C:\foto\$($user.SamAccountName).jpg" -Encoding byte
Set-ADUser $user -Replace @{thumbnailPhoto=([byte[]]$photo)}
Write-Host 'Foto was set for:' $user.SamAccountName}}
最诚挚的问候,德米特里。
P.S。 Eric的代码作为基础。