Могу ли я использовать Storage Spaces Direct сразу в нескольких местах?

Нет. Storage Spaces Direct агрегирует данные локального хранилища на узлах кластера, чтобы обеспечить возможность функционирования отказоустойчивого кластеризованного хранилища посредством SMB 3, но это требует незначительного запаздывания между узлами, поскольку репликации синхронные. Такая синхронная репликация делает использование S2D в нескольких местоположениях непрактичным, и кластер S2D не может быть расширен на несколько местоположений. Оптимальное решение предполагает создание двух отдельных экземпляров S2D, по одному для каждого местоположения. Затем используйте Storage Replica для репликации содержимого из одного экземпляра в другой.

Как мне остановить загрузку Edge главных новостей для каждой новой вкладки?

Edge предусматривает выполнение настройки страницы при ее открытии и указание содержимого для нее, когда создается новая вкладка. Задать параметры можно следующим образом:

  1. Запустите Edge.
  2. Откройте меню Settings (нажмите три точки в правом верхнем углу, затем выберите Settings).
  3. В открывшемся меню выберите раздел Open Microsoft Edge with и укажите вариант запуска Edge (включая конкретную страницу, такую как about: blank для запуска с пустой страницей).
  4. В разделе Open new tabs with откройте меню и выберите A blank page («Пустая страница»).
  5. Закройте Settings (экран 1).

 

Задание параметров на вкладке Settings
Экран 1. Задание параметров на вкладке Settings

Должен ли каждый пользователь иметь подписку Azure AD Premium, чтобы задействовать Azure AD Connect Health?

Да. Azure AD Connect Health предоставляет набор функций, в том числе:

  • состояние синхронизации Azure AD Connect, что включает отсылку уведомлений по электронной почте (по умолчанию они отсылаются глобальным администраторам абонента, но это можно настроить по желанию пользователя);
  • отчеты;
  • графики задержек и активности;
  • сводка по активности экспорта.

Чтобы задействовать компонент Azure AD Connect Health, который является функцией подписки Azure AD Premium, абонент должен быть отмечен как Premium. Это означает, что все пользователи должны иметь возможность работать с Azure AD Premium. А если только часть пользователей имеет право применения подписки Azure AD Premium, то Azure AD Connect Health работать не будет.

Если я глобальный администратор Office 365 Global Admin, являюсь ли я и глобальным администратором службы каталогов Azure AD Global Admin?

Да. Роли на портале Office 365 в основном такие же, какие мы видим на портале службы каталогов Azure AD. Они просто представлены на разных порталах.

Если я являюсь дополнительным администратором подписки Azure, дает ли это мне права администратора в Azure AD?

Нет. Подписки Azure и экземпляры службы каталогов Azure AD — разные логические объекты. Подписка Azure представляет собой контейнер, в котором создаются ресурсы. Подписка Azure связывается с экземпляром Azure AD для предоставления идентификаторам ID в экземпляре Azure AD доступа к ролям в рамках подписки. Один экземпляр Azure AD может быть соединен с несколькими подписками.

Azure AD имеет ряд ролей, у которых есть административные разрешения на экземпляр Azure AD. Подписки Azure располагают рядом ролей, у которых есть административные разрешения на подписку, но эти роли являются отдельными и не накладываются друг на друга. Если какого-либо пользователя сделали дополнительным администратором подписки Azure, это не дает ему дополнительных прав в Azure AD.

Могу ли я конвертировать экземпляр привычной службы каталогов Azure AD в экземпляр Azure AD B2C?

Нет. Вы должны создать новый экземпляр службы каталогов Azure AD B2C, назначение которой задается как B2C в процессе создания.

Как можно проверить переключатель, используя PowerShell?

