Quantcast
Channel: C:>Windows Internals – L'équipe Française de Support Windows
Viewing all 86 articles
Browse latest View live

Windows 10 : Déployer la dernière version de OneDrive avec MDT

$
0
0

Suite à de nombreuses questions sur l’intégration de la dernière version de OneDrive dans une image de référence Windows 10, voici un exemple réalisé dans le cadre d’un déploiement avec Microsoft Deployment Toolkit (MDT).

Versions du client OneDrive dans Windows 10

Le client OneDrive est intégré dans Windows 10. Les mises à jour de OneDrive sont effectuées par le client OneDrive lui-même et non l’agent Windows Update.

La version du client OneDrive intégrée à Windows 10 dépend de la version de Windows 10 utilisée.

Voici quelques exemples :

Version de Windows 10

Version du client
OneDrive intégré

Windows 10 1511

17.5892.626

Windows 10 1607

17.6381.405

Windows 10 1703

17.6816.313

Afin de connaître la dernière version du client ainsi que les changements apportés vous pouvez consulter l’article suivant :

Notes de version du client OneDrive

Note : Le client OneDrive utilisé dans Windows 10 correspond au client OneDrive Next Generation Sync Client.

Which version of OneDrive am I using?

Avantages de l’intégration de la dernière version du client OneDrive

L’intégration de la dernière version de OneDrive dans son master Windows 10 permet :

  • D’éviter le message d’erreur une mise à jour est nécessaire (An update is required)


  • De bénéficier des derniers correctifs de OneDrive
  • De réaliser l’installation du client avec un compte administrateur

L’installation de OneDrive est une installation du type par-utilisateur. OneDrive est installé dans le profil utilisateur : %localappdata%\microsoft\OneDrive

En fonction des mises à jour de OneDrive, l’installation peut nécessiter des droits administrateurs. Dans ce cas, vous pouvez recevoir le message suivant : Finish installing update – OneDrive needs your permission to finish installing an update.

Dans ce cas, il faut qu’un compte administrateur lance l’installation de OneDrive afin de mettre à jour certaines informations dans la partie ordinateur.

Configuration du client OneDrive lors de la première ouverture de session

Lors de la première ouverture de session de l’utilisateur, le programme OneDrivesetup.exe est exécuté afin d’installer le client OneDrive dans le profil de l’utilisateur. OneDriveSetup.exe est situé dans C:\Windows\System32 (OS 32 bits) et C:\Windows\SysWow64 (OS 64 bits).

Remplacement du programme d’installation OneDriveSetup

A priori, afin d’intégrer la dernière version de OneDriveSetup.exe dans son master, il suffirait de remplacer le fichier OneDriveSetup.exe par une nouvelle version. Cependant cette méthode n’est pas supportée :

  • Le fichier OneDriveSetup.exe est une ressource système protégée par Windows Resource Protection (TrustedInstaller) et changer les permissions n’est pas supporté.
  • Si toutefois vous modifiez les permissions et que le fichier a été remplacé par une nouvelle version, le fichier d’origine sera restauré dans le cadre d’une vérification des fichiers systèmes (exemple : SFC /scannow).

Intégrer OneDriveSetup.exe avec MDT

  1. Télécharger la dernière version du client OneDrive : Téléchargement de la dernière version du client OneDrive pour Windows
  2. Adapter l’exemple de script suivant : DeployOneDrive.cmd
    REM Create OneDriveSetup Diretcory and copy latest OneDriveSetup file
    mkdir C:\ProgramData\Microsoft\OneDriveSetup\
    Xcopy "%~dp0OneDriveSetup.exe" C:\ProgramData\Microsoft\OneDriveSetup\ /Y
    
    REM Load Default user registry to swap OneDriveSetup.exe Path, then Unload Registry
    reg load HKLM\OneDriveSetup "C:\Users\Default\NTUSER.DAT"
    reg add "HKLM\OneDriveSetup\Software\Microsoft\Windows\CurrentVersion\Run" /v "OneDriveSetup" /t REG_SZ /d "C:\ProgramData\Microsoft\OneDriveSetup\OneDriveSetup.exe /thfirstsetup" /f
    reg unload "HKLM\OneDriveSetup"
     
    REM Kill Old Setup if running
    Start /Wait taskkill /F /IM OneDriveSetup.exe /T
    
    REM Start New Setup so it will run with Administrator account to update HKLM registries entries if needed
    start /wait C:\ProgramData\Microsoft\OneDriveSetup\OneDriveSetup.exe /silent
    
  3. Ajouter l’application dans MDT

Lors de la première ouverture de session d’un utilisateur, le programme OneDriveSetup.exe situé dans C:\ProgramData\Microsoft\OneDriveSetup sera exécuté et au bout de quelques minutes le client sera installé.


Mais pourquoi le profil de mon collègue parti à la retraite l’année dernière n’est-il pas nettoyé par la “GPO – Delete user profiles older than 180 days” ?

$
0
0

Sur les fermes de serveurs RDS, il est fréquent de purger les profils utilisateurs avec la GPO “Delete User Profiles older than x days” ou d’implémenter des outils de purge basés sur la date de modification du fichier ntuser.dat (ruche) du profil des utilisateurs.

