Начало работы с управлением SharePoint в PowerShell

Утомляет ли вас центр администрирования SharePoint, кажется недостаточным, и хотите ли вы перейти на командную строку? Да, это возможно с помощью модуля PowerShell SharePoint Online Management.

Этот модуль позволяет выполнять те же задачи, которые вы обычно делаете в центре администрирования SharePoint, в PowerShell. Более того, вы можете автоматизировать свои задачи SharePoint Online!

Это руководство учит основам управления SharePoint Online с помощью PowerShell. Вы научитесь устанавливать модуль, выполнять общие административные задачи и автоматизировать повторяющиеся действия. Не уходите и погружайтесь прямо сейчас!

Предварительные требования

Это руководство будет практической демонстрацией. Если вы хотите следовать вместе, убедитесь, что у вас есть следующее:

  • Вы должны знать URL-адрес администратора SharePoint Online и URL-адрес портала. Обратитесь к этой ссылке, чтобы узнать, как получить URL-адрес администратора SharePoint Online в вашем тенанте.

В этом руководстве будет использоваться URL-адрес портала HTTPS://lzex.sharepoint.com и URL-адрес администратора HTTPS://lzex-admin.sharepoint.com.

  • Windows PowerShell 5.1 или последний PowerShell 7 на Windows. В этом учебнике используется Windows PowerShell 5.1 на Windows 10.

Установка модуля PowerShell SharePoint Online

Для управления SharePoint Online с помощью PowerShell сначала необходимо установить модуль PowerShell SharePoint Online Management. Этот модуль предоставляет командлеты, которые позволяют подключаться и управлять вашей организацией и ресурсами SharePoint онлайн.

Самый быстрый и удобный способ установить модуль PowerShell SharePoint Online – из галереи PowerShell с помощью командлета Install-Module. Для этого выполните следующие шаги.

1. Откройте PowerShell от имени администратора.

2. Запустите следующую команду. Эта команда устанавливает модуль Microsoft.Online.SharePoint.PowerShell.

Install-Module -Name Microsoft.Online.SharePoint.PowerShell

3. Чтобы подтвердить успешность установки модуля, выполните следующую команду, чтобы получить информацию о модуле.

Get-Module -Name Microsoft.Online.SharePoint.PowerShell -ListAvailable | Select-Object Name,Version

Команда возвращает имя и версию модуля. Как видно ниже, на этом компьютере есть одна версия модуля Microsoft.Online.SharePoint.PowerShell. Последняя версия на момент написания этого сообщения – 16.0.22615.12000.

Listing the PowerShell SharePoint Online module information

4. Наконец, импортируйте модуль PowerShell SharePoint, запустив нижеприведенную команду в PowerShell.

Примечание: Хотя модуль PowerShell SharePoint Online работает с PowerShell 7, вы должны явно импортировать модуль с помощью переключателя -UseWindowsPowerShell.

# В Windows PowerShell 5.1
Import-Module Microsoft.Online.SharePoint.PowerShell

# В PowerShell 7x
Import-Module Microsoft.Online.SharePoint.PowerShell -UseWindowsPowerShell

Игнорируйте предупреждение об отклоненных глаголах. Это предупреждение информирует вас о командлетах, которые не начинаются с утвержденных глаголов в списке Get-Verb, но не влияют на функциональность модуля.

Чтобы избежать этого предупреждения, добавьте переключатель -DisableNameChecking к команде Import-Module.

Importing the PowerShell SharePoint Online module

Подключение к PowerShell SharePoint Online

Теперь вы готовы подключиться к сеансу PowerShell SharePoint Online. Но прежде чем это сделать, поймите, что синтаксис и метод будут отличаться в зависимости от статуса многофакторной аутентификации вашей учетной записи администратора.

Учетная запись администратора без MFA

Если ваша учетная запись администратора не поддерживает MFA, выполните следующую команду Connect-SPOService. Укажите свой административный URL после параметра -Url и ваш именной принципал пользователя (UPN) после параметра -Credential.

Connect-SPOService -Url <https://tenant-admin.sharepoint.com/> -Credential spoadmin@domain.com

Введите ваш пароль в следующем запросе и нажмите Enter.

Connect SPOService
Connecting to PowerShell SharePoint online without MFA

Параметр -Credential также принимает объект PSCredential, который можно создать с помощью команды Get-Credential.

Учетная запись администратора с MFA

Для учетной записи администратора MFA выполните следующие шаги для подключения к сеансу PowerShell SharePoint Online.

1. Запустите следующую команду в PowerShell. Убедитесь, что указали правильный URL администратора SharePoint.

Connect-SPOService -Url https://tenant-admin.sharepoint.com/