Недавно мне понадобилось создать сценарий, который позволял указать учетную запись пользователя, а затем добавлял ее в две группы, которые представляли собой целевое местоположение для доступа и VLAN. В зависимости от их значений генерировались имена этих двух групп (по принятым стандартам), а затем к ним добавлялась учетная запись пользователя. Группы уже существовали для всех возможных местоположений и сетей VLAN. После передачи значений выполнялась проверка их существования. Кроме того, мне нужна была возможность удаления учетной записи пользователя из групп, что выполнялось через единственный переключатель RemoveMember. Поэтому в коде вы можете проверить, передается ли переключатель, за счет использования RemoveMember.IsPresent. В листинге представлен сценарий целиком.

Для добавления укажите:

. \EnableVLANUser.ps1 johnsav 100 DAL

Для удаления укажите:

. \EnableVLANUser.ps1 johnsav 100 DAL -RemoveMember

Существует ли простой способ проверить значение конкретного тега для ресурса Azure RM?

Теги — это пары «величина-значение», и к ним можно получить доступ через имя величины. Это означает, что просмотреть значение конкретного тега очень легко, например:

$resource.Tags[""]

Или так:

$vm.Tags["dept"]

Кроме того, вы можете перечислить все величины:

foreach ($tagName in $resource.Tags.Keys)
{
    Write-Output "${tagName}, $($resource.Tags[$tagName])"
}

Могу ли я задействовать Storage Spaces Direct и совместно используемое хранилище в одном и том же кластере?

Нет. Технология Storage Spaces Direct была реализована в Server 2016 и предусматривала агрегацию локальных хранилищ каждого узла кластера для использования в этом кластере в качестве тома общего пользования отказоустойчивого кластера, исключая необходимость в самом совместно используемом хранилище. После включения Storage Spaces Direct привычные системы совместно используемого хранилища, например SAN, более не доступны.

Могу ли я выполнять отладку кода PowerShell в VS Code?

Да. VS Code является открытым, бесплатным редактором, основанным на Visual Studio. Данный инструмент можно использовать для редактирования многих языков, у него расширяемая оболочка. Расширение доступно и для добавления информации о коде PowerShell в VS Code.

Архив программы можно загрузить по адресу: https://github.com/PowerShell/vscode-powershell, а инструкции по использованию доступны по адресу: https://marketplace.visualstudio.com/items? itemName=ms-vscode.PowerShell.

Чтобы добавить PowerShell, просто укажите расширение, нажав Ctrl + P и клавишу пробела:

ext install PowerShell

Куда пропадают действия или пути на портале Azure?

В портале Azure была реализована концепция путей или действий, которая через раскрывающееся меню на главной панели навигации позволяла переходить между открытыми страницами. Но эта возможность была удалена, поскольку часто возникали проблемы. Осталась только небольшая часть этой функции: если вы выбираете диалоговое поле глобального поиска, вам будет показано пять самых последних ресурсов, к которым предоставлялся доступ и которые могут быть выбраны для перехода на эту страницу, как показано на экране 2.

 

Пять последних ресурсов, к которым предоставлялся доступ
Экран 2. Пять последних ресурсов, к которым предоставлялся доступ

Могу ли я использовать контейнеры Hyper-V в Azure IaaS?

В данный момент нет, поскольку контейнеры Hyper-V сами по себе являются минимальными, автоматически управляемыми виртуальной машиной Hyper-V, которая требует виртуализации с возможностями аппаратной поддержки процессора (Intel VT), а они пока не присутствуют в виртуальных машинах Azure. Только Server 2016, полностью развернутый в Azure, активирует пересылку Intel VT у виртуальных процессоров vCPU, и тогда у этих vCPU появляется возможность предоставления ее службам Azure, включая IaaS.

Как мне модифицировать сценарий для получения им параметров?

Предоставление сценарию возможности получать параметры требует добавления к этому сценарию всего одной строки:

Param ([Parameter (ValuefromPipeline=$true, Mandatory=
$true)] [string]$user)

В данном примере величина, которая передается сценарию, сохраняется в переменной $user, и она должна быть передана. Также она может быть передана по конвейеру. Вот пример использования:

