Ne pas lire entièrement une KB peut s’avérer nocif pour le cerveau …

 

images

 

 

Bonjour à tous …

 

Si vous aussi vous travaillez en ce vendredi de pont et que vous êtes fatigués, je ne vous oublie pas. En ce qui me concerne, je serai bien resté au chaud pour voir un bon film ou me reposer tout simplement.

 

Pour passer le temps, j’ai donc décidé de vous écrire quelques posts, dont celui-ci, sur SC Virtual Machine Manager 2012 R2. Cela vous permettra de vous former et de ne pas vous faire de nœuds au cerveau si vous rencontrez le même souci que missa. Comme vous le savez, l’Update Rollup 2 pour System Center 2012 R2 est sorti. J’ai donc décidé de mettre à jour mon infrastructure SCVMM 2012 R2 avec la nouvelle KB.

 

En parcourant la page web, j’ai eu la possibilité de télécharger les 2 KB suivantes:

  • KB2932942VMM Console
  • KB2932926VMM Server

 

Le téléchargement et l’installation se déroulent sans accroc … Content, j’ouvre ma console VMM pour continuer à jouer avec mon produit préféré. Par ailleurs, je vais vous écrire un article sur l’ajout d’une baie de stockage SAN iSCSI basée sur 2k12 R2 et ses fonctionnalités natives dans VMM. Pour en revenir à mon sujet, je jouais avec les notions de Clouds et Tenants au sein de ma plateforme et là, je reçois ce message d’erreur suite à la création d’un nouveau User Role:

 

ERROR VMM

 

 

Et là, c’est le drame ! Pourquoi me faire ça à moi alors que j’aime SCVMM ? On se dit alors que ce doit être l’amour vache … Trèves de plaisanterie. J’essaie donc de comprendre ce qu’il se passe. J’ouvre la page détaillant la KB pour essayer de voir si quelque chose ne m’avait pas échappé et là je remarque qu’il fallait exécuter un script SQL sur la base de données VMM après l’installation de l’UR2. A ce moment, je vous assure que je me suis senti seul. J’ai donc copié le script fournie par la KB et je l’ai lancé sur mon serveur comme ceci:

 

ERROR VMM2 Connexion à l’instance avec Management Studio

 

ERROR VMM3 Exécuter une requête sur la base VirtualManagerDB

 

 

Copier le script suivant:

ALTER Procedure [dbo].[prc_RBS_UserRoleSharedObjectRelation_Insert]
(
        @ID uniqueidentifier,
        @ObjectID uniqueidentifier,
        @ObjectType int,
        @RoleID uniqueidentifier,
        @UserOrGroup varbinary (85),
        @ForeignAccount nvarchar (256),
        @IsADGroup bit,
        @ExistingID uniqueidentifier = NULL OUTPUT
)
AS
SET NOCOUNT ON
     SELECT @ExistingID = [ID] FROM [dbo].[tbl_RBS_UserRoleSharedObjectRelation]
     WHERE [ObjectID] = @ObjectID AND [RoleID] = @RoleID
  AND
  — Select owner OR Select all which matches ForeignAccount or UserOrGroup OR
  — both ForeignAccount and UserOrGroup is NULL 
  (([UserOrGroup] = @UserOrGroup OR [ForeignAccount] = @ForeignAccount) OR
  ([UserOrGroup] IS NULL AND @UserOrGroup IS NULL AND [ForeignAccount] IS NULL AND @ForeignAccount IS NULL))
      /* Ignore duplicate entries */
      IF (@ExistingID IS NULL)
      BEGIN
     INSERT [dbo].[tbl_RBS_UserRoleSharedObjectRelation]
               ([ID]
               ,[ObjectID]
               ,[ObjectType]
               ,[RoleID]
               ,[UserOrGroup]
               ,[ForeignAccount]
               ,[IsADGroup]
               ,[IsOwner]
               )
    VALUES
    (
            @ID,
            @ObjectID,
            @ObjectType,
            @RoleID,                       
            @UserOrGroup,
            @ForeignAccount,
            @IsADGroup,
            0
    )
      END
SET NOCOUNT OFF
RETURN @@ERROR
GO
ALTER PROCEDURE [dbo].[prc_WLC_IsVHDSharedByAnotherVmOnHost]
    @HostId [uniqueidentifier],
        @VHDId [uniqueidentifier],
    @VMId [uniqueidentifier]
AS
BEGIN
    DECLARE @error int
    SET @error = 0
    SET NOCOUNT ON;
    SELECT TOP 1 1 FROM dbo.[fn_WLC_GetParentChildRelationForVHD](@VHDId) vcr
        JOIN dbo.tbl_WLC_VDrive vd ON
                vcr.VHDId = vd.VHDId
        JOIN dbo.tbl_WLC_VObject vo ON
                vo.ObjectId = vd.ParentId
        JOIN dbo.tbl_WLC_VMInstance vi ON
                vo.ObjectId = vi.VMInstanceId  
        WHERE          
                vo.HostId = @HostId
        AND
                vo.ObjectId <> @VMId           
        AND
                vi.RootVMInstanceId <> @VMId           
    SET @error = @@ERROR
    SET NOCOUNT OFF
    RETURN @error
END
GO
IF EXISTS (SELECT * FROM dbo.sysobjects
           WHERE id = OBJECT_ID(N’prc_ADHC_HostDisk_GetByClusterDiskIdAndHostId’)
           AND OBJECTPROPERTY(id, N’IsProcedure’) = 1)
DROP PROCEDURE dbo.prc_ADHC_HostDisk_GetByClusterDiskIdAndHostId
GO
CREATE PROCEDURE dbo.prc_ADHC_HostDisk_GetByClusterDiskIdAndHostId
(
  @ClusterDiskID guid,
  @HostID guid
)
AS
DECLARE @error int
SET @error = 0
SET NOCOUNT ON
SELECT
[DiskID],
[Signature],
[UniqueID],
[HostID],
[LibraryServerID],
[StArrayID],
[LastUpdatedDateTime],
[DeviceID],
[Index],
[Capacity],
[IsPassThroughCapable],
[IsSanAttached],
[ClusterDiskID],
[Location],
[StorageLUNID],
[SMLunId],
[SMLunIdFormat],
[SMLunIdNamespace],
[SANType],
[Bus],
[Lun],
[Target],
[Port],
[IsVHD],
[StClassificationId]
FROM dbo.tbl_ADHC_HostDisk
WHERE
[HostID] = @HostID
AND
[ClusterDiskID] = @ClusterDiskID
SELECT @error = @@ERROR
SET NOCOUNT OFF
RETURN @error
GO

 

ERROR VMM4 Script SQL après l’installation de l’UR2

 

ERROR VMM4 Cliquer sur Execute pour lancer le script

 

 

 

Une fois l’opération terminée, j’ai pu ouvrir ma console d’administration SCVMM et recréer mon User Tenant sans difficultés afin de l’assigner à mon Cloud. J’espère en tous les cas que cela vous servira dans votre environnement afin d’éviter tous les nœuds au cerveau.

 

Bonne journée mes virtual addicts …

 

 

David LACHARI – Le savoir ne vaut que s’il est partagé …

becloud

Passionné par la virtualisation, David est MVP Virtual Machine depuis 2010. Il intervient quotidiennement auprès de grands comptes afin de définir et déployer des architectures virtuelles. David est le fondateur de la société VSTART, spécialisée dans le conseil et l’expertise des solutions de virtualisation Microsoft.
Non classé

becloud

Passionné par la virtualisation, David est MVP Virtual Machine depuis 2010. Il intervient quotidiennement auprès de grands comptes afin de définir et déployer des architectures virtuelles. David est le fondateur de la société VSTART, spécialisée dans le conseil et l’expertise des solutions de virtualisation Microsoft.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *