如何使用PowerShell GUI在用户jpegPhoto和thumbnailPhoto的属性中插入图片?

问题描述 投票:1回答:1

使用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 - ArrayListthumbnailPhoto - Byte[]

如何使用System.Drawing.BitmapArrayList转换为Byte[]PowerShell GUI,使用Set-ADUser将图像转换为属性?

powershell user-interface
1个回答
0
投票

要从图片框中获取图像数据(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 cmdlet添加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属性,图像数据的最大大小为100KB(102400字节)。 通常,如果确保图像大约为96x96像素,则不会出错。

© www.soinside.com 2019 - 2024. All rights reserved.