Создание профиля outlook powershell
In this post, App Dev Manager Edward Fry demonstrates how to use Microsoft Outlook Object Library from PowerShell.
Time is a precious commodity. For many professionals, there just aren’t enough hours to accomplish all the tasks in a day. Thankfully, today’s world thrives on automation. Computers can perform painstaking, mundane tasks in a matter of seconds, leaving you the extra time to work on a multitude of more mentally intensive jobs. Whether you have an advanced technical degree or just use the computer for day-to-day tasks, it isn’t too hard to make the computer your personal assistant.
For this article, let’s focus on a specific type of task that is common for many professionals: sending out reports. While the specifics will vary, this scenario typically involves generating reports on some area of business interest and then sending those reports to recipients of interest. Of course, one way to approach this task would be to have each interested party look at their own reports or dashboards.
However, this isn’t always feasible. For instance, your users may be executives who don’t have the time for managing their own reporting. Or you might be in sales or services and need to share reports with your customers. Sharing that information is just part of the service that you provide, so it wouldn’t be appropriate to offload such a task to your customers. These are only two possible scenarios where you need to push reports to others rather than (or in addition to) having them pull their own.
An additional constraint, though, is that your report recipients must all be separated from each other. One executive might not need to know or care about another’s area of focus. One customer should not see or even be aware of other customers’ reports for privacy reasons. This constraint adds some complexity and work to the process. Wouldn’t it be nice to have the computer be your personal assistant and take care of all that for you?
Our goal in this article is to automate the download of periodic reports, associated processing, and dissemination to recipients via discrete outgoing messages with relevant attachments. For this article, I am assuming that the reports come from a reporting tool that allows email subscriptions, like SQL Server Reporting Services (SSRS), that Outlook is the email client, and some basic PowerShell knowledge.
By the way, you don’t have to be a seasoned developer in order to pull this off; anyone with a little PowerShell experience can benefit. Every information professional will benefit from some basic scripting ability in a language like PowerShell, and I highly recommend setting aside some time to learn this useful practical skill. If you need the basics, check out some of the free resources that are available.
Before we get to the scripting, we need to set some things up. This will make the script easier to code, and it will enable easier management as things change over time.
Report Delivery
A key component of this solution is that the reports you need to send out are delivered to your inbox. Of course, it’s possible to run them manually and save them off, and there’s a solution for automating those, too (though that is outside the scope of this article), but it is much easier to have them come to you.
Oftentimes, people are not aware that you can automate report delivery in SSRS. It is quite simple and involves just pre-selecting the filters of interest and a delivery schedule – for instance, once a month or once a week, etc.
When you set up your subscription, be sure to select the type of report that you wish to distribute. Since PDF is the most common file type for this sort of scenario, we will assume the reports are delivered in PDF format for the rest of this article.
Recipients
Typing in a list of recipients each time you need to send out reports is tedious and error-prone. Instead of doing that, let’s add a layer of abstraction to the process. In our case, we will use Outlook groups to refer to recipients as a group rather than by name. As you can see in the image below, you create a group for each type of recipient for each destination. For instance, our example here assumes customer recipients. You would make an Outlook group for primary recipients, one for CC, etc. Check out how to make groups in Outlook HERE.
For each group, then, you simply add the actual people who will need to receive the reports. That could be one person or a lot of people. As contacts change, all you need to do is keep these groups up to date, and the automation script will implicitly pick those changes up without any need to modify the code.
Template Emails
We also need a template email. In the image above, you can see that our template includes the message that we want to send to our recipients along with some tags that will be replaced in our script. To create an email template, go HERE.
File System
In this optional but recommended step, organize your folder structure so that you can save a copy of each report automatically for your records. Setting up an organized filing system is key to keeping the files organized and easy to locate in the future.
Once the reports of interest show up in your inbox at the designated time from SSRS, our automation will follow these steps:
- Connect to Outlook
- Open the emails and save the PDF to the proper folder in your filing system for backup purposes. I like to rename each PDF with something meaningful to the recipient and report. For example: (CompanyName)(ReportTitle)(Date).pdf
- Process Reports
- Attach the PDF into the analogous email template.
- Expand the To and CC recipient groups.
- Customize the message as needed.
Connect to Outlook
Process Reports
Now we can finally process those emails that were sent by SSRS automatically with the report PDFs.
With our handy Outlook namespace object in hand, we can now get references to other objects and commands within Outlook. First, we’ll get a reference to the inbox and the emails that match our criteria within the inbox.
Prepare Outgoing Emails
Within the looping structure above (in place of the “Prepare outgoing emails” comment above), we can now get our emails ready. This will utilize the email template and groups that we prepared earlier. Here is some sample code to get you started:
As you can see, we first use a template denoted by the constant $emailTemplatePattern for each recipient or customer to create a new email. Next, we expand the contact groups specified in the To and CC lines of the new email. Finally, we replace the tags that were denoted by “[tag]” in the template with appropriate data points meaningful to each recipient. This data is usually pulled directly off of the title or file name of the reports sent by SSRS. You could also parse information out of the attachments themselves, though such an activity is beyond the scope of this article.
Note: You can also have the script automatically send out your emails. I prefer to double check before they go out to make sure that everything looks ok.
Wrapping Up
Once everything is ready, you can either review and manually send out the resulting emails, or you can just sit back since PowerShell did it for you, depending on your choice above to Save or Send.
It is important to shut down any Outlook processes that were spawned during the script so as to maintain idempotency. Here is some code to do that:
Я сделал этот скрипт, чтобы сбросить профиль Outlook и настроить новый профиль. Этот скрипт удаляет старый профиль, создает новый и запускает Outlook . Я хочу, чтобы после запуска outlook профиль также настраивался автоматически .. кто-нибудь может подсказать, как это сделать дальше в этом скрипте.
2 ответа 2
Я сделаю краткое руководство по установке
Загрузите файлы OCT
Поместите папку Admin, которую вы извлекаете из этой установки, в каталог с установкой версии Office, а затем запустите из командной строки setup.exe /admin
После этого вы получите настройки Office, вы можете пропустить все и сразу перейти к профилю Outlook Введите желаемые настройки здесь
После этого перейдите в Настройки экспорта и сохраните файл PRF где-нибудь в сети.
Сейчас есть 2 способа сделать это
- Запуск Outlook.exe с параметромВыполнить Outlook.exe /importprf "\\path\to\your\prf\file.prf" Эту команду следует запускать только один раз. Так что в качестве сценария входа в систему, который постоянно запускается, это может быть плохой идеей.
- Установка ключа реестра для импорта файла
- Ключ: HKEY_CURRENT_USER\Software\Microsoft\Office\\Outlook\Setup
- Имя значения: ImportPRF
- Тип значения: REG_SZ
- Значение: path to prf-file
Чтобы это значение реестра работало, значения FirstRun и First-Run могут не существовать в ключе установки.
Таким образом, он будет импортировать файл только один раз при первом запуске Outlook.
Раскрытие информации: я представляю продукт, который я упоминаю ниже
Это может быть сделано довольно легко с PowerMapi, модулем PowerShell, который позволяет вам продвигать вещи непосредственно с mapi, включая профили Outlook.
Я не знаю глубины проблемы, определяющей этот вопрос, но понимаю, что для этой опции также потребуется доступ к DLL модуля на хостах пользователей. Если это блокатор, не обращайте внимания.
Первое, что нужно знать, это то, что профиль MAPI может быть настроен только в основном , но не полностью. Outlook завершает настройку при первом запуске. Я предполагаю, что реальный запрос состоит в том, чтобы иметь возможность внести это изменение, не требуя никакого запроса для конечного пользователя, чтобы иметь дело с . если так, пример ниже будет работать хорошо для этого. Кроме того, стандартный способ настройки профиля очень похож на тот, который вы видите, когда создаете его вручную с панели управления. По сути, учитывая имя сервера и идентификатор почтового ящика, существует метод mapi для "настройки" профиля. Это приводит к некоторой связи между mapi и сервером обмена для заполнения всех других необходимых деталей. Затем, когда Outlook запускается в следующий раз, он сразу входит в почтовый ящик и заполняет любые другие данные, которые нужны Outlook в профиле.
Командлет также предлагает варианты добавления почтового ящика Office365 в новый профиль или настройки подключений Outlook Anywhere. Посмотрите на детали для нового MapiProfile.
Имейте в виду, что в приведенном выше примере все равно будет запрашиваться имя пользователя и пароль, если текущий пользователь также не является "владельцем" malibox. Если компьютер не присоединен к домену, или пользователь входит в систему как локальный пользователь (не как пользователь домена), то будет выдан запрос на ввод учетных данных.
Командлет new-MapiProfile принимает учетные данные в качестве параметра, и если предоставленные кредиты имеют достаточные права для доступа к обмену, командлет будет выполнен без запросов. Однако это также будет означать встраивание учетных данных в командлет / скрипт . что, как правило, запрещено. Наконец, функция -Credentials показывает, что она не работает с Windows10 и Outlook 2013 и более поздними версиями, поскольку MS изменяет стандартное приглашение кредита для использования версии WinRT, в отличие от старых вызовов win32. Обязательно проверь как всегда.
И, наконец, PowerMapi предоставляет полный доступ ко всем свойствам и атрибутам профилей, служб профилей и поставщиков профилей. С помощью этого можно предварительно заполнить все свойства профиля, вместо того, чтобы mapi выполнял вызов "configure", который требует сетевого взаимодействия. Однако это следует оставить тем, кто знаком с мапи.
Have you ever needed to find an e-mail message from one or two years ago that, if you couldn’t find it, might adversely affect your circumstances? Does your company automatically delete messages from your Inbox or Sent Items folders? Do you get tired of copying e-mails to multiple folders when they touch on multiple topics of interest—a particular project, manager, subject matter, company division or the like?
Say an e-mail from Steve Masters comes in regarding the finances on Project X in Dubai. It would be useful to have an automated way to distribute copies of this message to folders for Project X, Steve Masters and Dubai, and ultimately to yet another folder for safekeeping. And all without you having to manually click around the Microsoft Outlook interface multiple times for each item of mail. (And if you receive a large volume of email, it’s all the more vital to automate some of the management tasks involved.)
The rules facility in Outlook is often useful in addressing these kinds of situations, and code I’ll present in this article shows how to automate the creation of rules. For example, copying messages from Steve Masters to a related folder in Outlook is a relatively straightforward matter. And that goes for other standard rules operations.
What’s more difficult to do, and generally outside the capacity of Outlook rules, is to get a single e-mail into multiple folders based on more amorphous criteria than standard rules contemplate. While Steve Masters's e-mail can easily be copied to a related folder, the other relevant factors in his message—that it concerns finance, Dubai and Project X, among other possible criteria—are much more difficult to translate into actions. The subject line might cover one or two of the criteria and be susceptible to formal manipulation by an Outlook rule, but that often places too much trust in any given sender's subject lines. What we need is a quick, automated method to assign values to e-mails in both your Inbox and Sent Items such that a PowerShell script can be run to allocate them to the correct folders.
Programming Outlook Rules
This section takes a stab at demonstrating programmatic creation of two Outlook rules. One rule reads a message’s subject line for the specific string “Notification” and then copies relevant messages to a specified folder (named Notifications).
With the namespace in hand, we specify the originating folder (the Inbox), create a new rule and specify the folder to copy to (Notifications).
Navigating Folders
It’s an interesting exercise to run some lines of code to see how folders are enumerated in the MAPI namespace. The following lines illustrate how to navigate to various levels of depth in the folder tree:
Having created a new rule instance, we can define its parameters and properties like this:
The first line relates the rule to the subject line of an incoming e-mail. The string to look for (“Completed Notification”) is specified, and the action to take is CopyToFolder (as opposed, for example, MoveToFolder). The invocation recites the action and the destination folder.
Figure 1 shows the second example of programmatically creating a rule, where we look at recipients rather than the subject line.
Figure 1. Creating a Rule for Recipients
Managing Messages with a Script
Clearly, one can do a lot in Outlook with the built-in rule facility, but what if you want to divide messages into categories like Project, Finance, Human Resources, Recipient Name, Sending Division, Month of Receipt, City, State, Country or any other of a virtually limitless number of categories, where any given e-mail could apply to multiple categories that are not identifiable from the subject or even the body of the message? In cases like these, a custom script can function like a special rule.
In the following example, we manage the Sent Items folder by manually marking the subject line of each message with acronyms ("\\\Admin,FOR", for example), where each acronym relates the message to a target folder (Administrative,Foreign in the example) to which the e-mail should be copied. The process calls for manual action only to mark the subject lines of sent items with your designated acronyms.
When the script runs, it finds the acronyms and copies the e-mail to as many folders as the acronyms listed in the subject line refer to. In addition, sent items are “aged” out of those folders by code that tests the respective received and sent dates for a given period and moves relevant messages to their respective resting places once the age criteria is met.
The function I wrote is called CopyMove-Email. It has three parameters: a list of acronyms or symbols, the corresponding list of folders and an integer representing the maximum number of days to retain a message under Sent Items before moving it to safekeeping. (For use with Inbox items—the code is not shown—a fourth parameter should be added to indicate the number of days to maintain an Inbox item.)
Then, as with the case of creating a rule, the messaging API is invoked:
If you look in Task Manager, you’ll see two instances of Outlook. One is the original, displayed version that you are working in, and the other is a background Outlook process being used by this script.
Next, we construct a timespan to mark the absolute limit for keeping sent items in that folder, whether the item is marked for copying or not.
Using the timespan, we create the dates against which to test each e-mail item in the Sent Items folder.
We also need a string-formatted date to use in naming text files that will store a specific day's run of this application. The text files will store, respectively, mail that was copied and mail that was moved.
Then we need to accumulate data about moves and copies in temporary holding arrays:
Experience shows that merely looping through all the messages in the Sent Items folder once isn’t enough; on a first loop, some items are handled but others aren’t touched. It may take three or four such loops to handle all the items that need handling. The number of loops probably depends on how many mail items are ready for copy-move operations and other factors in how Outlook interoperates with your computer. In any event, the solution is to use a Do-While structure to keep running the loop until all marked items have been properly managed.
The application is now ready to begin parsing through Sent Items:
The first If test is against the established maximum-days window and for the existence of either the \\\ tag or the /// tag:
With a matching e-mail in hand, test it for each acronym in the $acronyms parameter:
For each matching acronym, the script makes a copy of the subject e-mail and moves the copy to the folder that matches the acronym. This part of the code is shown in Figure 2. Essentially, this copies the message to the new folder while also leaving it in the original Sent Items folder.
Figure 2. Copying Code Based on Acronyms
The next action for these kinds of mail items (shown in Figure 3) is to move them to Sent Items OLD for more permanent storage and also for later transfer to a text file documenting the move-copy actions.
Figure 3. Moving Items to Sent Items OLD
Then messages in Sent Items that are past the maximum retention period should be moved to Sent Items OLD. Their data is also stored for moving into the related text file. (See Figure 4.)
Figure 4. Managing Message Retention Limits
The last action to take is moving data about moved and copied items into the text files set up to hold that data:
You can call the CopyMove function with parameters, including the list of acronyms and the list of related folder names, plus the maximum number of days to keep sent items in that folder before saving them to Sent Items OLD:
Wrapping Up
As an afterword, I’d note that scheduled tasks can be configured to include the code I’ve shown, but a certain number of gotchas will manifest themselves in the process, not least of which is that the task will not run if the machine is not connected to the network. So, remote users relying on a VPN, for example, might be out of luck if, as is usually the case, the connection automatically shuts down after a certain period of nonuse (like when you go to bed at night). Thus, the app can be scheduled to run only during times when you know the network connection is active.
Joe Leibowitz is an infrastructure consultant who specializes in Microsoft’s identity management products.
PowerShell можно использовать для Microsoft 365 для эффективного создания учетных записей пользователей, включая несколько учетных записей.
При создании учетных записей пользователей в PowerShell всегда требуются определенные свойства учетной записи. Другие свойства не являются обязательными, но важны. См. следующую таблицу.
Имя свойства Обязательный? Описание DisplayName Да Это отображаемое имя, которое используется в Microsoft 365 служб. Например, Caleb Sills. UserPrincipalName Да Это имя учетной записи, используемой для входа в Microsoft 365 служб. Например, CalebS@ contoso.onmicrosoft.com. FirstName Нет LastName Нет LicenseAssignment Нет Это план лицензирования (также известный как план лицензирования или номер SKU), из которого доступная лицензия назначается учетной записи пользователя. Лицензия определяет Microsoft 365 службы, доступные для учетной записи. Вам не нужно назначать лицензию пользователю при создании учетной записи, но у учетной записи должна быть лицензия на доступ Microsoft 365 служб. Лицензию требуется добавить в течение 30 дней после создания учетной записи пользователя. Password Нет Если пароль не указан, учетной записи пользователя назначается случайный пароль, а пароль отображается в результатах выполнения команды. Если указать пароль, он должен содержать от 8 до 16 текстовых символов ASCII следующих типов: строчные буквы, прописные буквы, цифры и символы. UsageLocation Нет Это допустимый код страны согласно ISO 3166-1 alpha-2 (например, US для США и FR для Франции). Например, США для США и FR для Франции. Это значение важно указать, так как некоторые службы Microsoft 365 недоступны в определенных странах. Вы не можете назначить лицензию учетной записи пользователя, если в учетной записи не настроено это значение. Дополнительные сведения см. в разделе об ограничениях лицензий. Список дополнительных ресурсов см. в разделе "Управление пользователями и группами".
Использование модуля PowerShell Azure Active Directory для Graph
После подключения используйте следующий синтаксис для создания отдельной учетной записи:
В этом примере создается учетная запись для пользователя Caleb Sills в США:
Использование модуля Microsoft Azure Active Directory для Windows PowerShell
Создание одной учетной записи пользователя
Чтобы создать одну учетную запись, используйте следующий синтаксис:
PowerShell Core не поддерживает модуль Microsoft Azure Active Directory для Windows PowerShell и командлетов, имена которых имеют Msol. Эти командлеты требуется запускать из Windows PowerShell.
Чтобы предоставить список доступных имен плана лицензирования, используйте следующую команду:
В этом примере создается учетная запись для пользователя Caleb Sills contoso:ENTERPRISEPACK в США и назначается лицензия из плана лицензирования (Office 365 корпоративный E3).
Создание нескольких учетных записей пользователей
Создайте CSV-файл, который содержит обязательные сведения об учетных записях пользователей. Пример:
Имена столбцов и их порядок в первой строке CSV-файла являются произвольными. Но убедитесь, что порядок данных в остальной части файла соответствует порядку имен столбцов. И используйте имена столбцов для значений параметров в PowerShell для Microsoft 365 команды.
Используйте следующий синтаксис.
В этом примере создаются учетные записи пользователей из файла C:\My Documents\NewAccounts.csv и регистрются результаты в файле C:\My Documents\NewAccountResults.csv.
Результаты можно просмотреть в выходном файле. Мы не указали пароли, поэтому случайные пароли, Microsoft 365 созданные, отображаются в выходном файле.
Использование PowerShell для управления Office 365 может сделать вашу работу быстрее, эффективнее и проще. PowerShell предоставляет доступ к информации о среде Office 365, к которой нельзя получить доступ через центр администрирования Microsoft 365, и позволяет выполнять массовые операции с помощью одной команды. Благодаря интеграции продуктов Office 365 в единый интерфейс, PowerShell также упрощает управление доступом пользователей и усиливает кибербезопасность.
Данная статья объясняет наиболее полезные для системных администраторов команды PowerShell для Office 365. Мы разделили эти команды на три категории — автоматизация, отчетность и конфигурация, — чтобы вы могли быстро найти то, что вам нужно.
Как PowerShell может помочь работе с Office 365
Центр администрирования Microsoft 365 отлично подходит для обычных пользователей. Используя эту систему, вы можете управлять своими учетными записями и лицензиями пользователей Office 365, а также такими службами, как Exchange Online, Teams и SharePoint Online. Вы также можете управлять всеми этими компонентами с помощью PowerShell. Его использование значительно упрощает автоматизацию и делает вашу работу более эффективной.
В частности, существует несколько ключевых факторов, которые упрощают управление Office 365 с помощью PowerShell:
- PowerShell для Office 365 показывает дополнительную информацию, которую вы не можете увидеть в центре администрирования Microsoft 365;
- PowerShell позволяет настраивать функции и параметры, недоступные в центре администрирования Office 365;
- Если вы используете Office 365 для обмена файлами, PowerShell для Office 365 позволит быстро выполнять проверку и управлять доступом пользователей к общим дискам;
- Через командную строку вы можете легко выполнять массовые операции;
- В PowerShell для Office 365 вы можете использовать командлеты для фильтрации данных, полученных из вашей системы Office 365. Таким образом вы получите быстрый доступ к информации о пользователях и системах;
- Его также можно использовать для автоматизации процесса сбора данных из Office 365 и их выгрузки в CSV-файл;
- Благодаря возможности быстро проверять информацию о пользователях PowerShell является мощным инструментом для мониторинга и повышения кибербезопасности.
Как только вы освоите основы PowerShell, система станет практически неограниченно расширяемой. Существуют десятки инструментов PowerShell, которые могут упростить и ускорить системное администрирование, а использование командной строки позволит запускать сценарии для автоматизации частых и трудоемких задач.
Наконец, попробуйте интегрированную среду разработки сценариев PowerShell (ISE) для всех ваших потребностей, связанных с PowerShell. Эта среда не только упрощает создание сценариев PowerShell, но и улучшает взаимодействие с интерфейсом командной строки.
Команды PowerShell для автоматизации Office 365
Вместо обработки десятков учетных записей пользователей вручную, вы можете использовать PowerShell для быстрого сбора, фильтрации и систематизации информации о пользователях Office 365. Затем с помощью того же интерфейса командной строки вы можете выполнять массовые действия в отношении нужной учетной записи.
Наиболее полезные команды PowerShell для автоматизации Office 365:
1. Подключение к приложению Office 365 с помощью PowerShell
Прежде чем начать использовать PowerShell для Office 365, необходимо скачать и установить модуль Office 365 для Windows PowerShell и подключить его к своему инстансу Office 365.
Вот как это сделать:
- Cкачайте и установите Помощник по входу в Microsoft Online Services для ИТ-специалистов, RTW.
- Импортируйте модуль PowerShell Online Services для Microsoft Azure Active Directory и Office 365, используя следующие команды в PowerShell:
Теперь вам нужно создать сеанс PowerShell от имени удаленного пользователя. Это можно сделать с помощью следующей команды:2. Подключение к Exchange Online и SharePoint Online с помощью PowerShell
Вы можете подключиться к Microsoft Exchange Online и Microsoft SharePoint Online, чтобы управлять этими службами с помощью PowerShell.
-
Подключение к Exchange Online, по сути, происходит так же, как и подключение к Office 365. Вот соответствующие команды:
Затем запустите из PowerShell следующую команду:
3. Cписок доступных командлетов PowerShell для Office 365
Командлеты — это основной тип команд PowerShell для Office 365, и вы будете использовать их чаще всего. PowerShell для Office 365, как и большинство интерфейсов командной строки, позволяет просмотреть список всех доступных командлетов для вашей системы.
-
Чтобы получить список всех доступных командлетов для MSOnline, выполните следующую команду:
4. Cписок всех пользователей Office 365
Одно из наиболее распространенных применений PowerShell — получение списка всех пользователей Office 365. В PowerShell это можно сделать с помощью всего одного командлета: Get-msoluser.
Этот командлет покажет вам всех пользователей Office 365 с действующей лицензией и автоматически получит некоторую базовую информацию о каждом из них: параметры DisplayName, City, Department и ObjectID.
-
Для этого выполните команду:
5. Создание нового пользователя в Office 365 с помощью PowerShell
PowerShell можно использовать для автоматизации процесса создания новых пользователей вашей системы. Для этого воспользуйтесь командлетом New-MsolUser:
Для автоматизации процесса создания пользователей используйте этот командлет с соответствующими переменными:
После выполнения данной команды PowerShell выведет информацию о созданном вами пользователе, включая его временный пароль и статус лицензии.6. Изменение пароля в Office 365 с помощью PowerShell
Одна из самых распространенных и наиболее раздражающих задач системных администраторов — смена пароля пользователя. В идеале для этого использовать менеджер паролей, но PowerShell дает вам возможность автоматически обновлять пароли для отдельных пользователей.
Для этого выполните команду:
Вы также можете не использовать параметр -NewPassword, и в этом случае система автоматически сгенерирует случайный пароль:Команды Windows PowerShell для отчетности
PowerShell для Office 365 — это отличный инструмент для создания отчетов. Использование командлетов PowerShell позволяет быстро и легко получать доступ, сортировать и сопоставлять информацию о пользователях Office 365, а также информацию о том, как они используют систему.
Следует отметить, что большинство командлетов для создания отчетов устарело в январе 2018 года. Корпорация Microsoft заменила эти командлеты новым API отчетов Microsoft Graph. Это сократило возможности PowerShell по созданию отчетов в Office 365, но все старые функции по-прежнему доступны через центр безопасности и соответствия требованиям Office 365.
Тем не менее, в вопросах отчетности о пользователях и группах PowerShell для Office 365 по-прежнему является ключевым инструментом. Ниже мы приведем наиболее полезные отчеты, для которых можно использовать PowerShell.
1. Планы лицензирования
В PowerShell есть чрезвычайно полезный командлет, который позволяет вам видеть сводку ваших текущих планов лицензирования и доступных лицензий для каждого плана. Для того, чтобы им воспользоваться, сделайте следующее.
Для этого выполните команду:
В результате вы получите отчет, содержащий несколько ключевых элементов информации:- AccountSkuld — показывает доступные планы лицензирования для вашей организации;
- ActiveUnits — количество лицензий, приобретенных вами для определенного плана лицензирования;
- WarningUnits — количество непродленных лицензий в плане лицензирования, которые истекают по окончании 30-дневного льготного периода;
- ConsumedUnits — количество лицензий, которые вы назначили пользователям из определенного плана лицензирования.
2. Учетные записи пользователей
Еще один полезный командлет для создания отчетов — Get-MsolUser, который возвращает список всех учетных записей пользователей Office 365. Вот как вы можете использовать эту команду.
Вы увидите полный список учетных записей пользователей с соответствующими именами. Вы также можете добавить ряд параметров для фильтрации отображаемых учетных записей. Например, чтобы получить список нелицензированных пользователей (пользователей, которые были добавлены в Office 365, но еще не получили лицензии на использование какой-либо из служб), выполните следующую команду:
Для дальнейшего изучения конкретных учетных записей можно использовать командлет where.Чтобы скомбинировать два командлета, воспользуйтесь вертикальной чертой «|»: Это означает, что PowerShell для Office 365 возьмет результаты первой команды и отправит их следующей команде. Например, если вы хотите отображать только те учетные записи пользователей, у которых не указано место использования, вы можете использовать такую команду:
Добавив дополнительный синтаксис после символа вертикальной черты «|», вы сможете конкретизировать отчеты и получать списки пользователей с любой комбинацией атрибутов.3. Отчеты электронной почты
PowerShell также является мощным инструментом для проверки использования электронной почты и пользователей. Фактически это одно из основных системных приложений, когда дело доходит до отчетности. Ниже перечислено несколько полезных отчетов, касающихся электронной почты:
-
Вы можете использовать PowerShell для получения информации о каждом почтовом ящике в вашей системе, используя следующую команду:
Командлеты PowerShell для настройки Office 365
PowerShell также чрезвычайно полезен для настройки среды Office 365. Как мы отмечаем в нашем бесплатном видеокурсе по скрытым параметрам Office 365, которые можно разблокировать с помощью PowerShell, существуют определенные параметры конфигурации, которые доступны только через интерфейс PowerShell.
Наиболее полезными и часто используемыми командами PowerShell для настройки являются те, которые относятся к управлению группами пользователей и созданию новых сайтов SharePoint. Зачастую эти задачи усложняют работу системных администраторов, и их автоматизация может сэкономить много времени.
1. Настройте «скрытые» параметры с помощью PowerShell для Office 365
Как мы упоминали ранее, к некоторым параметрам конфигурации Office 365 можно получить доступ только с помощью PowerShell.
Наиболее ярким примером являются параметры конфигурации «Skype для бизнеса». Онлайн-центр администрирования этой службы содержит несколько параметров, позволяющих настроить способ ее работы для вашей организации. Однако с помощью PowerShell вы получите доступ к большему количеству параметров настройки. Например, стандартные конференции в Skype настроены так, что:
- анонимные пользователи могут автоматически войти в каждую конференцию;
- участники могут вести запись конференции;
- все пользователи вашей организации могут быть назначены докладчиками.
Если вы хотите сбросить настройки до значений по умолчанию, используйте следующую команду:
Это лишь один пример скрытых параметров, к которым вы можете получить доступ с помощью PowerShell. Чтобы узнать больше, посетите наш бесплатный онлайн-курс.2. Управление членством в группах Office 365 с помощью PowerShell
PowerShell имеет несколько командлетов, специально предназначенными для работы с группами Office 365. Например…
Выполните команду, чтобы просмотреть список всех активных групп в Office 365.
Эта команда также предоставит вам шестнадцатеричный идентификатор для каждой группы, который вам понадобится для управления членством.Для добавления и удаления членов группы вам также понадобится шестнадцатеричный идентификатор их учетных записей, который можно получить с помощью команды:
Затем вы можете запустить соответствующий командлет для добавления или удаления пользователей из определенных групп. Чтобы добавить пользователей, выполните следующую команду, заменив указанные в примере шестнадцатеричные идентификаторы на идентификаторы, относящиеся к вашей группе и нужному пользователю:
Чтобы удалить пользователей из групп, вы можете выполнить ту же команду, но с измененной первой частью:Как Varonis взаимодействует с PowerShell
Varonis дополняет использование PowerShell несколькими способами.
Мониторинг
Varonis отслеживает и проверяет активность в Office 365 (включая изменения конфигурации) и команды PowerShell. Это позволяет вам отслеживать любые изменения, которые администраторы или злоумышленники вносят с помощью PowerShell.
Администраторы должны вносить изменения в конфигурации или разрешения Office 365, имея действующий запрос на изменение. Этот дополнительный уровень проверки обеспечивает бесперебойную работу процессов и процедур.
Злоумышленники пытаются использовать PowerShell для отключения мер безопасности или повышения прав учетной записи. Varonis улавливает эти изменения и отслеживает любые другие действия, которые злоумышленники совершают в Office 365.
Получайте оповещения и принимайте меры
Varonis позволяет пользователям запускать сценарии PowerShell при получении оповещений.
Наиболее распространенным применением этой функции является автоматическая реакция на атаки программ-вымогателей. Модель угроз программ-вымогателей вызывает сценарий, деактивирующий учетную запись пользователя и выключающий все компьютеры, в которые они входили, для остановки атаки.Заключение
PowerShell является эффективным инструментом для работы с Office 365. Он позволяет быстро получать доступ к информации из системы, составлять подробные отчеты и выполнять массовые действия. Кроме того, с его помощью можно получить доступ к определенным функциям Office 365, которые недоступны другим способом.
Подключить Powershell к Office 365 относительно просто, и в результате вы получите доступ ко всем перечисленным выше расширенным функциям. Это также позволит вам более легко интегрировать вашу среду Office 365 с платформой кибербезопасности Varonis и обеспечить безопасность конфиденциальных данных.
Читайте также: