none
Импорт фото к почтовому ящику пользователя RRS feed

  • Вопрос

  • Где то короче я косячу.

    вот скрипт.

    [PS] C:\1>Import-CSV -Delimiter ";" addphoto1.csv | ForEach-Object {Import-RecipientDataProperty -Identity "$_.Identity"
     -Picture -FileData ([Byte[]]$(Get-Content -Path "C:\pictures\$_.Path " -Encoding Byte -ReadCount 0))}

    вот CSV

    Identity;Path
    Белянина Галина Николаевна;Белянина Галина Николаевна

    а вот что мне выдает PS

    Get-Content : Cannot find path 'C:\pictures\@{Identity=Белянина Галина Николаевна; Path=Белянина Галина Николаевна}.Pat
    h ' because it does not exist.
    At line:1 char:153
    + Import-CSV -Delimiter ";" addphoto1.csv | ForEach-Object {Import-RecipientDataProperty -Identity "$_.Identity" -Pictu
    re -FileData ([Byte[]]$(Get-Content <<<<  -Path "C:\pictures\$_.Path " -Encoding Byte -ReadCount 0))}
        + CategoryInfo          : ObjectNotFound: (C:\pictures\@{I...колаевна}.Path :String) [Get-Content], ItemNotFoundEx
       ception
        + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetContentCommand

    Cannot bind argument to parameter 'FileData' because it is null.
        + CategoryInfo          : InvalidData: (:) [Import-RecipientDataProperty], ParameterBindingValidationException
        + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Import-RecipientDataProperty

    Вот в упор не понимаю где я ошибся.

Ответы

  • разобрался

    $PhotoPath = "C:\Photos\*.*" 
    ForEach ($PhotoFile in gci $PhotoPath)
    {
    $User = '' + $PhotoFile.Name.substring(0, $PhotoFile.Name.Length - 4) + ''
    Import-RecipientDataProperty -Identity $User -Picture -FileData ([Byte[]]$(Get-Content -Path $PhotoFile.Fullname -Encoding Byte -ReadCount 0))
    }

    • Помечено в качестве ответа mo3kvich412 7 июня 2016 г. 5:18

Все ответы

  • Изменил, 

    скрипт

    [PS] C:\1>Import-CSV -Delimiter ";" addphoto.csv | ForEach-Object {Import-RecipientDataProperty -Identity "$_.Identity"
    -Picture -FileData ([Byte[]]$(Get-Content -Path "$_.photo" -Encoding Byte -ReadCount 0))}

    CSV

    Identity;photo
    Белянина Галина Николаевна;"C:\pictures\Белянина Галина Николаевна.jpg"

    Вывод

    Get-Content : A parameter cannot be found that matches parameter name 'Encoding'.
    At line:1 char:179
    + Import-CSV -Delimiter ";" addphoto.csv | ForEach-Object {Import-RecipientDataProperty -Identity "$_.Identity" -Pictur
    e -FileData ([Byte[]]$(Get-Content -Path "$_.photo" -Encoding <<<<  Byte -ReadCount 0))}
        + CategoryInfo          : InvalidArgument: (:) [Get-Content], ParameterBindingException
        + FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Commands.GetContentCommand

    Cannot bind argument to parameter 'FileData' because it is null.
        + CategoryInfo          : InvalidData: (:) [Import-RecipientDataProperty], ParameterBindingValidationException
        + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Import-RecipientDataProperty

    Помогите люди добрые. скажите где я неправ

  • разобрался

    $PhotoPath = "C:\Photos\*.*" 
    ForEach ($PhotoFile in gci $PhotoPath)
    {
    $User = '' + $PhotoFile.Name.substring(0, $PhotoFile.Name.Length - 4) + ''
    Import-RecipientDataProperty -Identity $User -Picture -FileData ([Byte[]]$(Get-Content -Path $PhotoFile.Fullname -Encoding Byte -ReadCount 0))
    }

    • Помечено в качестве ответа mo3kvich412 7 июня 2016 г. 5:18
  • Круто. сам спросил -  сам ответил.

    Я в скриптах пока ещё плаваю, но мысль интересная. А можно чуть подробнее, что за чем делать, чтоб фоток всем прикрутить (вот моя бухгалтерия меня будет ненавидеть).

    Заранее благодарен.

  • У тебя есть пользователи, например полные имена в AD Иванов Иван Иванович и так далее. Заходишь на сервер Exchange, кладешь фото всех сотрудников C:\Photos\ в виде "полное имя пользователя.jpg" или "логин сотрудника.jpg". Выполняешь скрипт. Готово.