PI Services

Le blog des collaborateurs de PI Services

SCOM – Alertes Failed to Access the Windows Event Log Veeam Vmware

 

Des alertes « Operations Manager Failed to Access the Windows Event Log” concernant des journaux d’événements Veeam Vmware (nWorks) et provenant de serveurs de management (MS) apparaissent :

clip_image002

Elles sont complétées par des événements 26604 récurrents (toutes les 12 minutes) dans les Event Log de ces serveurs :

clip_image004

The Windows Event Log Provider is still unable to open the Veeam VMware event log on computer 'SRV0'. The Provider has been unable to open the Veeam VMware event log for 1440 seconds.

Most recent error details: The specified channel could not be found. Check channel configuration.

One or more workflows were affected by this.

Workflow name: Veeam.Virt.Extensions.VMware.VMGUEST.CollectEvents

Veeam a publié une KB concernant ce problème : http://www.veeam.com/kb1496#/kb1496

Les causes indiquées dans cette dernière ne semblent pas correspondre au contexte rencontré dans mon cas (les alertes apparaissaient sur deux nouveau MS physiques fraichement ajoutés), mais la solution proposée fonctionne malgré tout :

Dans la console Veeam, exécuter une reconstruction de la topologie Rebuild Full Topology :

clip_image006

Rien n’indiquera que la reconstruction est terminée, mais cela peut prendre plusieurs dizaines de minutes voire plusieurs heures selon la taille de votre infrastructure, mais lorsque cela sera bon les événements 26004 ne doivent plus revenir dans l’Event Log.

Il restera enfin à réinitialiser manuellement les moniteurs en erreur :

clip_image008

Orchestrator 2012 – Récupérer le JobID du runbook en cours

 

D’origine, il est possible via les common Published Data de récupérer dans n’importe quel runbook Orchestrator l’ID d’une activité ou d’un process :

clip_image002

On peut même récupérer l’ID de l’instance en cours d’exécution (Job ID) d’un runbook enfant lorsqu’il est appelé via l’activité Invoke Runbook :

clip_image004

Par contre, il n’y a rien de prévu pour récupérer l’ID de l’instance en cours d’exécution du runbook courant.

Ce Job ID du runbook courant peut cependant avoir son utilité, par exemple à des fins de logging et debug. Dans mon cas, il s’agissait de récupérer le nom de la personne ayant démarré le runbook via le portail self-service EUPSCO.

Il est donc malgré tout possible de récupérer cet ID, en intégrant la requête SQL suivante dans une activité Query Database :

SELECT POLICYINSTANCES.JobID
FROM  POLICYINSTANCES INNER JOIN
ACTIONSERVERS ON POLICYINSTANCES.ActionServer = ACTIONSERVERS.UniqueID
WHERE     (POLICYINSTANCES.ProcessID = <Activity process ID from "Initialize Data">) AND (ACTIONSERVERS.Computer = '<Runbook Server name from "Initialize Data">') AND (POLICYINSTANCES.Status IS NULL)

clip_image006

Explication : cette requête interroge la base de données en lui fournissant l’Activity Process ID (qui est disponible nativement via les Common Published Data) afin de retrouver quel JobID contient cet Activity PRocess ID.

Il peut toutefois arriver que le Process ID soit présent plusieurs fois à l’identique dans la base, c’est pourquoi on filtre un peu plus en indiquant le nom du serveur qui exécute le runbook (Runbook Server Name dans les Common Published Data) et surtout en spécifiant le status « NULL », c’est-à-dire que l’on ne recherche que parmi les runbooks qui sont en cours d’exécution et qui n’ont donc pas encore un statut “success”, “warning” ou “failed”

Si tout s’est bien passé, le champ Full line as a string with fields separated by ‘ ;’ pr��sent en sortie de l’activité Query Database devrait contenir le JobID de votre instance de runbook en cours d’exécution, à vous de le réutiliser à votre guise plus loin dans votre runbook !

Création d’un cluster SOFS sur Storage Spaces Direct avec nœuds du Cluster sous Windows Server 2016 Nano

 

Nous allons dans ce blog créer un cluster SOFS en utilisant  Storage Spaces Direct (S2D).

Les nœuds du cluster seront des Windows Server 2016 Nano.

Ce blog n’a pas pour vocation de configurer le cluster dans des best practices ( RDMA, réseau CSV, …), mais seulement de présenter l’intégration de S2D dans le cluster.

Pour rappel, Storage Spaces Direct permet de créer un stockage hautement disponible avec le stockage local du serveur. C’est une grande avancée dans le modèle Software Define Storage (SDS) qui va simplifier la gestion des serveurs Hyperconvergés et permettre l’utilisation de certains types de disques comme les disques SATA, les disques NVME, qu’il n’était pas possible d’utiliser précédemment dans les Storage Space Cluster sous Windows 2012.

image

 

Notre Cluster sera constitué de 4 nœuds : Nano1, Nano2, Nano3 et Nano4 avec chacun deux disques disponible.

 

Ajouts des serveurs Nano dans le domaine

 

Depuis un contrôleur de domaine, on provisionne nos 4 serveurs via la commande djoin /provision.

 

Exemple :

djoin.exe /provision /domain labo.local /machine NanoX /savefile C:\odjblobNanoX

 

image

 

Copier les fichiers respectifs générés sur les serveurs Nanos (via les partages administratifs par exemple).

 

Ensuite, on se connecte sur les 4 serveurs Nano depuis l’hyperviseur via PowerShell Direct (nécessite Windows 10 ou Windows Server 2016 pour cette méthode) afin de les intégrer dans le domaine via la commande djoin /requestodj.

 

Exemple :

djoin /requestodj /loadfile C:\odjblobNanoX /windowspath c:\windows /localos

 

Et on reboote les serveurs.

 

image

image

image

image

Désormais, les 4 serveurs Nanos sont dans le domaine.

 

Exemple pour Nano1

 

image

 

 

Maintenant, depuis une machine disposant des outils RSAT FailoverClusters 2K16 dans le domaine, on créé le cluster Cluster-Nano avec les nœuds Nano1, Nano2, Nano3 et Nano4.

New-Cluster -Name "Cluster-Nano" -Node Nano1, Nano2, Nano3, Nano4 –NoStorage

image

 

Depuis la MMC Failover Cluster, on peut désormais voir notre Cluster-Nano.

 

clip_image001

 

Activation du Storage Space Direct sur le cluster

 

Il faut activer au niveau du cluster la fonctionnalité Storage Space Direct via la commande suivante :

 

Get-cluster Cluster-Nano | Enable-ClusterStorageSpacesDirect

 

clip_image003

 

Les DAS de vos nœuds sont visibles dans Enclosures.

 

clip_image005

 

Création du Storage Pool et du Virtual Disk

 

Nous allons maintenant générer un Storage Pool depuis nos disques locaux des nœuds du cluster.

 

clip_image007

 

Spécifier un nom de Storage Pool

 

clip_image009

 

Sélectionner les disques devant participer au Storage Pool (ici sont affichés les 2 disques * 4 nœuds soit 8 disques)

 

clip_image011

clip_image013

clip_image015

Le Storage Pool est désormais créés.

 

clip_image017

 

Nous allons maintenant créer un Virtual Disk sur ce Storage Pool.

 

Clic droit sur le Pool et New Virtual Disk

clip_image019

clip_image021

 

Sélectionner votre Storage Pool précédemment créé.

 

clip_image023

Donner un nom à votre virtual Disk

 

clip_image025

clip_image027

Dans notre exemple, nous allons créer un miroir avec une taille de 12 GB

clip_image029

clip_image031

clip_image033

Cocher la case Create a volume when this wizard closes

clip_image035

 

Créer maintenant le volume. Cliquer sur Next

clip_image037

 

Sélectionner le disque disponible présent au sein du cluster

clip_image039

 

Allouer toute la capacité disponible au volume.

clip_image041

 

N’affecter pas de lettre de montage (inutile car il s’agira d’un volume CSV)

clip_image043

 

Donner un label et formater en ReFS

clip_image045

clip_image047

clip_image049

 

La ressource disque est maintenant disponible.

clip_image051

 

Ajouter ce disque en tant que CSV.

clip_image053

clip_image055

 

Désactiver l’intégrité sur le CSV

Set-FileIntegrity C:\ClusterStorage\Volume1 –Enable $false

 

clip_image057

 

 

Ajout du role SOFS dans le cluster

 

Si désormais vous souhaitez ajouter le rôle SOFS au cluster, vous aurez un message d’erreur.

 

clip_image059

 

Vous devez pour cela activer sur les nœuds du cluster la feature File-Services car actuellement celle-ci est désactivée.

clip_image061

 

 

Ajout de la feature sur les nœuds :

 

 

invoke-command -computer nano1 -scriptblock {Get-WindowsOptionalFeature -online -featureName File-Services | Enable-WindowsOptionalFeature -online}

invoke-command -computer nano2 -scriptblock {Get-WindowsOptionalFeature -online -featureName File-Services | Enable-WindowsOptionalFeature -online}

invoke-command -computer nano3 -scriptblock {Get-WindowsOptionalFeature -online -featureName File-Services | Enable-WindowsOptionalFeature -online}

invoke-command -computer nano4 -scriptblock {Get-WindowsOptionalFeature -online -featureName File-Services | Enable-WindowsOptionalFeature -online}

 

clip_image063

 

Désormais, vous pouvez ajouter votre rôle SOFS.

 

clip_image065

clip_image067

clip_image069

clip_image071

clip_image073

 

Il ne vous reste plus qu’à ajouter des partages de fichiers de type SMB Share –Applications sur le CSV reposant sur du Storage Space Direct et vous pourrez héberger vos VMs.

clip_image075

 

 

(Après avoir bien entendu relié le tout via du SMB 3 en exploitant le MultiChannel et le RDMA. Sourire )

SCOM 2012 – Erreur lors de l’installation du MP Lync/SFB 2015

 

Le MP Skype For Business (Lync) 2015 est sorti récemment, mais il ne dispose d’aucune documentation.

Son installation coté SCOM reste des plus classique (import de deux fichiers .mp, activation du mode proxy sur tous les agents de l’infrastructure SFB), mais un problème peut survenir sur les serveurs Edge :

image

[Skype] An internal exception has occurred during discovery.

Ce qui correspond à l’événement suivant :

image

An exception occurred during discovery script, Exception : Could not connect to SQL server : [Exception=System.Data.SqlClient.SqlException (0x80131904): Cannot open database "xds" requested by the login. The login failed.

Login failed for user 'NT AUTHORITY\NETWORK SERVICE'.

Cette erreur induit quelque peu en erreur car elle laisse à penser qu’il s’agit de permissions SQL à rajouter.

En réalité, pour résoudre ce problème, rajoutez simplement le compte Network Service aux groupes locaux RTC Component Local Group et RTC Local Administrators (vous pouvez d’ailleurs constater qu’il est normalement bien présent dans ces groupes sur les serveurs du réseau interne).

clip_image006

Enfin, redémarrez l’agent SCOM sur ces serveurs (service Microsoft Monitoring Agent).

Powershell & Office 365 : Provisionning de licences

Introduction

Dans Office 365, il existe plusieurs méthodes pour ajouter des licences à un utilisateur :

  • Via l'interface d'administration manuellement sur chaque utilisateur.
  • Via l'interface d'administration manuellement sur plusieurs utilisateurs.
  • Avec les cmdlets Powershell Office 365.

Dans cet article, nous allons nous intéresser à l'ajout/suppression de licences via Powershell. Le but est d'automatiser cette opération. On peut facilement imaginer des scénarios conjoints avec Dirsync. Ce dernier provisionne un compte, puis, une tâche ajoute automatiquement les licences nécessaires à l'utilisateur.

D'autre part, il est possible d'ajouter pour chaque utilisateur :

  • Une licence complète incluant tout les services de l'abonnement souscrit.
  • Certains services d'une licence afin de limiter les accès aux utilisateurs (par exemple : ne donner qu'une licence Exchange sans donner les accès à la suite Office).

    Nous nous attarderons sur ces différentes possibilités dans l'un des paragraphes suivants.

    Nous ferons un rappel sur les prérequis nécessaires à l'utilisation des cmdlets Powershell avant d'appréhender leur attribution. Nous verrons enfin un script permettant d'automatiser le processus d'ajout/suppression de services via l'utilisation des groupes de sécurité Office 365.

Pré requis

L'administration des utilisateurs Office 365 via Powershell a besoin de l'installation d'un module spécifique. Ce dernier nécessite un prérequis : Microsoft Online Services Sign-In Assistant. Ci dessous, vous trouverez le lien de téléchargement de ce dernier :

http://www.microsoft.com/en-us/download/details.aspx?id=41950

Voici maintenant les liens pour récupérer le module Powershell :

http://go.microsoft.com/fwlink/p/?linkid=236298

A titre informatif, la version 32 bits de ces composants n'est plus pris en charge et ne sera plus mis à jour par Microsoft.

 

Connexion à Office 365 et permission

Pour se connecter à Office 365, il est nécessaire d'exécuter la commande suivante :

Les informations d'authentification fourni doivent correspondre à un utilisateur possédant à minima le rôle de gestion des utilisateurs. Cette attribution permettra d'affecter les licences.

 

Licences et abonnements

Tout d'abord, nous allons commencer par récupérer les différents abonnements disponibles sur un tenant Office 365. Il s'agit de la commande :

Le résultat obtenu permet aussi de voir les licences disponibles (ActiveUnits) et utilisées. (ConsumedUnits)

Get-MsolAccountSku

Pour chacun des abonnements, il est possible d'accéder aux services disponibles. Exemple avec le premier abonnement de la liste :

ServiceStatus

Chaque service Office 365 possède donc un identifiant qui est utilise lors de l'affectation de licences à certains utilisateurs. Les services étant différents d'un plan à un autre, voici un tableau récapitulant les identifiants et les services auxquels ils donnent accès pour un abonnement de type E3 :

EXCHANGE_S_STANDARD Exchange Online (Plan 2)
MCOSTANDARD Lync Online (Plan 2)
SHAREPOINTENTERPRISE SharePoint Online (Plan 2)
SHAREPOINTWAC Office Online
OFFICESUBSCRIPTION Office ProPlus
RMS_S_ENTERPRISE Azure Active Directory Rights Management
INTUNE_O365 Intune
YAMMER_ENTERPRISE Yammer
 

Pour les autres abonnements, les services ont des noms identiques ou similaires (exemple : SHAREPOINT_S_DEVELOPER au lieu de SHAREPOINTENTERPRISE pour un abonnement développeur).

NB : J'ai noté deux spécificités sur certains services. Premièrement, la licence Office Online doit être attribué conjointement à une licence Sharepoint (on peut facilement s'en rendre compte via le portail d'administration Office 365). Enfin, les licences Yammer n'ont pas besoin d'être attribués. Cela est sans doute dû au fait que l'intégration du service dans l'offre Office 365 n'est pas terminée. Il se peut aussi que cela soit pensé pour simplifier le système. Néanmoins, il apparaît que le nombre d'utilisateurs peut dépasser le nombre de licences sans avoir de réduction de services (Il faut donc faire un suivi régulier du nombre de licences afin d'être en règle).

 

Gestion des licences utilisateurs

Attribution d'une licence complète

L'attribution d'une licence utilisateur se fait via la commande Powershell "Set-MSOLUserLicence". Il est possible d'utiliser cette commande pour un ou plusieurs utilisateurs. Le paramètre AddLicenses permet d'ajouter une licence correspondant à un plan Office 365.

Exemple d'attribution d'une licence :

NB : Il est nécessaire de fournir l'attribut AccountSkuId de l'objet obtenu avec la commande Get-MsolAccountSku.

NB2 : Si vous attribuez des licences à plusieurs utilisateurs et que le nombre restants est insuffisant, alors la cmdlet affectera quand même des licences jusqu'à épuisement de celles-ci.

Attention, avant d'attribuer une licence, il est nécessaire d'ajouter une localisation à l'utilisateur. Cette opération est automatisable avec la commande suviante :

La location est à remplacer par la valeur voulue (ici : FR).

 

Attribution d'une licence partielle

Pour l'instant nous avons vu, l'attribution d'une licence donnant accès à tous les services offert par l'abonnement Office 365. Dans certains cas, il peut être voulu de n'autoriser un utilisateur qu'à un certain nombre de services. Pour se faire, il faut créer un objet du type MsolLicenceOption. Celui-ci est une licence à laquelle on a désactivé certains services.

Exemple :

Cette cmdlet crée une licence avec un pack de service désactivant Azure Right Management Services et Lync Online.

La commande crée les options de licencing à partir d'un abonnement (AccountSkuId) et une liste de services sous forme de tableau. Les noms des services à fournir sont ceux définis dans le tableau du paragraphe "Licences et abonnements". On peut ensuite attribuer ces options de licencing via la même commande que précédemment mais en changeant de paramètre :

Script

Présentation

Le but du script ci-dessous est d'effectuer un provisioning automatique des licences Office 365 pour les utilisateurs synchronisés avec Dirsync. Celui-ci est basé sur l'utilisation des groupes de sécurité Office 365 (ce dernier peut être synchronisé via Dirsync). Chaque groupe correspond à l'attribution d'un ou plusieurs accès à des services Office 365.Ce script peut aussi bien gérer l'ajout que la suppression d'accès. Afin de ne pas perturber les accès déjà affectés à un utilisateur sont réattribués (tant qu'ils ne sont pas concerné par le script). Afin de mieux comprendre le comportement du script, voici un scénario d'exemple :

  • USER1 appartient au groupe GRP-SharepointOnline
  • GRP-SharepointOnline attribue les accès SHAREPOINTENTERPRISE et SHAREPOINTWAC
  • USER1 possède déjà un accès à Lync (via MCOSTANDARD)
  • Le script s'exécute et donne les accès à SHAREPOINT Online et Office Online à USER1
  • USER1 conserve également son accès à Lync Online.

Pour obtenir ce résultat, l'algorithme recalcule les accès de chaque utilisateur. Cette opération est réalisé en récupérant l'attribut DisabledServices de la licence utilisateur (avec Get-MsolUserLicense).

Il permet aussi de ne pas gérer certains services. Cela peut être notamment utile pour Yammer dont l'attribution de licence n'est pas à administrer.

Celui-ci a été utilisé au travers d'un runbook dans System Center Orchestrator mais il peut aussi être utilisé dans une tâche planifié. Il est possible d'imaginer des variantes de ce script. Par exemple, les licences à attribuer pourraient être stockée dans un attribut du groupe. On peut aussi supprimer l'exigence d'être un utilisateur synchronisé par Dirsync (dans ce cas le groupe devra être alimenté via la console Office 365 et non dans Active Directory).

 

Script

Office 365 – Résoudre l’erreur de migration “Cannot find a recipient that has mailbox GUID”

Contexte

Dans un environnement Exchange 2013 en mode hybride, vous obtenez l’erreur suivante lors de la migration d’une boite aux lettres Exchange Online vers Exchange OnPremise :

Error: MigrationPermanentException: Cannot find a recipient that as mailbox GUID <GUID>.

2015-09-08_181420

Cette erreur est due à l’absence du GUID sur la RemoteMailbox de l’utilisateur côté Exchange OnPremise.

Si vous lancez la commande suivante sur l’Exchange Management Shell, vous obtiendrez un GUID nul :

Get-RemoteMailbox <SamAccountName> | fl *ExchangeGUID*

2015-09-08_181240

Résolution

Afin de résoudre l’erreur et pouvoir procéder à la migration de la boite, vous devez modifier le GUID de la RemoteMailbox pour le faire correspondre à celui de la boite côté Exchange Online.

Vous pouvez récupérer le GUID de la boite depuis le message d’erreur ou depuis une console PowerShell connectée à ExchangeOnline avec la commande

Get-Mailbox <SamAccountName> | fl *ExchangeGUID*

2015-09-08_181501

Ensuite depuis l’Exchange Management Shell, lancez la commande suivante :

Set-Mailbox <SamAccountName> –ExchangeGUID <GUID>

2015-09-08_181532

Relancez votre migration.

2015-09-09_100059

Skype for Business 2015 – Publier les services web via WAP

Contexte

Lors de l’installation de Skype for Business 2015, un certain nombre de flux web doivent être publiés vers l’extérieur. Avec l’arrêt de TMG, il est recommandé (voir nécessaire) d’utiliser un autre Reverse Proxy pour publier ces flux.

Depuis Windows Server 2012 R2, Microsoft a intégré un nouveau rôle, le WAP pour Web Application Proxy. Ce rôle permet la publication de flux web. Il peut donc être utilisé dans une architecture Skype for Business 2015. Pour en savoir plus sur l’installation du rôle WAP, vous pouvez suivre le lien suivant : https://technet.microsoft.com/fr-fr/library/Dn280944.aspx.

Mise en œuvre

Prérequis

La publication des services web via WAP ne nécessite pas de prérequis particulier à l’exception du certificat public contenant l’ensemble des URLs.

 

 

Services Web

Skype for Business 2015 intègre plusieurs services web :

  • Meet
  • Dial-In
  • Scheduler
  • Autodiscover
  • Services Web
  • Office Web Apps

Publication

      Depuis la console

Remote Access Management Console

      , cliquez sur

Publish.

2015-09-09_141606

Passez la première étape, puis sélectionnez Pass-through dans la méthode de pré-authentification.

2015-09-09_141728

Indiquez le nom du service web, l’URL de publication dans External URL, sélectionnez le certificat public correspondant et indiquez l’URL interne dans Backend server URL.

2015-09-09_141913

La page suivante récapitule la publication. Cliquez sur Publish pour terminer la publication.

2015-09-09_141957

Recommencez l’opération pour toutes les URLs.

Exchange 2016 – Les premières nouveautés

Contexte

Depuis mi-juillet, Microsoft a publié la première version preview d’Exchange 2016.

Cette première version intègre quelques nouveautés.

Si vous souhaitez télécharger la preview, suivez ce lien : http://www.microsoft.com/en-us/download/details.aspx?id=48210.

Nouveautés côté serveur

La première nouveauté d’Exchange 2016 est la simplification de l’architecture. En effet Exchange 2016 n’intègre plus que deux rôles, à savoir le rôle Mailbox et le rôle Edge.

2015-07-24_234326

La taille maximale des archives a été augmentée pour atteindre 100 Go.

2015-09-09_163447

Nouveautés côté client

Côté client, la grosse nouveauté se trouve sur l’OWA :

  • Une recherche plus rapide et plus intuitive
  • Une nouvelle interface La nouvelle interface de l’OWA (Outlook Web Access) intègre désormais des émojis Smile

2015-07-25_153447

La page Contacts a été également légèrement modifiée.

2015-07-25_154202

La page Calendrier comporte quelques nouveautés : un partage de calendrier plus simple, un calendrier spécial Anniversaire…

2015-07-25_154048

A venir

Microsoft a également annoncé des nouveautés à venir sur le mode hybride, so…

Stay tuned!

ERREUR 8024401F: Mise à Jour Windows 2012

 

Bonjour dans le cadre de la mise à jour des correctifs pour Windows 2012

il se peut que vous rencontriez une erreur 8024401F.

 

IMAGE DE L’ERREUR:

image

 

Etape 1 : Il faut arrêter le service de mise à jour en tapant la command ci-dessous , ATTENTION il faut être en mode Administrateur.

image

 

Etape 2 : Il faut renommer le répertoire C:\Windows\Softwaredistribution en Softwaredistribution–old.

image

Etape 3 : Il faut redémarrer le service de mise à jour en tapant la command ci-dessous , ATTENTION il faut être en mode Administrateur.

image

Etape 4 : Il faut relance la mise à jour

image