PI Services

Le blog des collaborateurs de PI Services

Autoriser les utilisateurs non administrateurs locaux à gérer les services à distance

Une erreur de sécurité courante consiste à configurer les services pour utiliser un descripteur de sécurité trop permissif, et ainsi accorder par inattention l'accès et la gestion des services à plus d'appelants distants que prévu.

Depuis les versions Windows 10 version 1709 et Windows Server 2016 version 1709, Microsoft avait appliqué une nouvelle politique de sécurité. En vertu de cette nouvelle politique, seuls les administrateurs locaux peuvent gérer les services à distance. En effet, un nouveau paramètre de sécurité du système a été introduit qui exige que les appelants distants soient également des administrateurs locaux sur l'ordinateur pour pouvoir demander la liste des autorisation de service suivante :

  • SERVICE_CHANGE_CONFIG
  • SERVICE_START
  • SERVICE_STOP
  • SERVICE_PAUSE_CONTINUE
  • SUPPRIMER
  • WRITE_DAC
  • WRITE_OWNER

Le nouveau paramètre de sécurité requiert également que les appelants distants soient des administrateurs locaux sur l'ordinateur pour demander l'autorisation de gestionnaire de contrôle de service suivante :

  • SC_MANAGER_CREATE_SERVICE

Ce paramètre a été introduit à partir de Windows 10 version 1709 et de Windows Server 2016 version 1709. Par défaut, le paramètre est activé.

Cette nouvelle vérification peut causer des problèmes à certains clients dont les services reposent sur la possibilité pour les non-administrateurs de les démarrer ou de les arrêter à distance. Si nécessaire, vous pouvez exclure certains services de cette stratégie en ajoutant le nom du service à la valeur de registre RemoteAccessCheckExemptionList REG_MULTI_SZ à l'emplacement de registre suivant :

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurePipeServers\SCM

Pour le faire, veuillez choisir une des deux méthodes suivantes :

Méthode 1 : Par interface graphique 

  1. Dans le menu démarrer , accédez à la console regedit.exe .
  2. Recherchez et sélectionnez la sous-clé suivante dans le Registre :

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurePipeServers\SCM

    Remarque 
     Si la sous-clé n'existe pas, vous devez la créer : Dans le menu Edition , sélectionnez  Nouveau , puis sélectionnez  Clé . Tapez le nom de la nouvelle sous-clé, puis appuyez sur Entrée.
  3. Dans le menu Edition , pointez sur Nouveau , puis sélectionnez  Valeur REG_MULTI_SZ .
  4. Tapez RemoteAccessCheckExemptionList  pour le nom de la valeur REG_MULTI_SZ, puis appuyez sur ENTRÉE.
  5. Double-cliquez sur la valeur RemoteAccessCheckExemptionList , saisissez le nom du service à exempter de la nouvelle stratégie, puis cliquez sur OK .
  6. Quittez l'Éditeur du Registre, puis redémarrez l'ordinateur.

Méthode 2 : Par commandes PowerShell

#récuperer le contenu de la clé de registre
$services = (Get-ItemProperty HKLM:\SYSTEM\CurrentControlSet\Control\SecurePipeServers\SCM).RemoteAccessCheckExemptionList

#définir la liste des services à exclure de la politique de sécurité
$newservices= 'spooler','LPDSVC' 

#ajouter la nouvelle liste de services
foreach ($newsvc in $newservices)
{
$services += $newsvc +" "
}

#reconfigurer la clé de registre
Set-ItemProperty HKLM:\SYSTEM\CurrentControlSet\Control\SecurePipeServers\SCM -Name RemoteAccessCheckExemptionList -Value $services -Type Multistring 


 

Script - API Vmware VCenter v7 - Get VM infos

Une mise a jour du script proposé récemment, utilisant la nouvelle version de l'API de Vcenter.

 

### QUERY VCENTER REST API (v7) TO GET VM LIST ###


$user = ‘myaccount’
$pswd = Read-Host -Prompt "Enter Password"
$vCenterName = ‘MyVcenter’
$encoded = [System.Text.Encoding]::UTF8.GetBytes(($user, $pswd -Join ‘:’))
$encodedPassword = [System.Convert]::ToBase64String($Encoded)
$authHeader = @{
Authorization = "Basic $($EncodedPassword)"
}
$sRest = @{
Method = ‘Post’
Uri = "https://$($vCenterName)/api/session"
Headers = $authHeader
}
$result = Invoke-RestMethod @sRest


# Get TokenID
$authHeader = @{
‘vmware-api-session-id’ = $result.value
}


# Get All Hosts
$gethosts = "https://$($vCenterName)/api/vcenter/host"
$resultgethost = Invoke-RestMethod -Uri $gethosts -Headers $authHeader
$hostidlist = $resultgethost.value.host


# For each host, get all VMs

foreach ($hostid in $hostidlist)
{
$get_vm = "https://$($vCenterName)/rest/vcenter/vm?filter.hosts=$hostid"
$resultvm = Invoke-RestMethod -Uri $get_vm -Headers $authHeader
[array]$FinalTableau += $resultvm
}

# Display Result
$FinalTableau.value | select name,power_state


# Output to CSV
$CsvTab = $FinalTableau.value | select name,power_state | ConvertTo-Csv -Delimiter ';' -NoTypeInformation
$CsvTab | Out-File .\VMList.csv

 

 

Exchange hybride : Impossible de partager le calendrier "tous les détails" et "détails limités" à partir d'Outlook

Problème

Lorsqu'un utilisateur On premises tente de partager son calendrier avec un utilisateur Office 365, il reçoit le message d’erreur suivant :

Cause

Ce problème se produit si la stratégie de partage n’autorise pas l’utilisateur à partager le niveau de détails que l’utilisateur a défini dans l’invitation de partage.

Solution

Pour résoudre ce problème, suivez les étapes suivantes :

  1. Ouvrez le Centre d’administration Exchange, cliquez sur Organization --> Sharing
  2. Double-cliquez sur "Default Sharing Policy (DEFAULT)"
  3. Cette règle indique que vous ne pouvez partager que l'autorisation « Disponibilité uniquement » avec les autres organisations.

    Vous pouvez soit modifier la règle de partage  « Toutes les informations de calendrier, notamment l'heure, l'objet, l'emplacement et le titre » pour tous les domaines

  4. Ou vous créez une nouvelle règle de partage pour votre domaine smtp qui est partagé dans Office 365 et attribuez "Toutes les informations de calendrier, notamment l'heure, l'objet, l'emplacement et le titre". 
  5. Cliquez ensuite sur "Enregistrer"

Erreur MSExchange Autodiscover_Event ID 1

Dans Exchange 2016, vous remarquerez des messages d'erreurs  "MSExchange Autodiscover" avec l'Event ID 1 dans le journal des événements d'application du serveur :

 

Ce problème a été résolu dans Exchange 2016 CU15 et Exchange 2019 CU4, mais apparaît parfois dans des versions plus récentes.

Il s'agit d'un problème connu chez Microsoft et la solution de contournement est simple:

  • Définissez la propriété ExternalURL du répertoire virtuel Autodiscover, comme ceci:

Get-AutodiscoverVirtualDirectory -Server | Set-AutodiscoverVirtualDirectory -ExternalUrl https://autodiscover.contoso.com/Autodiscover/Autodiscover.xml

Exchange Hybride_Configuration TLS pour les connecteurs de réception

Si vous souhaitez utiliser TLS ou utilisez l'authentification TLS dans un environnement Office 365 hybride ou encore vous avez modifié ou renouvelé manuellement le certificat SSL, vous pouvez toujours obtenir des erreurs indiquant que vous ne pouvez pas lancer la session TLS (STARTTLS), même si le certificat SSL a été correctement renouvelé.

Il ne suffit pas de définir le certificat SSL à utiliser avec SMTP pour que TLS fonctionne correctement. Vous devez également (re)configurer le nom du certificat TLS sur vos connecteurs de réception.

Pour formater correctement le contenu du TlsCertificateName, vous pouvez l'extraire du certificat via des commandes ci-dessous.

  • Dans un environnement Exchange Management Shell, récupérez les certificats actuels :

