Gérer le pagefile.sys
Passage en mode manuel
Avant toute action sur le fichier d’échange de Windows, il est nécessaire de passer sa gestion du mode automatique au mode manuel.
PS1 > $pagefile = Get-WmiObject Win32_ComputerSystem -EnableAllPrivileges
PS1 > $pagefile.AutomaticManagedPagefile = $false
PS1 > $pagefile.put() | Out-Null
Création du fichier d’échange
Nous pouvons alors créer un fichier d’échange sur la partition de notre choix. Ici nous le faisons sur le “E:” :
PS1 > $pfs = ([wmiclass]'Win32_PageFileSetting').CreateInstance()
PS1 > $pfs.Name = "E:\pagefile.sys"
PS1 > $pfs.InitialSize = 8192
PS1 > $pfs.MaximumSize = 16384
PS1 > $pfs.put()|Out-Null
Win32_PageFileSetting n’a pas de propriété Path (seulement Name). Et comme Get-WmiObject ne renvoie que les fichiers d’échange déjà existants, créer un nouveau pagefile sur un lecteur qui n’en a pas nécessite une nouvelle instance via CreateInstance(), pas un objet récupéré puis modifié.
Nous vérifions alors que le fichier d’échange a bien été créé :
PS1 > Gwmi win32_Pagefilesetting | Select Name, InitialSize, MaximumSize
Name InitialSize MaximumSize
---- ----------- -----------
E:\pagefile.sys 8192 16384
Supprimer un fichier d’échange
Il est possible qu’un fichier d’échange existe déjà sur le système d’exploitation en question. Nous pouvons le contrôler avec la même commande que précédemment.
PS1 > Gwmi win32_Pagefilesetting | Select Name, InitialSize, MaximumSize
Name InitialSize MaximumSize
---- ----------- -----------
E:\pagefile.sys 8192 16384
C:\pagefile.sys 8192 16384
Nous sélectionnons le fichier d’échange qui nous intéresse, à savoir ici celui qui est sur la partition “C:”. Puis nous le supprimons.
PS1 > $pfd =Gwmi win32_pagefilesetting | where{$_.caption -like 'C:*'}
PS C:\Windows\system32> $pfd.Delete()
Nous vérifions que le fichier a bien été supprimé.
PS1 > Gwmi win32_Pagefilesetting | Select Name, InitialSize, MaximumSize
Name InitialSize MaximumSize
---- ----------- -----------
E:\pagefile.sys 8192 16384