Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
PowerToys inclut une implémentation microsoft Desired State Configuration (DSC) v3 via l’outil PowerToys.DSC.exe en ligne de commande, ce qui permet la gestion moderne de la configuration déclarative des PowerToys paramètres.
Aperçu
L’outil PowerToys.DSC.exe en ligne de commande pour PowerToys fournit :
- Outil de configuration autonome sans dépendances PowerShell
- Modules de ressources DSC individuels pour chaque PowerToys utilitaire
- Opérations DSC v3 standard : get, set, test, export, schema, manifest
- Génération de schéma JSON pour la validation
- Génération de manifeste DSC pour la découverte de ressources
- Intégration à WinGet et à d’autres outils d’orchestrateur
Disponible depuis :PowerToys v0.95.0
Prerequisites
-
PowerToys v0.95.0 ou version ultérieure : l’outil
PowerToys.DSC.exeest inclus à PowerToys partir de la version 0.95.0
Facultatif : Utilisation des outils d’orchestration
Si vous souhaitez utiliser des outils d’orchestration pour gérer la PowerToys configuration :
- WinGet v1.6.2631 ou version ultérieure : requis pour WinGet l’intégration des fichiers de configuration. Télécharger à partir de la WinGet page des sorties
-
Microsoft DSC (dsc.exe) v3.1.1 ou version ultérieure : requis pour l’utilisation Microsoft DSC de documents de configuration avec l’outil
dscen ligne de commande. Télécharger depuis la page des versions DSC
Note
Ces outils d’orchestration sont facultatifs. Vous pouvez utiliser PowerToys.DSC.exe directement sans WinGet ou dsc.exe pour la gestion de la configuration autonome.
Emplacement
L’exécutable PowerToys.DSC.exe est installé avec PowerToys:
-
Installation par utilisateur :
%LOCALAPPDATA%\PowerToys\PowerToys.DSC.exe -
Installation à l’échelle de l’ordinateur :
%ProgramFiles%\PowerToys\PowerToys.DSC.exe
Vous pouvez ajouter le PowerToys répertoire à votre PATH variable d’environnement pour faciliter l’accès ou utiliser le chemin complet de l’exécutable.
Usage
Microsoft DSC pour PowerToys prend en charge trois schémas d'utilisation :
1. Exécution directe de la ligne de commande
Exécutez des opérations DSC directement à l’aide de l’outil PowerToys.DSC.exe :
# Get current settings for a module
PowerToys.DSC.exe get --resource 'settings' --module Awake
# Set settings for a module
$input = '{"settings":{"properties":{"keepDisplayOn":true,"mode":1},"name":"Awake","version":"0.0.1"}}'
PowerToys.DSC.exe set --resource 'settings' --module Awake --input $input
# Test if settings match desired state
PowerToys.DSC.exe test --resource 'settings' --module Awake --input $input
2. Microsoft DSC Documents de configuration
Utilisez des documents de configuration standard Microsoft DSC pour définir les PowerToys paramètres :
# powertoys-config.dsc.yaml
$schema: https://aka.ms/dsc/schemas/v3/bundled/config/document.json
resources:
- name: Configure Awake
type: Microsoft.PowerToys/AwakeSettings
properties:
settings:
properties:
keepDisplayOn: true
mode: 1
name: Awake
version: 0.0.1
Appliquez la configuration à l’aide de l’interface dsc de ligne de commande (le cas échéant) ou par le biais WinGet de la configuration.
3. WinGet Intégration de la configuration
Intégrer la PowerToys configuration à l’installation WinGet du package :
# winget-powertoys.yaml
$schema: https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/2023/08/config/document.json
metadata:
winget:
processor: dscv3
resources:
- name: Install PowerToys
type: Microsoft.WinGet.DSC/WinGetPackage
properties:
id: Microsoft.PowerToys
source: winget
- name: Configure FancyZones
type: Microsoft.PowerToys/FancyZonesSettings
properties:
settings:
properties:
fancyzones_shiftDrag: true
fancyzones_mouseSwitch: true
name: FancyZones
version: 1.0
Appliquer avec WinGet:
winget configure winget-powertoys.yaml
Opérations courantes
Répertorier les modules pris en charge
Répertoriez tous les PowerToys utilitaires qui peuvent être configurés :
PowerToys.DSC.exe modules --resource 'settings'
Obtenir la configuration actuelle
Récupérez l’état actuel des paramètres d’un module :
# Get settings for a specific module
PowerToys.DSC.exe get --resource 'settings' --module FancyZones
# Format output for readability
PowerToys.DSC.exe get --resource 'settings' --module Awake | ConvertFrom-Json | ConvertTo-Json -Depth 10
Appliquer la configuration
Définissez la configuration souhaitée pour un module :
# Define desired configuration (using PowerShell)
$config = @{
settings = @{
properties = @{
fancyzones_shiftDrag = $true
fancyzones_mouseSwitch = $true
fancyzones_overrideSnapHotkeys = $true
}
name = "FancyZones"
version = "1.0"
}
} | ConvertTo-Json -Depth 10 -Compress
# Apply configuration
PowerToys.DSC.exe set --resource 'settings' --module FancyZones --input $config
Configuration de test
Vérifiez si les paramètres actuels correspondent à l’état souhaité :
$desired = @{
settings = @{
properties = @{
keepDisplayOn = $true
mode = 1
}
name = "Awake"
version = "0.0.1"
}
} | ConvertTo-Json -Depth 10 -Compress
# Test for drift
$result = PowerToys.DSC.exe test --resource 'settings' --module Awake --input $desired | ConvertFrom-Json
if ($result._inDesiredState) {
Write-Host "Configuration matches desired state"
} else {
Write-Host "Configuration has drifted"
}
Générer un schéma JSON
Obtenez le schéma JSON d’un module pour comprendre les propriétés disponibles :
# Get schema for a module
PowerToys.DSC.exe schema --resource 'settings' --module ColorPicker
# Format for readability
PowerToys.DSC.exe schema --resource 'settings' --module ColorPicker | ConvertFrom-Json | ConvertTo-Json -Depth 10
Générer des manifestes DSC
Créez des fichiers manifestes de ressources DSC :
# Generate manifest for a specific module
PowerToys.DSC.exe manifest --resource 'settings' --module Awake --outputDir C:\manifests
# Generate manifests for all modules
PowerToys.DSC.exe manifest --resource 'settings' --outputDir C:\manifests
# Print manifest to console
PowerToys.DSC.exe manifest --resource 'settings' --module FancyZones
Exemples de configuration
Exemple 1 : Configurer FancyZones
# fancyzones-config.dsc.yaml
$schema: https://aka.ms/dsc/schemas/v3/bundled/config/document.json
resources:
- name: Configure FancyZones window management
type: Microsoft.PowerToys/FancyZonesSettings
properties:
settings:
properties:
fancyzones_shiftDrag: true
fancyzones_mouseSwitch: false
fancyzones_overrideSnapHotkeys: true
fancyzones_displayOrWorkAreaChange_moveWindows: true
fancyzones_zoneSetChange_moveWindows: true
name: FancyZones
version: 1.0
Exemple 2 : Configurer plusieurs utilitaires
# multi-utility-config.dsc.yaml
$schema: https://aka.ms/dsc/schemas/v3/bundled/config/document.json
resources:
- name: Configure general app settings
type: Microsoft.PowerToys/AppSettings
properties:
settings:
properties:
Enabled:
Awake: true
FancyZones: true
PowerRename: true
ColorPicker: true
run_elevated: true
startup: true
name: App
version: 1.0
- name: Configure Awake
type: Microsoft.PowerToys/AwakeSettings
properties:
settings:
properties:
keepDisplayOn: true
mode: 1
name: Awake
version: 0.0.1
- name: Configure ColorPicker
type: Microsoft.PowerToys/ColorPickerSettings
properties:
settings:
properties:
changecursor: true
copiedcolorrepresentation: "HEX"
name: ColorPicker
version: 1.0
Exemple 3 : Installer et configurer avec WinGet
# complete-setup.yaml
$schema: https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/2023/08/config/document.json
metadata:
winget:
processor: dscv3
resources:
- name: Install PowerToys
type: Microsoft.WinGet.DSC/WinGetPackage
properties:
id: Microsoft.PowerToys
source: winget
ensure: Present
- name: Enable utilities
type: Microsoft.PowerToys/AppSettings
properties:
settings:
properties:
startup: true
theme: "dark"
name: App
version: 1.0
- name: Configure PowerToys Run
type: Microsoft.PowerToys/PowerLauncherSettings
properties:
settings:
properties:
maximum_number_of_results: 8
clear_input_on_launch: true
name: PowerLauncher
version: 1.0
Ressources disponibles
Microsoft DSC pour PowerToys fournir des types de ressources individuels pour chaque utilitaire. Le nommage du type de ressource suit le modèle : Microsoft.PowerToys/<UtilityName>Settings
Les ressources courantes sont les suivantes :
-
Microsoft.PowerToys/AppSettings- Paramètres généraux de l’application -
Microsoft.PowerToys/AlwaysOnTopSettings- Configuration Toujours au-dessus -
Microsoft.PowerToys/AwakeSettings- Paramètres d’éveil de veille -
Microsoft.PowerToys/ColorPickerSettings- Paramètres du sélecteur de couleurs -
Microsoft.PowerToys/FancyZonesSettings- Gestion des fenêtres FancyZones -
Microsoft.PowerToys/PowerLauncherSettings- PowerToys Paramètres d’exécution -
Microsoft.PowerToys/PowerRenameSettings- PowerRename : renommer en bloc - Et bien d’autres pour chaque PowerToys utilitaire
Pour obtenir la liste complète des ressources et de leurs propriétés, consultez la documentation du développeur.
Utilisation avancée
Configuration de la sauvegarde et de la restauration
Exportez toutes les configurations de module pour la sauvegarde :
# Get list of all modules
$modules = PowerToys.DSC.exe modules --resource 'settings'
# Export each module
$backup = @{}
foreach ($module in $modules) {
$config = PowerToys.DSC.exe export --resource 'settings' --module $module | ConvertFrom-Json
$backup[$module] = $config
}
# Save backup
$backup | ConvertTo-Json -Depth 10 | Out-File powertoys-backup.json
# Restore from backup
$restore = Get-Content powertoys-backup.json | ConvertFrom-Json
foreach ($module in $restore.PSObject.Properties.Name) {
$input = $restore.$module | ConvertTo-Json -Depth 10 -Compress
PowerToys.DSC.exe set --resource 'settings' --module $module --input $input
}
Migration à partir de PowerShell DSC
Si vous effectuez une migration à partir du module DSC PowerShell (Microsoft.PowerToys.Configure), notez les principales différences suivantes :
Nommage des ressources : PowerShell DSC utilise une ressource unique
PowerToysConfigureavec des propriétés imbriquées. Microsoft DSC utilise des ressources individuelles par utilitaire (par exemple,AwakeSettings,FancyZonesSettings)Format de propriété : Certains noms de propriété peuvent différer légèrement. Utilisez la
schemacommande pour afficher les propriétés disponibles pour chaque moduleStructure de configuration :Microsoft DSC utilise le
settingswrapper avecproperties,nameetversionles champsAucune commande PowerShell n’est requise :Microsoft DSC s’exécute autonome sans dépendances PowerShell
Voir aussi
Windows developer