2. В окне входа введите свое имя пользователя администратора и нажмите “Далее”.

Type the SharePoint admin username

3. Затем введите пароль для учетной записи администратора и нажмите “Войти”.

Enter the account password

4. Наконец, выполните свой MFA-вызов. В зависимости от того, как настроен MFA для вашей учетной записи, метод MFA может отличаться от скриншота ниже.

Completing the MFA challenge

После выполнения этих действий ваше подключение к PowerShell SharePoint online должно быть активным.

Управление сайтами, пользователями и группами с использованием модуля PowerShell SharePoint

С помощью PowerShell вы можете выполнять некоторые функциональные возможности, которые SharePoint предоставляет для SharePoint Online и различных ресурсов. В этом разделе вы будете выполнять типичные задачи SharePoint Online, такие как создание сайтов, создание групп, добавление пользователей, удаление пользователей из групп и создание отчетов о пользователях.

Создание нового сайта SharePoint

Используя команду New-SPOSite, вы можете создать новый сайт SharePoint Online. Предположим, что вы создаете новый современный сайт Team Site под названием Мой первый сайт команды, выполните следующие шаги.

1. Сначала получите имя шаблона Team Site.

Get-SPOWebTemplate

Найдите шаблон, который вы хотите применить к новому сайту. В этом примере скопируйте значение Name из шаблона сайта Team (без группы Microsoft 365), STS#3.

Listing all available SharePoint web templates

2. Теперь выполните следующую команду, чтобы создать современный сайт команды. Убедитесь, что указаны следующие параметры.

  • Url - Указывает URL нового сайта. Структура этого URL следует данной конвенции - HTTPS://<tenant>.sharepoint.com/sites/<site-slug>.

Убедитесь, что URL уникален. Создание сайта завершится ошибкой, если сайт с таким же URL уже существует, даже если этот сайт находится в корзине.

  • Title – Устанавливает заголовок для вашего нового сайта.
  • Owner - Назначает владельца сайта по его пользовательскому принципиальному имени.

Примечание: SPO автоматически устанавливает группу администраторов компании в качестве владельца сайта, если указанный вами владелец имеет роль администратора.

  • Template – Указывает шаблон веб-сайта, который вы применяете к новому сайту.
  • StorageQuota - Конфигурирует значение квоты хранилища сайта в мегабайтах.

Примечание: Значение StorageQuota применяется только в том случае, если Лимит хранилища сайта в вашей организации SharePoint Online установлен в режиме Ручной. Если установлено значение Автоматический, преимущество имеет общая квота хранилища арендатора.

New-SPOSite `
    -Url 'https://lzex.sharepoint.com/sites/MyFirstTeamSite' `
    -Title 'My First Team Site' `
    -Owner '[email protected]' `
    -Template 'STS#3' `
    -StorageQuota 1000

Если создание сайта прошло успешно, в PowerShell вы не получите ответа или сообщения.

3. Подтвердите существование нового сайта, запустив команду Get-SPOSite.

Get-SPOSite -Identity 'https://lzex.sharepoint.com/sites/MyFirstTeamSite'
Getting the new SPO site details

В конце концов, откройте URL сайта SharePoint в вашем веб-браузере, чтобы подтвердить, что сайт работает.

Opening the new SPO site in the browser

Создание групп сайтов и добавление пользователей

После создания нового сайта SPO вы можете начать создавать группы и добавлять пользователей с определенными уровнями разрешений . В этом разделе вы узнаете, как создавать группы и добавлять пользователей в такие группы.

Сначала создайте группы, соответствующие спецификациям в таблице ниже.

Чтобы получить список уровней разрешений, посетите Руководство по разрешениям пользователя и уровням разрешений в сервере SharePoint документации.

Site Group PemissionLevels
https://tenant.sharepoint.com/sites/MyFirstTeamSite Editing Team Edit
https://tenant.sharepoint.com.sites/MyFirstSite Design Team Design

Для создания групп используйте командлет New-SPOSiteGroup . Выполните следующие команды, чтобы создать группы.

  # Определите URL сайта.  
$siteURL = '<https://lzex.sharepoint.com/sites/MyFirstTeamSite>'
  # Создайте группу «Группа редактирования» с разрешением «Редактирование» на сайте.  
New-SPOSiteGroup -Site $siteURL -Group 'Editing Team' -PermissionLevels Edit
  # Создайте группу "Группа дизайна" с разрешением «Дизайн» на сайте.  
New-SPOSiteGroup -Site $siteURL -Group 'Design Team' -PermissionLevels Design
Creating new groups on the SPO site

Затем добавьте пользователей, которые должны быть членами групп. Для этого выполните команды Add-SPOUser ниже.

  # Добавить пользователя в группу сайта "Группа редактирования"  
Add-SPOUser -Site $siteURL -Group 'Editing Team' –LoginName spoeditor@lzex.ga
  # Добавить пользователя в группу сайта "Группа дизайна" 
Add-SPOUser -Site $siteURL -Group 'Design Team' –LoginName spodesigner@lzex.ga

После выполнения каждой команды вы получите результаты, аналогичные скриншоту ниже.

Adding users to SPO site groups

Генерация списка пользователей сайта

Используя команду Get-SPOUser, вы можете сгенерировать список пользователей, имеющих доступ к сайту.

Запустите команду ниже, чтобы сгенерировать список пользователей на сайте My First Team Site.

Get-SPOUser -Site <https://lzex.sharepoint.com/sites/MyFirstTeamSite> | Format-Table -Wrap -AutoSize | Out-File <path-to-savereport> -Force -Width 360 -Append

Результат будет похож на скриншот ниже. Как видно, вывод показывает список пользователей и их членство в группах.

Getting the list of users on the SPO site

Вы также можете вывести результаты в различные типы файлов, включая CSV, XML, JSON, YAML, HTML и обычный текст.

Удаление пользователей из групп сайта

Вам может потребоваться удалить пользователя, вероятно, потому, что вы добавили пользователя в неправильную группу или пользователь больше не является членом команды. Команда Remove-SPOUser – это подходящий инструмент для этой задачи.

Например, выполните команду ниже, чтобы удалить пользователя [email protected] из группы Design Teow.

Remove-SPOUser `
    -LoginName spodesigner@lzex.ga `
    -Site <https://lzex.sharepoint.com/sites/MyFirstTeamSite> `
    -Group 'Design Team'

Как видно, список Users в группе Design Team теперь пуст после удаления ее единственного члена.

Removing a user for the SPO site group

Использование PowerShell для автоматизации SharePoint Online

Поскольку вы работаете с PowerShell, вы можете использовать его мощь для автоматизации. Например, написание сценария будет более практичным подходом при создании нескольких сайтов.

Вы можете объединить команду PowerShell SharePoint Online New-SPOSite с встроенными командами, такими как Import-Csv и ForEach-Object. В следующих шагах приведен пример создания нескольких сайтов с разными свойствами.

1. Запустите следующую команду для создания нового файла CSV с именем sites.csv.

New-Item -Type File -Path .\sites.csv

2. Затем откройте файл CSV в текстовом редакторе. В этом примере используется notepad.exe.

notepad.exe .\sites.csv

3. Скопируйте следующий текст в свой файл CSV и сохраните его. Обязательно замените значения Owner и Url, чтобы они соответствовали вашей организации.

Owner,StorageQuota,Url,Template,Name
spoadmin@lzex.ga,100,https://lzex.sharepoint.com/sites/new-site,STS#0,Новый сайт
ata_dev@lzex.ga,100,https://lzex.sharepoint.com/sites/dev-site,DEV#0,Сайт разработки

Ваш файл CSV будет выглядеть примерно так, как на скриншоте ниже.

Creating the CSV list of new sites

4. Запустите следующий сценарий в PowerShell.

Import-Csv .\sites.csv | ForEach-Object {
    New-SPOSite `
        -Owner $_.Owner `
        -StorageQuota $_.StorageQuota `
        -Url $_.Url `
        -Template $_.Template `
        -Title $_.Name `
        -NoWait
}

Если ошибок нет, на экране не появится дополнительных результатов.

Creating multiple sites using the PowerShell SharePoint online script

5. Наконец, выполните следующую команду, чтобы подтвердить наличие новых сайтов.

Import-Csv .\sites.csv | ForEach-Object {
    Get-SPOSite -Identity $_.Url | Select-Object Title,Url,Owner
}
Listing the new sites

Вы можете применить тот же прием, который вы только что использовали, чтобы автоматизировать массовые задачи, такие как создание групп сайтов и обновление членства в группе сайтов.

Заключение

Модуль PowerShell для SharePoint Online позволяет вам улучшить управление вашей организацией в SharePoint Online. Этот модуль не предназначен для замены центра администрирования SharePoint, а служит инструментом для расширения ваших навыков в SharePoint Online.

Помимо модуля PowerShell для SharePoint Online, вы знали, что существует еще один модуль, который позволяет управлять SharePoint Online с помощью PowerShell? Да, этот модуль – PnP PowerShell. Почему бы вам не исследовать этот модуль и сравнить, который лучше подходит для вас?

Source:
https://adamtheautomator.com/powershell-sharepoint/