С модемами и СМС не работал, но
попробовать поэкспериментировать с перекодированием сообщения перед отправкой можно с помощью таких функций
function Get-TextEncoding ($Encoding) {
		switch -regex ($Encoding) {
			'default' {
				[System.Text.Encoding]::Default
			}
			'utf8' {
				[System.Text.Encoding]::UTF8
			}
			'oem' {
				[System.Text.Encoding]::GetEncoding(
					(Get-Culture).TextInfo.OEMCodePage
				)
			}
			'ansi' {
				[System.Text.Encoding]::GetEncoding(
					(Get-Culture).TextInfo.ANSICodePage
				)
			}
			'^\d+$' {
				[System.Text.Encoding]::GetEncoding([int]$Encoding)
			}
			default {
				[System.Text.Encoding]::GetEncoding($Encoding)
			}
		}
}
function Convert-TextEncoding {
param (
	[Parameter(ValueFromPipeline=$true,Position=0)]
	[String[]]$InputObject,
	[Parameter(Mandatory=$true,Position=1)]
	[string]$FromEncoding,
	[Parameter(Mandatory=$true,Position=2)]
	[string]$ToEncoding
)
BEGIN {
	try {
		$FE = Get-TextEncoding $FromEncoding
		$TE = Get-TextEncoding $ToEncoding
	}
	catch {
		throw
	}
}
PROCESS{
	foreach ($s in $InputObject) {
		if ($s) {
			$TE.GetString($FE.GetBytes($s))
		}
		else {
			$s
		}
	}
}
}
# Например, читабельный вывод из удалённо выполняемых консольных приложений я получаю так:
# Invoke-Command -ComputerName remoteComp { dism /online } | Convert-TextEncoding -FromEncoding 1251 -ToEncoding 866