Update-SPSolution -identity $existingSolution.SolutionId ^LiteralPath (SPath + "\" + $file.Name) -GACDeployment
}
# не развернутое решение необходимо удалить и установить заново else {
Remove-SPSolution -identity
4>$existingSolution.SolutionId -confirm:$false
Add-SPSolution -LiteralPath ($Path + "\" + $file.Name)
I
$existingSolution = Get-SPSolution | Where {$_.Name -eq $file.Name}
if($existingSolution -ne $null) {
Install-SPSolution -identity $existingSolution.SolutionId 4>-GACDeployment -force
}
}
»
Чтобы выполнить этот сценарий, его надо вызвать командой наподобие
Install-SPFeatures "С:\Installation-StoreV'
В этом примере Installation-Store — папка на локальном или сетевом диске, которая содержит несколько фалов пакетов решений. Сценарий перебирает все WSP-файлы в папке и пытается добавить и развернуть все решения.
У приведенного сценария есть свои ограничения. Если уже имеется решение с таким именем, оно будет обновлено. Во время развертывания разрешены развертывания GAC, чтобы использовать эти сценарии только с доверяемыми решениями. Решения развертываются на всех сайтах.
Дополнительные сведения о PowerShell
Все администраторы однажды доходят до такого состояния, когда их понимания PowerShell достаточно для выполнения простейших задач администрирования SharePoint. И вот тогда важно знать, как поднять навыки в работе с PowerShell на следующий уровень.
В PowerShell 2.0 есть интересная возможность — дистанционное выполнение командле-тов PowerShell с клиентской машины без необходимости находиться у консоли сервера или использования средства управления сервером наподобие Remote Desktop Protocol (RDP). Чтобы запускать командлеты с удаленного компьютера, нужно обеспечить, чтобы на всех серверах была установлена одна и та же версия PowerShell (2.0 или более поздняя), и перед выполнение командлетов запустить приведенный ниже сценарий. Выполните этот сценарий на каждом сервере из фермы SharePoint — только обязательно запускайте оболочку PowerShell от имени администратора, щелкнув правой кнопкой на значке PowerShell и выбрав пункт Run as administrator (Выполнить от имени администратора).
# Разрешение возможности PowerShell Remoting
Enable-PSRemoting -force
# Разрешение делегирования полномочий
Enable-WSManCredSSP -role Server -force
# Увеличение объема буфера памяти
Set-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB 1000
Для разрешения удаленного управления на клиентском компьютере используйте следующий код (замените SPServerl и SPServer2 реальными именами серверовSharePoint в ферме):
Enable-PSRemoting -force
Enable-WSManCredSSP -role Client -DelegateComputer SPServerl, SPServer2 -force
Следующий фрагмент кода демонстрирует выполнение командлета Get-SPSiteна удаленном компьютере. Перед выполнением пользователю выдается запрос полномочий на администрирование SharePoint. Замените SPServerна реальное имя сервера SharePoint:
$administrator = Get-Credential
Invoke-Command -Computemame SPServer -Credential $administrator -Authentication credssp (Add-PSSnapin Microsoft.SharePoint.PowerShell; Get-SPSite | Select Url)
За пределами встроенных командетов PowerShell для SharePoint
Пользовательские функции в PowerShell позволяют разработчикам легко объединять разделы кода для облегчения и повторного их использования.
Вот простая функция HelloWorld:
Function HelloWorld()
(
Write-Host "Hello World!“
}
Для выполнения этой функции введите команду HelloWorld
Проще всего начать работать с функциями с помощью PowerShell ISE (Integrated Scripting Environment — интегрированная среда работы со сценариями) и выполнять функции непосредственно из ISE. Если среда ISE недоступна, сохраните код в .psl-файле с помощью любого текстового редактора вроде Блокнота, а затем запустите его на выполнение из оболочки PowerShell с помощью команды
\HelloWorld.psl
Функции и параметры
При создании функций PowerShell можно определить несколько параметров, которые передаются функции при вызове ее из кода. Простейший пример функции PowerShell с параметрами выглядит так:
Function HelloWorld($YourName)
Для более гибкой работы со свойствами параметров воспользуйтесь синтаксисом рагапс
Function HelloWorld{
Param (
[Parameter(Mandatory=$true)J [string]$YourName = "John Smith",
[int]$YourAge = 0
)
Write-Host "$YourName ($YourAge)"
]
В таком варианте автор может указать, какие параметры нужно передавать обязательно, типы каадого параметра и их значения по умолчанию. Функции с параметрами вызываются так. как показано ниже. При передаче параметры разделяются только пробелами, запятые не нужны:
Читать дальше