Depuis Windows 8/Windows 2012, le “Component Manager” (composant kernel gérant le registre) a introduit une optimisation qui peut mettre à mal ces stratégies de purge. Lorsque l’on accède à des clés, les “cellules” contenant ces clés sont lues depuis le fichier sur le disque et montées en mémoire (dans la “Non Paged Pool”).

L’idée de cette optimisation est de regrouper les “cellules”  utilisées récemment pour limiter le nombre d’IO disque.

Pour mettre en oeuvre cette stratégie, chaque “cellule”  sera marquée comme :

  • chaude : cette cellule a été accédée depuis la réorganisation (par exemple suite à la lecture des valeurs associées à la clé contenue dans la cellule)
  • ou froide: cette cellule n’a pas été accédée depuis la dernière réorganisation. Lors du chargement de la ruche, si celle-ci n’a pas été réorganisée depuis 7 jours, alors la ruche est réorganisée et les cellules sont marquées comme froides.

Si plus tard, cette ruche est réutilisée et une des clés “froides” est accédée en lecture, la cellule associée va devenir “chaude”. L’effet pervers est que la cellule est considérée comme modifiée et la ruche devient “Dirty”. Lors de son déchargement,  la date du ficher ntuser.dat sera modifiée. Cette ruche ne sera alors plus candidat à l’application de la GPO !

Si sur votre serveur, votre antivirus ou vos outils de surveillance (par exemple via des classes WMI (Win32_Desktop,Win32_Environment,…) chargent les ruches utilisateurs pour des accès en lecture ) alors la date des fichiers ntuser.dat peut changer même si aucune modification “logique” n’a été faite dans le registre. Le profil de votre collègue parti restera sur le serveur !

Pour les courageux qui m’ont suivi jusqu’ici, je vais l’illustrer avec un exemple sur Windows 2012 R2, un fichier ntuser.dat “ancien”. Nous allons

  1. analyser l’état du fichier
  2. charger/décharger la ruche sans modification
  3. recharger la ruche, énumérer des clés et décharger la ruche

et observer les modifications sur la “ruche”

Etape 1 – Etat initial :

  1. La date de dernière modification du fichier est le 5/18/2017 3:28 PM (18 mai)
  2. La date de dernière réorganisation stockée dans le fichier est le 5/18/2017 3:28PM

Etape 2 – Chargement/déchargement de la ruche sans aucun accès à des clés (via les commandes reg load , reg unload ) :

  1. La date de dernière modification du fichier ne change pas
  2. La date de dernière réorganisation stockée dans le fichier change et devient 6/1/2017 3:21 PM (1 juin)
  3. Nous constatons également que la valeur LastRun dans HKLM\System\CurrentControlSet\Control\SessionManager\Configuration Manager\Defrag indique bien qu’une défragmentation a eu lieu.
  4. Si nous comparons le fichier avec une copie de l’état initial, nous constatons que 3 cellules sont devenues froides ( 02 => 00). On pourrait également vérifier que les autres cellules sont toutes froides (valeur 0 à l’offset 8 après la signature 6e 6b 20 00)

Etape 3 – Nouveau chargement avec l’outil regedit puis énumérations de quelques clés et enfin déchargement de la ruche

  1. La date de dernière modification du ficher change : 6/1/2017 3/51 PM
  2. Pas de réorganisation car la ruche a déjà été réorganisée récemment et reste au : 6/1/2017 3:21 PM (1 juin)
  3. Les cellules accédées sont marquées comme “chaudes” (00 ==> 02 )

 

Conclusion :  si un composant effectue un “scan” en lecture de certaines ruches, depuis Windows  Seerver 2012,  ce scan peut perturber la prise en compte de vos stratégies de purge des profils utilisateurs.

 

 

 

Réparation d’un Storage Space – Les étapes à ne pas manquer

$
0
0

Aujourd’hui, nous allons faire la réparation d’un storage pool.

Le but de cet article n’est pas d’expliquer le fonctionnement des Storage Pool mais de voir un peu les outils à notre disposition pour faire une réparation, et dans quel ordre les employer.

De nombreux blogs décrivent déjà les Storage Pool de façon très détaillée, mais nous allons revoir quelques notions avant d’aller plus loin :

  • Storage Pool : Le groupe de disques physiques qu’on met en commun
  • Space : Un disque virtuel créé à partir du Storage Pool. Il peut y avoir 3 types de Spaces : Simple, Mirror (chaque bloc pouvant être disponible en 2 ou 3 exemplaires) et Parity (Raid-5)
  • Le mode d’usage des disques physiques : Automatic, Manual et Hot Spare. Il en existe d’autres, mais ce n’est pas le but de cet article.

Vous trouverez d’avantage d’informations sur https://technet.microsoft.com/en-us/library/hh831739(v=ws.11).aspx

La plupart des utilisateurs construisent leur storage pool en ajoutant les disques physiques en mode d’usage Automatic, mais on peut ajouter les disques en mode d’usage Manuel et Hot Spare. Le mode Hot Spare, comme son nom l’indique, fait en sorte que ce disque ne sera pas utilisé quand on créera un disque virtuel (ou space). Le mode d’usage Manual permet de contrôler la taille des blocs et les disques physiques qui seront utilisés par le disque virtuel que l’on va créer, entre autre.

