繁体   English   中英

如何替换所有Active Directory帐户照片?

[英]How to replace all Active Directory account photos?

我有一个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中的所有照片。 我该怎么做?

我建议您是否要替换所有用户的照片,以执行更多以下操作:

Get-ADUser | Where-Object { Test-Path "C:\scripts\foto\$($_.SamAccountName).jpg" } | Set-ADUser -Replace @{thumbnailPhoto=(Get-Content "C:\scripts\foto\$($_.SamAccountName).jpg" -Encoding byte)}

虽然未经测试。 这应为所有用户及其用户名在路径中存在图片的用户设置图片。

我无法理解Ashigore可能是正确的一线。 在这里,它被逐行分解为一个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}
   }
}

我认为这要好一点:

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}}

最好的问候,德米特里。

PS Eric的代码作为基础。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM