Если ферма серверов SharePoint состоит из нескольких серверов, то иногда, к сожалению, довольно не редко, при установке или удалении решения на одном или нескольких серверах зависает задание по развертыванию / удалению решения. В принципе, можно запустить перезапустить службу таймера "SharePoint 2010 Timer" на сервере с зависшим заданием и переустановить решение повторно, но тогда время простоя увеличится. Когда это критично, рекомендую использовать другое решение.

Если при развертывании (Install-SPSolution) или при извлечении (Retract-SPSolution) повис таймер на одном из серверов фермы, то нужно зайти на этот сервер и убедиться, что именно тут это произошло и получить идентификатор задания JobId. По этому идентификатору нужно потом отменить

Для этого нужно запустить команду

stsadm -o enumdeployments

В результате будет выдан ответ типа такого:

Скопируйте в буфер обмена идентификатор и введите команду:

stsadm -o canceldeployment -id 4714a374-6192-457a-9d28-140efe6fa835

Эта команда отменяет задание на развертывание решения на текущем сервере.

В случае, если все хорошо, то вы получите сообщение:

Операция успешно завершена.

Если получили сообщение "Операция успешно завершена.", можно приступить к повторной установке решения только на текущем сервере. В моем случае это было обновлением решения, потому я использовал команду Update-SPSolution с ключом -local:

Update-SPSolution -Identity solutionName.wsp -LiteralPath C:\distrib\Solution\solutionName.wsp -GACDeployment -local –Force