SCSM 2010 SP1 внес как большое число исправлений, так и некоторые нововведения. Одним из не самых приятных нововведений стало предупреждение о запуске не проверенного кода:
Эта задача выполняет следующий код, который не может быть проверен (This task will run the following unverifiable code)
Разработчики добавили две проверки: пакет управления, в котором расположена консольная задача, должен быть запечатан (Sealed). Если же задача расположена в незапечатанном пакете, сборка должна быть подписана сертификатом Authenticode. Если эти условия нарушаются – появляется предупреждение выше.
Так что теперь имейте это ввиду, когда создаете собственные консольные задачи с применением кода. Пока что я смог использовать только способ хранения задачи в запечатанном пакете. Подписать сборку тестовым самовыпущенным сертификатом (“настоящий” стоит от $300 до почти $500 на один год) у меня не получилось. Чтобы проверить, подписана ли сборка сертификатом, необходимо выполнить следюущий код (реализация для Powershell, перевести это в C# не составит труда):
$dllPath = "FULL_PATH_TO_DLL" $IsSigned = [reflection.assembly]::LoadFile($dllPath).ManifestModule.GetSignerCertificate() -ne $null write-host "Assembly Is Signed:"$IsSigned