En cas de panne, le mode Automatic fonctionne parfaitement, mais le mode Manual demande quelques actions à mener dans le bon sens, et c’est ce que nous allons voir.

ENVIRONNEMENT

Supposons que nous avons un pool de 5 disques en usage Manual sur lequel nous avons créé 3 disques virtuels en mirroir

On peut détailler toutes ces configurations en powershell également :

Lister les Storage Pool

PS C:\> Get-StoragePool
FriendlyName      OperationalStatus      HealthStatus        IsPrimordial    IsReadOnly
------------      -----------------      ------------        ------------    ---------
Primordial        OK                     Healthy             True            False
OnePool           OK                     Healthy             False           False

Lister les disques physiques appartenant à un Storage Pool

PS C:\> Get-StoragePool -FriendlyName 'OnePool' | Get-PhysicalDisk
FriendlyName      CanPool                OperationalStatus   HealthStatus    Usage             Size
------------      -------                -----------------   ------------    -----             ----
PhysicalDisk4     False                  OK                  Healthy         Manual-Select     126.25 GB
PhysicalDisk1     False                  OK                  Healthy         Manual-Select     126.25 GB
PhysicalDisk5     False                  OK                  Healthy         Manual-Select     126.25 GB
PhysicalDisk2     False                  OK                  Healthy         Manual-Select     126.25 GB
PhysicalDisk3     False                  OK                  Healthy         Manual-Select     126.25 GB

Lister les disques virtuels créés dans un Storage Pool

PS C:\> Get-StoragePool -FriendlyName 'OnePool' | Get-VirtualDisk
FriendlyName      ResiliencySettingName  OperationalStatus   HealthStatus    IsManualAttach    Size
------------      ---------------------  -----------------   ------------    --------------    ----
Mirror-1          Mirror                 OK                  Healthy         False             100 GB
Mirror-2          Mirror                 OK                  Healthy         False             50 GB
Mirror-3          Mirror                 OK                  Healthy         False             162 GB

Et réciproquement, trouver de quel Storage Pool un disque virtuel est issue

PS C:\> Get-VirtualDisk -FriendlyName 'Mirror-1' | Get-StoragePool 
FriendlyName      OperationalStatus      HealthStatus        IsPrimordial    IsReadOnly
------------      -----------------      ------------        ------------    ----------
OnePool           OK                     Healthy             False           False

Et enfin, lister les disques physiques participant au disque virtuel

PS C:\> Get-VirtualDisk -FriendlyName 'Mirror-1' | Get-PhysicalDisk
FriendlyName      CanPool                OperationalStatus   HealthStatus    Usage             Size
------------      -------                -----------------   ------------    -----             ----
PhysicalDisk4     False                  OK                  Healthy         Manual-Select     126.25 GB
PhysicalDisk1     False                  OK                  Healthy         Manual-Select     126.25 GB
PhysicalDisk5     False                  OK                  Healthy         Manual-Select     126.25 GB
PhysicalDisk2     False                  OK                  Healthy         Manual-Select     126.25 GB
PhysicalDisk3     False                  OK                  Healthy         Manual-Select     126.25 GB

On trouvera aussi d’autres commandes dans le même scope mais dont le but est de créer, modifier, supprimer. Elles sont bien documentées dans technet.

LA PANNE

Supposons maintenant qu’un des disques a eu un problème matériel et a été supprimé du SAN, par exemple. Le Server Manager devrait présenter une interface telle que:

On note que le Storage Pool OnePool est en état Degraded

PS C:\> Get-StoragePool -FriendlyName 'OnePool'
FriendlyName      OperationalStatus      HealthStatus        IsPrimordial    IsReadOnly
------------      -----------------      ------------        ------------    ----------
OnePool           Degraded               Warning             False           False

En détaillant les disques physiques du pool on retrouve un peu plus d’informations :

PS C:\> Get-StoragePool -FriendlyName 'OnePool' | Get-PhysicalDisk
FriendlyName      CanPool                OperationalStatus   HealthStatus    Usage             Size
------------      -------                -----------------   ------------    -----             ----
PhysicalDisk-1    False                  Lost Communication  Warning         Manual-Select     126.25 GB
PhysicalDisk1     False                  OK                  Healthy         Manual-Select     126.25 GB
PhysicalDisk5     False                  OK                  Healthy         Manual-Select     126.25 GB
PhysicalDisk2     False                  OK                  Healthy         Manual-Select     126.25 GB
PhysicalDisk3     False                  OK                  Healthy         Manual-Select     126.25 GB

On observe au passage que le disque désormais manquant a changé de FriendlyName : Il est passé de PhysicalDisk4 à PhysicalDisk-1.

De même tous les disques virtuels qui avaient des données sur ce disque physique passent en statut Incomplete, on peut le voir par l’interface graphique, et en commandes powershell.

PS C:\> Get-VirtualDisk -FriendlyName 'Mirror-1'
FriendlyName      ResiliencySettingName  OperationalStatus   HealthStatus    IsManualAttach     Size
------------      ---------------------  -----------------   ------------    --------------     ----
Mirror-1          Mirror                 Incomplete          Warning         False              100 GB

On peut également voir le disque physique en faute dans le disque virtuel par l’interface graphique (notre cas est trivial) en faisant un click-droit Properties sur le disque virtuel:

