Вы никогда не упоминали, как это не работает для вас, но я предполагаю, что это потому, что ваш метод SubString никогда не вызывается, а вместо этого интерпретируется как текст в вашей строке. Вместо этого попробуйте изменить следующую строку и посмотреть, соответствует ли она ожиданиям.
Сначала вы можете попробовать ее, просто записав вывод на экран, а не (потенциально) обновляя объект AD с неверным значением.
Get-ADUser -abc -Properties Description | foreach { Write-Output "$($PSItem.Description.SubString(0,10))" }
А затем запустите свою линию, как только вы убедитесь, что у вас есть то, что вам нужно.
Get-ADUser -abc -Properties Description | Set-ADUser -Description "$($PSItem.Description.SubString(0,10))"