Как вставить картинку в атрибуты пользователя jpegPhoto и thumbnailPhoto с помощью PowerShell GUI? - PullRequest
1 голос
/ 15 апреля 2019

Используя PowerShell GUI Я создаю простую форму для изменения фотографии пользователя в AD.

Загрузка фото на picturebox:

    $imgFile = (get-item 'd:\Foto\testUser.jpg')
    $picturebox.Image = [System.Drawing.Image]::Fromfile($imgFile)

$picturebox.Image имеет тип:

    > Write-Host $picturebox.Image.GetType()
    System.Drawing.Bitmap

Обязательные атрибуты имеют тип: jpegPhoto - ArrayList, thumbnailPhoto - Byte[]

Как преобразовать System.Drawing.Bitmap в ArrayList и Byte[], используя PowerShell GUI для передачи изображения в атрибуты, используя Set-ADUser?

1 Ответ

0 голосов
/ 15 апреля 2019

Чтобы получить данные изображения в виде байтового массива (в формате jpeg) из графического блока:

$stream = New-Object System.IO.MemoryStream
$picturebox.Image.Save($stream, [System.Drawing.Imaging.ImageFormat]::Jpeg) | Out-Null
[byte[]]$pictureData = $stream.ToArray()
$stream.Dispose()

Используя этот байтовый массив, вы можете использовать командлет Set-ADUser для добавления thumbnailPhoto:

try {
    # $User here is an AD User object you get using the Get-ADUSer cmdlet
    $User | Set-ADUser -Replace @{thumbnailPhoto = $pictureData } -ErrorAction Stop
}
catch {
    Write-Error $_.Exception.Message
}

Примечание: для атрибута thumbnailPhoto данные изображения имеют максимальный размер 100 КБ (102400 байт) .
Обычно вы не ошибетесь, если убедитесь, что размер изображения составляет 96х96 пикселей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...