use strict;
use warnings;
use Win32::OLE qw[in];
my $adspath = shift || die "Provide an adspath already\n";
{
warn $adspath, "\n";
my $user = Win32::OLE->GetObject("LDAP://$adspath");
die "Oh dear\n" unless $user;
$user->GetInfo;
unless ( defined $user->{thumbnailPhoto} ) {
warn "No thumbnail\n";
exit 0;
}
my $thumb = $user->{thumbnailPhoto};
{
open my $piccy, '>:raw', 'piccy.jpg' or die "$!\n";
print $piccy $thumb;
}
}
exit 0;
####
use strict;
use warnings;
use File::Slurp;
use Win32::OLE qw[in];
my $adspath = shift || die "Provide an adspath already\n";
my $filename = shift || die "No filename provided\n";
my $content = read_file( $filename, binmode => ':raw' );
{
warn $adspath, "\n";
my $user = Win32::OLE->GetObject("LDAP://$adspath");
die "Oh dear\n" unless $user;
$user->GetInfo;
$user->Put('thumbnailPhoto',$content);
$user->SetInfo;
}
exit 0;
##
##
Function ReadBinaryFile(FileName)
Const adTypeBinary = 1
Dim BinaryStream
Set BinaryStream = CreateObject("ADODB.Stream")
BinaryStream.Type = adTypeBinary
BinaryStream.Open
BinaryStream.LoadFromFile FileName
ReadBinaryFile = BinaryStream.Read
End Function
Set objNewUser = GetObject("LDAP://cn=some,ou=adspath,dc=domain,dc=local")
objNewUser.GetInfo
objNewUser.Put "thumbnailPhoto", ReadBinaryFile("image.jpg")
objNewUser.SetInfo