LA REPARATION

PREMIERE ETAPE : Passer le disque physique en mode Retired

Quand un disque physique est passé en mode Retired, il cesse de recevoir de nouvelles données, et les données ne seront écrites que sur les disques qui restent disponibles. C’est la première chose à faire avant de supprimer un disque, et cette opération se fait en Powershell.

Il y a plusieurs façons de sélectionner le disque : Par son FriendlyName, par son HealthStatut, etc. Dans notre cas, on va le faire par FriendlyName

PS C:\> Get-PhysicalDisk -FriendlyName 'PhysicalDisk-1' | Set-PhysicalDisk -Usage Retired
PS C:\>

Et on peut voir le statut modifié dans l’interface graphique

Et en Powershell

PS C:\> Get-PhysicalDisk -FriendlyName 'PhysicalDisk-1'
FriendlyName      CanPool                OperationalStatus   HealthStatus    Usage              Size
------------      -------                -----------------   ------------    -----              ----
PhysicalDisk-1    False                  Lost Communication  Warning         Retired            126.25 GB

DEUXIEME ETAPE : Ajouter un disque de remplacement

Avant de faire une réparation il faut s’assurer qu’elle puisse être faite. Si les disques virtuels n’utilisaient pas toute la place, ça se ferait mais la plupart du temps, il n’y a plus de place disponible dans le Storage Pool : On ajoute donc un disque physique au storage pool en faisant un click droit sur le pool et Add Physical Disk… pour sélectionner un disque au préalable déjà disponible sur le serveur et initialisé en GPT.

TROISIEME ETAPE : La réparation ?

On pourrait légitimement penser qu’une réparation devrait être faisable à ce moment-là.

Allons-y par l’interface graphique. Click droit sur le disque virtuel Repair Virtual Disk

Il semble ne rien se passer, allons-y par Powershell

PS C:\> Get-VirtualDisk -FriendlyName 'Mirror-1' | Repair-VirtualDisk -AsJob
Id                Name                   PSJobTypeName   State         HasMoreData     Location             Command
--                ----                   -------------   -----         -----------     --------             -------
99                CimJob47               CimJob          Running       True            WIN-CCQIEGC6GQS      Repair-VirtualDisk -AsJob

PS C:\> get-job -Name 'CimJob47'
Id                Name                   PSJobTypeName   State         HasMoreData     Location             Command
--                ----                   -------------   -----         -----------     --------             -------
99                CimJob47               CimJob          Failed        True            WIN-CCQIEGC6GQS      Repair-VirtualDisk -AsJob

Le job est en erreur sans plus de détails. Il faut malheureusement activer le tracing de spaceport et s’appuyer sur de outils internes pour exploiter ce tracing, mais en substance on retrouvera cette séquence :

Enter SpIoctlRepairSpace
Info  SpIoctlRepairSpace: Tagging space e7393ab7-5050-11e7-80c2-00155d011310 in pool e7393a8e-5050-11e7-80c2-00155d011310 for repair
Enter SpRepairPoolCallback
Info  SpRepairPoolCallback: Repairing space e7393ab7-5050-11e7-80c2-00155d011310 in pool e7393a8e-5050-11e7-80c2-00155d011310
Exit  SpRepairPoolCallback: Status = STATUS_SUCCESS
Error SpIoctlRepairSpace: Status = NTSTATUS=C0000461

Le code C0000461 signifie STATUS_DISK_RESOURCES_EXHAUSTED.

Ce tracing ne servira effectivement qu’aux gens du support (tracing et outils de traduction purement internes), mais il y a une autre façon de s’y retrouver en se rappelant que tout le storage pool est configuré comme Manual.

Resources Exhausted

“RESOURCES_EXHAUSTED” signifie qu’il n’y a pas de ressources suffisantes sur le disque pour faire la réparation. On parle bien ici d’un disque et non d’un pool, donc du disque virtuel. On ne parle pas du Storage Pool.

Souvenez-vous : Le disque virtuel est configuré pour utiliser 5 disques physiques et tous les disques physiques sont exploités au maximum. Par ailleurs, l’un des disques physiques est absent (l’anciennement PhysicalDisk4 renommé en PhysicalDisk-1). Il manque donc de la place dans le disque virtuel pour faire la réparation, car pour l’instant : On ne lui a pas dit qu’il pouvait utiliser le nouveau disque physique que nous venons d’ajouter (tout est en Manuel)

PS C:\> Get-VirtualDisk -FriendlyName 'Mirror-1' | Get-PhysicalDisk
FriendlyName      CanPool                OperationalStatus   HealthStatus    Usage             Size
------------      -------                -----------------   ------------    -----             ----
PhysicalDisk-1    False                  Lost Communication  Warning         Retired           126.25 GB
PhysicalDisk1     False                  OK                  Healthy         Manual-Select     126.25 GB
PhysicalDisk5     False                  OK                  Healthy         Manual-Select     126.25 GB
PhysicalDisk2     False                  OK                  Healthy         Manual-Select     126.25 GB
PhysicalDisk3     False                  OK                  Healthy         Manual-Select     126.25 GB

QUATRIEME ETAPE : Ajouter des ressources aux disques virtuels

Nous configurons les disques virtuels pour pouvoir utiliser le nouveau disque physique que nous venons d’ajouter.

Soit par l’interface graphique en faisant un click droit “Extend Virtual Disk” sur les disques virtuels et en ajoutant le nouveau disque sans changer la taille.

Soit par powershell en utilisant la commande Add-PhysicalDisk: Auquel cas on pourra faire une boucle ou lancer chaque commande indépendemment.

PS C:\> $PhysicalDiskToAdd = Get-PhysicalDisk -FriendlyName 'PhysicalDisk6'
PS C:\> Add-PhysicalDisk -PhysicalDisks $PhysicalDiskToAdd -VirtualDiskFriendlyName 'Mirror-1'
PS C:\> Add-PhysicalDisk -PhysicalDisks $PhysicalDiskToAdd -VirtualDiskFriendlyName 'Mirror-2'
PS C:\> Add-PhysicalDisk -PhysicalDisks $PhysicalDiskToAdd -VirtualDiskFriendlyName 'Mirror-3'
PS C:\>

Note: $PhysicalToAdd peut très bien être une collection de disques également.

Toujours est-il que nos disques virtuels ont désormais le droit d’utiliser le nouveau disque physique, car on peut maintenant voir le PhysicalDisk6 dans la liste des ressources disponibles au disque virtuel

PS C:\> Get-VirtualDisk -FriendlyName 'Mirror-1' | Get-PhysicalDisk
FriendlyName      CanPool                OperationalStatus   HealthStatus    Usage             Size
------------      -------                -----------------   ------------    -----             ----
PhysicalDisk-1    False                  Lost Communication  Warning         Retired           126.25 GB
PhysicalDisk1     False                  OK                  Healthy         Manual-Select     126.25 GB
PhysicalDisk6     False                  OK                  Healthy         Manual-Select     126.25 GB
PhysicalDisk5     False                  OK                  Healthy         Manual-Select     126.25 GB
PhysicalDisk2     False                  OK                  Healthy         Manual-Select     126.25 GB
PhysicalDisk3     False                  OK                  Healthy         Manual-Select     126.25 GB

CINQUIEME ETAPE : La réparation

On peut désormais soit faire un Repair dans l’interface graphique, soit le faire en commande powerhsell:

PS C:\> Get-VirtualDisk -HealthStatus Warning | Repair-VirtualDisk -AsJob
Id     Name           PSJobTypeName   State         HasMoreData     Location             Command
--     ----           -------------   -----         -----------     --------             -------
178    CimJob87       CimJob          Running       True            WIN-CCQIEGC6GQS      Repair-VirtualDisk -AsJob

PS C:\> Get-job CimJob87
Id     Name           PSJobTypeName   State         HasMoreData     Location             Command
--     ----           -------------   -----         -----------     --------             -------
178    CimJob87       CimJob          Running       True            WIN-CCQIEGC6GQS      Repair-VirtualDisk -AsJob

Et au bout d’un moment le job se termine correctement.

PS C:\> Get-job CimJob87
Id     Name           PSJobTypeName   State         HasMoreData     Location             Command
--     ----           -------------   -----         -----------     --------             -------
178    CimJob87        CimJob         Completed     True            WIN-CCQIEGC6GQS      Repair-VirtualDisk -AsJob

Les disques virtuels sont maintenant OK, mais le pool est toujours en Warning / Degraded.

SIXIEME ETAPE : Le nettoyage

On commence par supprimer le disque manquant de la liste des ressources disponibles de chaque disque virtuel car pour l’instant ils sont toujours configurés pour utiliser le disque manquant (rien n’est Automatic quand on est en Manual)

Ca doit se faire en PowerShell avec la commande Remove-PhysicalDisk

PS C:\> $PhysicalDiskToRemove = Get-PhysicalDisk -FriendlyName 'PhysicalDisk-1'
PS C:\> Remove-PhysicalDisk -PhysicalDisks $PhysicalDiskToRemove -VirtualDiskFriendlyName 'Mirror-1'
PS C:\> Remove-PhysicalDisk -PhysicalDisks $PhysicalDiskToRemove -VirtualDiskFriendlyName 'Mirror-2'
PS C:\> Remove-PhysicalDisk -PhysicalDisks $PhysicalDiskToRemove -VirtualDiskFriendlyName 'Mirror-3'

Même remarque que pour la commande Add-PhysicalDisk : On peut fournir une collection de disques, et il y a moyen de faire tout cela dans une boucle.
On peut voir que le disque physique manquant ne fait plus partie des ressources disponibles pour les disques virtuels

PS C:\> Get-VirtualDisk -FriendlyName 'Mirror-1' | Get-PhysicalDisk
FriendlyName      CanPool                OperationalStatus   HealthStatus    Usage             Size
------------      -------                -----------------   ------------    -----             ----
PhysicalDisk1     False                  OK                  Healthy         Manual-Select     126.25 GB
PhysicalDisk6     False                  OK                  Healthy         Manual-Select     126.25 GB
PhysicalDisk5     False                  OK                  Healthy         Manual-Select     126.25 GB
PhysicalDisk2     False                  OK                  Healthy         Manual-Select     126.25 GB
PhysicalDisk3     False                  OK                  Healthy         Manual-Select     126.25 GB