Param([Parameter(ValuefromPipeline=$true,Mandatory=
$true)][string]$user)
                              $AdObj = New-Object System.Security.
                              Principal.NTAccount($user)
                              $strSID = $AdObj.Translate([System.Security.
                              Principal.SecurityIdentifier])
                              $strSID.Value

Сохранив сценарий один раз как FindADUserSID.ps1, его можно использовать и в других случаях:

PS C:\Users\Administrator\Documents> 'john@savilltech.net' |
.\FindADUserSID.ps1
                              S-1-5-21-218700803-3075295566-
                              3609972863-1109
                             
                              PS C:\Users\Administrator\Documents>
                              .\FindADUserSID.ps1 honeypot@savilltech.net
                              S-1-5-21-218700803-3075295566-
                              3609972863-3228
                             
                              PS C:\Users\Administrator\Documents>
                              .\FindADUserSID.ps1
                              cmdlet FindADUserSID.ps1 at command
                              pipeline position 1
                              Supply values for the following parameters:
                              user: john@savilltech.net
                              S-1-5-21-218700803-3075295566-
                              3609972863-1109

Могу ли я использовать службы удаленного доступа Remote Desktop Services в рабочей группе без домена?

При использовании служб Remote Desktop Services предусмотрено два типа лицензии: на пользователя и на устройство. В первом случае должен быть доступен домен, поскольку по учетной записи домена отслеживается лицензия каждого пользователя. Если у вас есть только рабочая группа, актуально лицензирование на устройство. Обратите внимание, что в небольших средах устройство с лицензией RDS- и хост RD-сессии могут быть одним и тем же сервером.

Листинг. Проверка существования переключателя
<#
    .SYNOPSIS
    Enables a user for a VLAN for a specific location
    .DESCRIPTION
    Enables a user for a VLAN for a specific location
    .PARAMETER Username
    User name
    .PARAMETER VLAN
    User vlan
    .PARAMETER Location
    User location
    .PARAMETER RemoveMember
    User RemoveMember
    .EXAMPLE
    EnableVLANUser johnsav 99 DAL
    #>
    [cmdletbinding()]
    Param(
    [Parameter(ValuefromPipeline=$true,Mandatory=$true)][string]$username,
    [Parameter(ValuefromPipeline=$true,Mandatory=$true)][string]$vlan,
    [Parameter(ValuefromPipeline=$true,Mandatory=$true)][string]$loc,
    [Parameter(ValuefromPipeline=$false,Mandatory=$false)][switch]$RemoveMember)
    #Check if the entries are valid
   
    $vlangroupname = "VLAN" + $vlan + "GRP"
    $locgroupname = "LOC" + $loc + "VLGRP"
    $userobj = Get-ADUser -LDAPFilter "(SAMAccountName=$username)"
    $vlanobj = Get-ADGroup -LDAPFilter "(SAMAccountName=
    $vlangroupname)"
    $locobj = Get-ADGroup -LDAPFilter "(SAMAccountName=$locgroupname)"
   
    $errorFound = $false
   
    if ($userobj -eq $null) {"User not valid";$errorFound = $true}
    if ($vlanobj -eq $null) {"VLAN not valid";$errorFound = $true}
    if ($locobj -eq $null) {"Location not valid";$errorFound = $true}
   
    if(!$errorFound)
    {
        Write-Verbose "Looking good and adding user to groups"
       
        if($RemoveMember.IsPresent) #if removing
        {
            $userobj | Remove-ADPrincipalGroupMembership -MemberOf $vlanobj -Confirm:$false
            $userobj | Remove-ADPrincipalGroupMembership -MemberOf $locobj -Confirm:$false
        }
        else #if adding
        {
            $userobj | Add-ADPrincipalGroupMembership -MemberOf $vlanobj
            $userobj | Add-ADPrincipalGroupMembership -MemberOf $locobj
        }
    }