Le blog technique

Toutes les astuces #tech des collaborateurs de PI Services.

#openblogPI

Retrouvez les articles Ă  la une

Centraliser les ADMX dans le Group Policy Central Store

 

Dans le cadre de la gestion des GPO, il arrive de temps en temps d’avoir des temps de chargement très long lorsque que l’on tente d’accéder à certains paramètres dans la console Group Policy Management, ce problème est peut être lié à des ADMX qui ont été chargés dans la console depuis un poste client et qui ne sont pas accessibles lorsque vous ouvrez la console.

 

Afin de régler ce problème qui peut être récurrent et gênant lors de l’administration des GPOs, il est conseillé de créer une banque centrale contenant les différents fichiers ADMX.

Afin de créer le magasin Central pour les fichiers .admx et .adml (les .adml sont les fichiers de langue correspondant aux .admx), créez un dossier nommé PolicyDefinitions à l’emplacement suivant sur un contrôleur de domaine :

\\contoso.com\SYSVOL\contoso.com\policies

Après avoir copié tous les fichiers .admx et .adml, le dossier PolicyDefinitions sur le contrôleur de domaine doit contenir les fichiers .admx et un ou plusieurs dossiers contenant les fichiers spécifiques à une langue .adml.

Les fichiers étant contenu dans le SYSVOL qui est répliqué, il ne devrait plus y avoir de lenteurs liées aux .admx lors de l’ouverture de la console GPMC. 

SQL Server–Supprimer l’un des fichiers utilisĂ© par la TempDB

Contexte

Lors de la suppression d’un des fichiers utilisĂ© par la base TempDB, l’opĂ©ration Ă©choue avec l’erreur suivante :

Msg 5042, Level 16, State 1, Line 1
The file 'tempdev2' cannot be removed because it is not empty.

Explication

Ce comportement est provoqué par le fait que le fichier est actuellement utilisé par SQL, il faut donc vider le fichier avant de pouvoir le supprimer.

Une solution possible est le redemmarage de l’instance SQL, ce qui va regenerer la base TempDB, moyennant une coupure de service.

Résolution

Afin d’éviter toute coupure de service, il est possible d’executer le script SQL suivant pour vider puis supprimer un fichier utilisĂ© par la TempDB :

USE [tempdb]
GO
DBCC SHRINKFILE('tempdev2', EMPTYFILE)
GO
ALTER DATABASE [tempdb] REMOVE FILE [tempdev2]
GO

Sources

https://tenbulls.co.uk/2016/01/13/problem-removing-files-from-tempdb/

SQL Server–Reconfigurer les plans de maintenances aprĂšs avoir renommĂ© une instance SQL

Introduction

AprĂšs avoir renommĂ© un serveur SQL, les plans de maintenances existants Ă©chouent avec l’erreur suivante :

Réalisation

1. Lister les procĂ©dures stockĂ©es en exĂ©cutant le script suivant sur la base MSDB et rĂ©cupĂ©rer la valeur “ID” :

SELECT  x.*,
        LocalServerConnectionString = cm.value(‘declare namespace DTS= »www.microsoft.com/SqlServer/Dts »;DTS:ObjectData[1]/DTS:ConnectionManager[1]/@DTS:ConnectionString’, ‘varchar(1000)’)
FROM (
    SELECT  id, name, packageXML = CAST(CAST(packagedata AS VARBINARY(MAX)) AS XML)
    FROM dbo.sysssispackages
    WHERE id IN (SELECT id FROM dbo.sysmaintplan_plans)
) x
CROSS APPLY packageXML.nodes(‘declare namespace DTS= »www.microsoft.com/SqlServer/Dts »;/DTS:Executable/DTS:ConnectionManagers/DTS:ConnectionManager[@DTS:ObjectName= »Local server connection »]’) p(cm)

Voici un exemple de résultat :

image

2. Modifier la valeur “Data Source” à l’aide du script suivant :

UPDATE dbo.sysssispackages SET packagedata = CAST(CAST(REPLACE(CAST(CAST(packagedata AS VARBINARY(MAX)) AS VARCHAR(MAX)), ‘OldServerName‘, ‘NewServerName‘) AS XML) AS VARBINARY(MAX))
WHERE id = ‘ID

Modifier les valeur en rouge :

  • OldServerName : Ancien nom de l’instance SQL telle qu’indiquĂ©e dans la partie “Data Source” de la colonne “LocalServerConnectionString” de la requĂȘte exĂ©cutĂ©e prĂ©cĂ©demment,
  • NewServerName : Nouveau nom de l’instance SQL,
  • ID : GUID de la tĂąche planifiĂ©e Ă  reconfigurĂ©e telle qu’indiquĂ©e dans la colonne“ID” de la requĂȘte exĂ©cutĂ©e prĂ©cĂ©demment.

Vérification

  • Valider en exĂ©cutant la requĂȘte listant les procĂ©dure stockĂ©es que le nom de la nouvelle instance apparaĂźt bien dans la partie “Data Source” de la colonne “LocalServerConnectionString”,
  • ExĂ©cuter le plan de maintenance et valider qu’il s’exĂ©cute correctement.

Liens Utiles