PS C:\> Get-VirtualDisk -FriendlyName 'Mirror-2' | Get-PhysicalDisk
FriendlyName      CanPool                OperationalStatus   HealthStatus    Usage             Size
------------      -------                -----------------   ------------    -----             ----
PhysicalDisk1     False                  OK                  Healthy         Manual-Select     126.25 GB
PhysicalDisk6     False                  OK                  Healthy         Manual-Select     126.25 GB
PhysicalDisk5     False                  OK                  Healthy         Manual-Select     126.25 GB
PhysicalDisk2     False                  OK                  Healthy         Manual-Select     126.25 GB
PhysicalDisk3     False                  OK                  Healthy         Manual-Select     126.25 GB 

PS C:\> Get-VirtualDisk -FriendlyName 'Mirror-3' | Get-PhysicalDisk
FriendlyName      CanPool                OperationalStatus   HealthStatus    Usage             Size
------------      -------                -----------------   ------------    -----             ----
PhysicalDisk1     False                  OK                  Healthy         Manual-Select     126.25 GB
PhysicalDisk6     False                  OK                  Healthy         Manual-Select     126.25 GB
PhysicalDisk5     False                  OK                  Healthy         Manual-Select     126.25 GB
PhysicalDisk2     False                  OK                  Healthy         Manual-Select     126.25 GB
PhysicalDisk3     False                  OK                  Healthy         Manual-Select     126.25 GB
 

On peut désormais supprimer le disque physique du pool
Soit par un clic droit “Remove Disk” sur le disque.

Soit par la commande Powershell Remove-PhysicalDisk

PS C:\> $PhysicalDiskToRemove = Get-PhysicalDisk -FriendlyName 'PhysicalDisk-1'
PS C:\> Remove-PhysicalDisk -PhysicalDisks $PhysicalDiskToRemove -StoragePoolFriendlyName 'OnePool'
PS C:\>

Et là, on est bien.

EN CONCLUSION

Un storage pool configuré en Manual nécessite de réaliser des opérations qui sont habituellement exécutées de façon transparente en Automatic

Les étapes à suivre sont les suivantes :

  1. Passer le disque manquant en mode Retired
  2. Ajouter un disque physique au pool
  3. Ajouter le nouveau disque physique aux ressources utilisables par les disques virtuels
  4. Lancer la réparation des disques virtuels
  5. Supprimer le disque physique des ressources utilisables par les disques virtuels
  6. Supprimer le disque physique du pool

Serge Gourraud
55 AA

How to create a RAM DISK in Windows Server

$
0
0

Hi, this is Mounia Rachidi, a Support Escalation Engineer on the Windows team. Today's blog will cover the creation of a RAM DISK.

A RAM DISK is a virtual disk entirely stored in memory and accessible from any application. As the memory is much faster than physical hard disks, storing temporary data on an in-memory disk achieves a higher performance.

Furthermore; RAM Disks can be used to test the throughput of a solution while removing the spinning disks as a bottleneck.

As user mode applications can't access physical memory without the help of a driver, the implementation of RAMDisk in Windows relies on iSCSI driver.

To set it up, you basically need to ensure that the server is running the iSCSI Target role, create a target and map the created Ramdisk to that target.

 

 

 

 

While setting a RAMDISK can be possible on a member cluster, this configuration is not recommended or supported while the cluster service is up.

Step-By-Step Walk-Through

Great! now that you have an understanding of RAMDISK concept, let's create one…

First, you need to add the iSCSI Target Server role:

 


Adjust the Firewall rules:

  1. Press Windows Logo+R, type firewall.cpl and press Enter to open the Windows Firewall Control Panel tool.
  2. Click Allow an app or feature through Windows Firewall on the left.
  3. Scroll down and check iSCSI Service. Check Domain, Private and Public. Click OK to save the settings.

Make sure the Iscsi Target allows the LoopBack mode:

Add the registry value if not present :

HKLM\Software\Microsoft\iSCSI Target

Value Name: AllowLoopBack

Type: REG_DWORD

Value: 1

Create a virtual disk as a Ramdisk:

New-IscsiVirtualDisk -Path "ramdisk:testRAM.vhdx" -Size 1GB

Create a target iSCSI:

New-IscsiServerTarget -TargetName targetRAM -InitiatorIds @("IPAddress:X.X.X.")

Map the Ramdisk to the iSCSI target:

Add-IscsiVirtualDiskTargetMapping -TargetName targetRAM -DevicePath "ramdisk:testRAM.vhdx"

Next, launch the iSCSI Initiator for the Server Manager console:

Connect to the iSCSI target:

In the Target field, enter the IP address specified in step 5 and click Quick Connect to detect the targets.

Next, select the row that corresponds to the right target and click Connect. The disk will subsequently be available in the disk management console.

Nouvelle release du MS16-087 dans le rollup de sécurité de Septembre 2017

$
0
0

Vous avez certainement déjà sur votre parc la mise à jour de sécurité de Juillet 2016 le MS16-087 qui permet d'adresse la vulnérabilité CVE-2016-3238.

Pour éviter que des attaquants puissent utiliser le mécanise d'installation des pilotes d'impressions pour nuire ; le MS16-087 apporte une mise à jour des composants d'impressions plus restrictive vis-à-vis des pilotes d'impressions. Ces derniers doivent désormais être signés et packagés (notion de package aware qui date de Vista).