Get-ExchangeCertificate

  • Vous obtiendrez une liste de tous les certificats, mais vous n'aurez besoin que de celui à utiliser pour TLS, que vous pouvez extraire en spécifiant son empreinte :

$cert = Get-ExchangeCertificate -Thumbprint DE67EC3C8D679DC35D171341FEC5148D012B1BAE2

  • À partir de la variable précédemment créée, vous pouvez maintenant compiler la valeur pour le nom du certificat TLS :

$tlscertificatename = "<i>$($cert.Issuer)<s>$($cert.Subject)"

  • Avec la nouvelle variable, vous pouvez maintenant changer chaque connecteur de réception en activant le TLS et modifiant le nom du certificat TLS :
    Set-ReceiveConnector "Inbound from Office 365" -RequireTLS $True -TlsCertificateName $tlscertificatename

Erreur Setup /PrepareSchema dans un environnement existant d'Exchange hybride

Lors de la préparation d'Active Directory pour Exchange 2016 ou pour l'installation d'CU à l'aide du commutateur /PrepareSchema pour un environnement existant d'Exchange hybride, l'erreur suivante est (parfois) générée :

Un problème similaire se produira si vous spécifiez uniquement /PrepareAD

--> Pour résoudre le problème il faut générer le fichier de configuration XML depuis le tenant office 365 puis l'utiliser avec la commande /PrepareAD.

  • Pour générer le fichier de configuration XML, connectez-vous à Exchange Online à l'aide de PowerShell. Une fois connecté et authentifié, exécutez la commande suivante:

Get-OrganizationConfig | Export-Clixml -Path C:\Temp\MyTenantOrganizationConfig.XML

  • Le commutateur /TenantOrganizationConfig ne peut être combiné qu'avec le commutateur /PrepareAD, il ne peut pas être utilisé avec  /PrepareSchema. Si vous le faites, cela générera un message d'erreur "Le paramètre 'tenantorganizationconfig' n'est pas valide pour l'opération en cours 'PrepareSchema'". Exécutez alors la commande ci-dessous dans un environnement CMD exécuté en tant qu'administrateur:

Setup.exe /PrepareAD /TenantOrganizationConfig C:\Temp\TenantOrganizationConfig.XML /IAcceptExchangeServerLicenseTerms

A noter:

Dans ce scénario, l'exécution du commutateur /PrepareAD déclenchera automatiquement le commutateur /PrepareSchema. Par conséquent, vous devez avoir en plus, les droits d’administrateur de schéma pour effectuer les modifications du schéma.

Exchange 2013/2016 - Configuration de plusieurs répertoires virtuels OWA/ECP

Vous pouvez ajouter des répertoires virtuels OWA/ECP supplémentaires pour les raisons suivantes :

  • Vous souhaitez séparer l'accès ECP administrateur et utilisateur pour empêcher l'accès au Centre d'administration Exchange à partir d'Internet.
  • Vous avez différents utilisateurs au sein d'une même organisation qui ont besoin d'une expérience OWA différente, comme un accès aux fichiers public/privé différent ou d'autres fonctionnalités de stratégie ou de segmentation.

Microsoft supporte l'utilisation de plusieurs répertoires virtuels Outlook Web App (OWA) et Exchange Control Panel/Admin Center (ECP) sur un serveur Exchange 2013/2016 lorsque chacun a son propre site Web et est nommé "OWA" et "ECP". Chaque répertoire virtuel doit être à l'écoute sur le port TCP 443 standard pour le site.

Vous devez vous assurer que le site Web par défaut est défini sur "Toutes non attribuées" pour les adresses IP, sinon des problèmes surviendront avec PowerShell.

Ci-dessous les instructions pour la création et la configuration des répertoires virtuels OWA/ECP sur Exchange 2013/2016.

  1. Ajoutez une adresse IP secondaire au serveur - cela peut être avec une autre carte réseau ou simplement en ajoutant une adresse IP à une carte réseau existante.
  2. Si vous avez ajouté une carte réseau, dans les propriétés de la carte, décochez « "enregistrer les adresses de cette connexion dans le système DNS" 
  3. Créez le site Web supplémentaire dans IIS dans un nouveau dossier racine (C:\inetpub\OWA_SECONDARY) et liez-le à la nouvelle adresse IP.
  4. Activez SSL en choisissant le certificat à utiliser pour ce site.
  5. Accordez au groupe IIS_IUSRS l'autorisation de lecture et d'exécution sur le dossier C:\inetpub\OWA_SECONDARY.
  6. Copiez le contenu du dossier racine du site Web par défaut dans son intégralité, y compris les sous-dossiers, dans le nouveau dossier racine du site (c'est-à-dire copiez le contenu %SystemDrive%\inetpub\wwwroot\ dans C:\inetpub\OWA_SECONDARY).
  7. Créez de nouveaux sous-dossiers OWA et ECP dans le dossier racine de votre nouveau site Web (C:\inetpub\OWA_SECONDARY\OWA, C:\inetpub\OWA_SECONDARY\ECP).
  8. Copiez l'intégralité du contenu des dossiers OWA et ECP du site Web par défaut, y compris les sous-dossiers, dans les nouveaux sous-dossiers du nouveau site Web. (Copié à partir de C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy).
  9. Exécutez ce qui suit (en remplaçant <Server> par le nom de votre serveur;
    New-OwaVirtualDirectory -Server <Server> -Role ClientAccess -WebSiteName OWA_SECONDARY -Path "C:\inetpub\OWA_SECONDARY\OWA"
    New-EcpVirtualDirectory -Server <Server> -Role ClientAccess -WebSiteName OWA_SECONDARY -Path "C:\inetpub\OWA_SECONDARY\ECP"
  10. Exécutez les commandes suivantes;
    Set-OwaVirtualDirectory -Identity "<serveur>\owa (site Web par défaut)" -FormsAuthentication $false -WindowsAuthentication $true
    Set-EcpVirtualDirectory -Identity "<serveur>\ecp (site Web par défaut)" -FormsAuthentication $false -WindowsAuthentication $true
  11. Effectuez un IISReset.

L'installation de CU ne mettra PAS à jour correctement les fichiers du site Web secondaire OWA ou ECP, et le site secondaire ne fonctionnera pas correctement. La seule solution prise en charge consiste à supprimer les Vdirs secondaires et le site Web et refaire toutes les étapes. Alors, assurez-vous d'avoir noté tous les paramètres non définis par défaut que vous aviez sur le site, puis supprimez les Vdirs, supprimez le site Web, supprimez tout contenu des dossiers et recommencez à l'étape 3 indiquée ci-dessus. Recréez le site Web, recréez les Vdirs, copiez les derniers fichiers et réappliquez toute configuration ou paramètre personnalisé que vous avez précédemment appliqué. Ne sautez aucune étape et ne prenez aucun raccourci.

Microsoft Exchange - les OUs ne s'affichent pas lors de la création d'une nouvelle BAL depuis l'EAC

Exchange Server 2013/2016 n’affiche pas la liste complète des unités d’organisation lors de la création d’une boîte aux lettres depuis la console d'administration Exchange.

RAISON:

  • Par défaut, l'ensemble de résultats du sélecteur d'unité d'organisation contient 500 entrées uniquement.
  • Lorsqu’il y a plus de 500 entrées, une nouvelle fenêtre est générée et cette fenêtre est vide ou contient un message (il existe d’autres éléments à afficher dans cet affichage).
  • Le sélecteur d'unité d'organisation n'interroge pas Active Directory avec -ResultSize Unlimited.

RESOLUTION:
Pour résoudre ce problème, suivez les étapes suivantes :

  1. Déterminez le nombre d’utilisateurs sur Exchange Server de boîtes aux lettres. Pour ce faire, exécutez la commande suivante (Get-OrganizationalUnit -ResultSize unlimited).count
  2. Sur le Exchange Server de boîtes aux lettres, allez dans le dossier suivant "C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\ecp"
  3. Ajoutez les lignes suivantes dans le fichier web.config juste au-dessus </appsettings> 

<!-- allows the OU picker when placing a new mailbox in its designated organizational unit to retrieve all OUs - default value is 500 -->
<add key="GetListDefaultResultSize" value="2000" />

 

4. Dans le Gestionnaire IIS, redémarrez le pool d’applications MSExchangeECPAppPool.

 Notes:

  • La valeur de GetListDefaultResultSize la clé doit dépasser le nombre d’utilisations trouvées à l’étape 1.
  • Vous devez modifier le fichier web.config sur tous les serveurs mailbox
  • Vous devez ajouter cette valeur chaque fois que vous installez une mise à jour cumulative.

Comment réduire la taille des boîtes aux lettres de découverte dépassant la limite de 50 Go

Les boîtes aux lettres de découverte dans Exchange sont utilisées pour stocker les résultats de recherche eDiscovery.

La taille maximale des boîtes aux lettres de découverte est 50 Go. Il est possible d'augmenter le quota à plus de 50 Go, mails il faut prendre en considération les limites suivantes:

  • Elles ne sont pas prises en charge.

  • Elles ne peuvent pas être migrés vers Microsoft Office 365.

  • S’il s'agit des boîtes aux lettres de découverte Exchange Server 2010, elles ne peuvent pas être mises à niveau vers des versions ultérieures.

Pour résoudre ce problème, vous pouvez créer plusieurs boites aux lettres eDiscovery et copier les résultats de la recherche de la grande boîte aux lettres de découverte dans les nouvelles:

  • Créer la boîte aux lettres de découverte via la commande:

New-Mailbox -Name <discovery mailbox name> -Discovery

Afin d'accéder à cette boîte aux lettres de découverte et visualiser les résultats de la recherche, attribuer des autorisations à un utilisateur ou à un groupe:

Add-MailboxPermission <discovery mailbox name> -User <name of user or group> -AccessRights FullAccess -InheritanceType all

  • Copier les résultats de la recherche dans une boîte aux lettres de découverte en créant tout d'abord une recherche de découverte:

New-MailboxSearch -Name "Search results from 2019" -SourceMailboxes "Discovery Search Mailbox" -StartDate "01/01/2019" -EndDate "12/31/2019" -TargetMailbox "Discovery Mailbox Backup 01" -EstimateOnly -StatusMailRecipients admin@contoso.com

puis démarrer la via la commande:

Start-MailboxSearch "Search results from 2019"

Si besoin régler la plage de dates pour augmenter ou diminuer le nombre de résultats de recherche renvoyés et copier les résultats dans la boîte aux lettres de découverte cible:

Set-MailboxSearch "Search results from 2019" -EstimateOnly $false

Start-MailboxSearch "Search results from 2019"

  • Supprimer les recherches de la boîte aux lettres de découverte d'origine afin de réduire sa taille

Remove-MailboxSearch -Identity <name of search>

Avant de supprimer une recherche, identifier la taille des résultats de recherche qui ont été copiés dans une boîte aux lettres de découverte via l'exécution de la commande:

Get-MailboxSearch | Format-List Name,TargetMailbox,ResultSizeCopied

Exchange: Could not find any available Global Catalog in forest and Event ID 2112

L'exécution des commandes dans un powershell Exchange montre des erreurs " Could not find any available Global Catalog in forest.."

Le journal d'évènement "Application" montre l'avertissement dessous:

Cet événement d'avertissement indique que l'autorisation «Gérer le journal d'audit et de sécurité» a été supprimée pour le groupe "serveurs Exchange" sur les contrôleurs de domaine.

Pour résoudre ce problème:

  1. Ouvrez la console de Gestion des stratégies de groupe (Démarrer / Exécuter / GPMC.MSC)
  2. Développez "Domaines", "Domain Controllers" et cliquez avec le bouton droit de la souris sur "Default Domain Controllers Policy" puis "modifier"
  3. Accédez au menu "Configuration de l'ordinateur", "Stratégies", "Paramètres Windows", "Paramètres de sécurité", "Stratégies locales" et double-cliquez sur "Attribution des droits d'utilisateur"
  4. Dans le volet des résultats, double-cliquez sur "Gérer le journal d'audit et de sécurité" et vérifiez que le groupe "Serveurs Exchange" est répertorié ou l'ajouter le cas échéant. 

Par défaut, le seul groupe du domaine avec ce droit est le groupe Administrateurs mais le processus /preparedomain pour la préparation à l'installation Exchange accorde ce privilège aux serveurs Exchange.