Start-SPAssignment
Инициирует новое хранилище назначений.
Синтаксис
Start-SPAssignment
[-AssignmentCollection <SPAssignmentCollection>]
[-Global]
[<CommonParameters>]
Описание
Командлет Start-SPAssignment
должным образом удаляет объекты, используемые с назначениями переменных.
При использовании объектов SPWeb, SPSite или SPSiteAdminsitration часто необходимы большие объемы памяти. Поэтому использование этих объектов или списков объектов в скриптах Windows PowerShell требует правильного управления памятью. По умолчанию все команды Get удаляют эти объекты сразу после окончания работы конвейера, но с помощью командлета SPAssignment можно назначать список объектов переменной и удалять объекты тогда, когда они уже не нужны. Можно также сделать так, чтобы объекты хранились ровно столько, сколько они нужны, даже при использовании нескольких итераций команд.
Существуют три уровня назначений.
-- Нет назначения . Объект не назначается переменной и удаляется после каждой итерации команды.
-- Простое назначение . Все объекты назначаются глобальному хранилищу назначений. Это осуществляется с помощью параметра Global. При использовании этого уровня все объекты назначаются глобальному хранилищу и удаляются при вызове командлета Stop-SPAssignment.
-- Расширенное назначение — объекты назначаются именованным хранилищам для удаления. Объекты можно удалить с помощью параметра Identity с командлетом Stop-SPAssignment
.
Независимо от используемого уровня назначения все объекты удаляются при закрытии пространства выполнения Windows PowerShell.
Сведения о разрешениях и актуальную информацию о Windows PowerShell для продуктов SharePoint см. в сетевой документации о командлетах SharePoint Server.
Примеры
------------------ПРИМЕР 1-----------------------
Start-SPAssignment -global
$w = Get-SPWeb https://MyWeb
$w | Set-SPWeb -title "Accounting"
Stop-SPAssignment -global
В этом примере используется простое назначение.
Использовать простое назначение несложно, но этот вариант не рекомендуется в случае повторения команд для нескольких объектов SPSite или SPWeb.
Убедитесь, что выполняется выполнение Stop-SPAssignment
перед попыткой выполнить итерацию нескольких объектов.
--------------------------ПРИМЕР 2------------------------
$gc = Start-SPAssignment
$web = $gc | Get-SPWeb https://MyWeb
$web | Set-SPWeb -title "Accounting"
Stop-SPAssignment -SemiGlobal $gc
В этом примере задается название объекта SPWeb в нескольких строках, и контролируется частота удаления. Это пример расширенного использования назначений. Его рекомендуется использовать только разработчикам.
Параметры
-AssignmentCollection
Позволяет корректно удалять объекты. При использовании объектов таких типов, как SPWeb или SPSite, возможен захват больших объемов памяти, и работа с такими объектами в скриптах Windows PowerShell требует точного управления памятью. С помощью объекта SPAssignment вы можете назначить объекты переменной и освободить память, удалив ненужные объекты. Объекты SPWeb, SPSite или SPSiteAdministration после использования удаляются автоматически, если коллекция назначения или параметр Global не применяются.
При использовании параметра Global все объекты содержатся в глобальном хранилище.
Если объекты не используются сразу или удаляются с помощью команды Stop-SPAssignment
, может возникнуть нехватка памяти.
Type: | SPAssignmentCollection |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Applies to: | SharePoint Server Subscription Edition |
-Global
При использовании этого параметра все объекты назначаются на время существования скрипта и удаляются при вызове командлета Stop-SPAssignment
.
Если этот параметр не используется, необходимо назначить выходные данные этого командлета переменной, а затем удалить объекты с помощью параметра Identity командлета Stop-SPAssignment
.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Applies to: | SharePoint Server Subscription Edition |