Toutefois, beaucoup de nos clients utilisent encore des versions de pilotes d'impressions qui ne satisfont pas les critères de sécurités cités plus haut. Il a fallu introduire une notion de liste de serveurs approuvés (liste blanche – white liste) pour débloquer la situation. Le contournement a été apporté dans une mise à jour de type non sécurité :

Windows 10 1511  KB3192441
Windows 10 1607  KB3194798
Windows 7 and Windows Server 2008 R2  KB3192403
Windows Server 2012  KB3192406
Windows 8.1 and Windows Server 2012 R2  KB3192404 

La nouveauté est qu'à partir de ce mois-ci, le contournement est disponible dans le rollup de sécurité :

Windows 8.1 and Windows Server 2012 R2  https://support.microsoft.com/fr-fr/help/4038792/windows-8-1-update-kb4038792

Windows 7 and Windows Server 2008 https://support.microsoft.com/en-us/help/4038777/windows-7-update-kb4038777

Windows 8 and Windows Server 2012  https://support.microsoft.com/en-us/help/4038786

Pour rappel, vous trouverez ci-dessous les problèmes rencontrés, en l'absence du contournement, quand les pilotes d'impressions ne respectent pas les critères de sécurité.

Scénario I :

Pour les pilotes d'impression non packagés, le message d'avertissement suivant peut s'afficher lorsque l'utilisateur tente de se connecter à une imprimante : "Faites-vous confiance à cette imprimante ?"

Scénario II

Comme précisé, les pilotes d'impressions doivent être signés avec un certificat approuvé. Le processus de vérification contrôle si tous les fichiers inclus dans le dossier d'installation disposent d'un fichier hash correspondant dans le catalogue. En cas d'échec, le pilote est considéré comme non fiable. Dans ce cas, l'installation du pilote est bloquée, et le message d'avertissement suivant s'affiche : "Une stratégie est en application sur votre ordinateur et vous empêche de vous connecter à cette file d'attente d'impression. Contacter votre administrateur système"

Windows 10 – How to configure file associations for IT Pros?

$
0
0

Hello, my name is Ismaël Limbada and I am a Support Escalation Engineer for Windows Core Team. This blog post is about file association configuration in Windows 10. After reading it, you will be able to configure file associations in Windows 10 and avoid this notification: An app default was reset.

All steps described in this blog post have been tested on following Windows 10 versions:

  • Windows 10 1709
  • Windows 10 1703
  • Windows 10 1607

Configuring file association prior Windows 10

There were different ways and guidance to set default program prior to Windows 10 (see Managing Default Applications).

Before Windows 10, an application could check default apps, ask for user consent and set default app programmatically using Windows API.

But some programs skip the user consent and set the app defaults into the registry. The main requirement for default file association is often forgotten: the end-user is in control.

Now in Windows 10 checks if registry file extension keys have not been modified to prevent file association hijacking.

File association changes in Windows 10

The way that default file associations work changed in Windows 10.

There is a new UI for the end-user. This new way puts the user in control with a new file association notification.

This notification will be displayed:

  • On the first launch of a file extension, if multiples programs are registered for handling that file extension.
  • Each time a new application registers a file extension, except if the Always use this app to open .xxx files is checked.

If an application used Windows API to set default apps, the user will receive the following notification:

For more information about these changes : https://blogs.windows.com/windowsexperience/2015/05/20/announcing-windows-10-insider-preview-build-10122-for-pcs/

You will find some explanation on The Old New Thing blog: Why do my PDF file associations get reset every time I restart?

Windows 10: An app default was reset

But what happens if an application is not using Windows API and writes some stuff and hijacks user preferences?

Now,Windows 10 detects that the registry is corrupted and will reset the default program for this file extension. Additionally, the end-user will receive this notification: An App default was reset. These change is documented in KB4001770: Reset app default when a registry setting is deleted or corrupted and streamlined notification about the corruption.

In Windows 10, if you are using applications or scripts that tamper registry entries to configure default apps associations, you will get app reset notifications.

How to configure file association in Windows 10?

It's possible for IT Pro to configure or force default association using supported methods.

The best way to do it is to set up a reference computer, install applications, configure default programs and use Dism to export/import the custom default app associations or use a group policy.

  1. Set up a reference computer
  2. Install applications
  3. Go to Control Panel\All Control Panel Items\Default Programs and configure default apps associations. In Windows 10 1709, this control panel item is now in Settings app.

    Let's try to configure Internet Explorer as the default browser

    Choose Internet Explorer

    Internet Explorer is now the default web browser

  4. Export/import the custom default app association with dism.exe
    Note that you need administrator rights to use dism.exe. And to export properly the associations use the same account used in step 3, otherwise you will get a malformed XML file.
  1. Dism.exe /online /export-defaultappassociations:C:\temp\CustomFileAssoc.xml

PS C:\Windows\system32> dism /online /export-defaultappassociations:"C:\Temp\IE-DefaultBrowser.xml"

  1. Open the xml file and check if everything looks good.

Usually at this step you will be tempted to delete other lines because you simply don't care about them and get a file like this:

FTA-IE-Only.xml

VERY IMPORTANT: If you want to import your file with DISM.exe, DO NOT delete any file associations entries!
A missing entry will trigger the App default reset notification and you will get a notification storm at the first logon.

Refresh your XML on a regular basis

As some recommended applications can manage more extensions with each new Windows 10 version available, it's a good practice to refresh your XML. For example, in Windows 10 1703, Microsoft Edge registers the epub extension. If you're using an XML file from Windows 10 1607, epub is missing. As a result, you will get an app reset notification for epub.

Tips for building your XML file

  • Manually editing the file could result in a non-valid XML file. Ensure that your XML file is valid. Opening XML file in the old Internet Explorer is a good idea to check if the XML is valid. You can try XML Notepad to edit/validate XML files.
  • If you do not see your file extension in XML file, go back to Control Panel\All Control Panel Items\Default Programs and configure default apps associations, select file extension, click on Change Program and confirm the program in the dialog box. Then, export again you're XML file.

Deploy your custom XML

Now it's time to apply your XML file. You have two options:

  • Set up file association in your Windows 10 image. File associations will be configured for new users' profiles. Existing profiles are untouched. Users can change file associations.
  • Configure a policy for your domain-joined computer: file association will be configured at each logon. User will be able to change file association, but at the next logon file association will be configured using XML file. This policy works only for domain-joined computer.

Configure the XML file for your Windows 10 reference image:

Dism.exe /online /import-defaultappassociations:c:\temp\CustomFileAssoc.xml

Your file will be copied in \Windows\System32 with the following name OEMDefaultAssociations.xml

Configure the XML file for your domain-joined computer

Configure the following policy Set a default associations configuration file located in Computer\Policies\Administrative Templates\Windows Components\File Explorer.

If this group policy is enabled and the client machine is domain-joined, the file will be processed, and default associations will be applied at logon time.

Note: this policy will not prevent user to change the file association. But at each logon the default association configured in XML file will be applied.

How to force only a set of file associations?

Some IT Pros want to force only some file associations and let users in control for others file associations. For example, they want to configure Internet Explorer as default for HTTP/HTTPS only for HR people.

So, they removed everything in the XML file except Internet Explorer entries. As previously seen, removing entries in XML file could result in app reset notifications.

But don't panic, there is a solution to do it in your Windows 10 reference image.

You just need to have two XML files, one for configuring the defaults and another one to force file association.

The main XML, CustomDefaultAssoc.xml must contain all extensions. You need to import this file using:

Dism /online /import-defaultappassociations:C:\CustomDefaultAssoc.xml

The second XML, FTA-IE-Only.xml will contain only a set of file extensions. You need to use this XML file with the group policy Set a default associations configuration file.

 At the first logon, Explorer.exe will apply both XML.

The end user will have this results without any app reset notifications:

  • PDF files associated with Microsoft Reader.
  • HTM/HTML files associated with Internet Explorer.

OEMDefaultAssociations.xml contains the following lines:

IEOnly.xml contains the following lines:

Why I'm getting an app reset notification?

Raymond Chen talked about this problem. If a program is trying to set some registry keys, Explorer will detect it and the file association will be reset.

Stop using script or other pre-Windows 10 ways for configuring file association.

You can check the Microsoft-Windows-Shell-Core/AppDefaults event log for clues about file associations reset.

If you want to troubleshoot this, keep calm and run Procmon
😉

You should be able to track which application is hijacking your file associations. Once you identified the bad application, the best way to solve this, is to use a more recent version, or contact your vendor.

Why I'm getting the User Choice notification even if I used an XML file?

You could get the following notification starting Windows 10 1703 when you choose an application as the default viewer instead using Microsoft Edge.

These notification windows are displayed only once if you're clicking on OK. It's because Microsoft Edge is detected as a new application.

If a new app is installed and is registered to an existing file extension or protocol you will get this notification.

If you want to get rid of these notifications, there is a group policy to hide these notifications:

Do not show the 'new application installed' notification

This policy removes the end-user notification for new application associations. These associations are based on file types (e.g. *.txt) or protocols (e.g. http:) If this group policy is enabled, no notifications will be shown

Group Policy Settings related to File Associations settings

You can find in the table below some group policies related to default file associations settings:

Policy Setting Name Policy Path
Do not reinitialize a pre-existing roamed user profile when it is loaded on a machine for the first time Windows Components\File Explorer
Turn off Internet File Association service System\Internet Communication Management\Internet Communication settings
Turn off access to the Store System\Internet Communication Management\Internet Communication settings
Do not show the 'new application installed' notification Windows Components\File Explorer
Set a default associations configuration file Windows Components\File Explorer

Bonus for Adobe Reader XI users

If you are still using Adobe Reader XI, you should get a new application to open PDF, as Adobe Reader XI is out of support.

With Adobe XI installer, you can get an app reset notification for PDF extensions and it will be reset to Microsoft Edge.

You should look at Adobe Reader documentation and launch the Adobe Reader 11 installation with the following command line:

AdbeRdr11010_en_US.exe /rs /sAll /msi EULA_ACCEPT=YES OWNERSHIP_STATE=0

With OWNERSHIP_STATE=0 Adobe Reader stops to change file association for PDF with an unsupported way.

Resources:

Viewing all 86 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>