Vue normale

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
À partir d’avant-hiermalekal.com

Créer, modifier, effacer des clés du registre Windows en PowerShell

Par : malekalmorte
30 mai 2024 à 09:56

PowerShell est le nouveau shell de Windows qui permet aux administrateurs de passer toutes sortes de commandes sur Windows 10 et Windows 11.
Il possède aussi des cmdlet pour gérer la base de registre Windows.
Ainsi vous pouvez sans problème manipuler le registre Windows en PowerShell.

Grâce à ce tutoriel, vous allez comprendre comment créer, modifier, effacer des clés du registre Windows en PowerShell et bien plus.

Créer, modifier, effacer des clés du registre Windows en Powershell

Créer, modifier, effacer des clés du registre Windows en PowerShell

Afin de ne pas rencontrer des problèmes d’autorisations et permissions sous la forme de message d’accès refusé lors de la modification du registre Windows en Powershell, ouvrez ce dernier en administrateur.
Pour cela :

Plus d’informations : Comment ouvrir PowerShell

  • Prenez l’habitude d’encadrer les clés du registre Windows avec des apostrophes car lorsqu’il y a un espace dedans, c’est obligatoire
  • Elle fonctionne avec les chemins HKLM, HCKU, etc

Lister une clé du registre Windows

Voici comment lister une clé du registre Windows en PowerShell.
On utilise Get-Item avec le caractère * pour lister en récursif.

Get-Item -Path 'HKCU:\SOFTWARE\SysInternals\*'
Comment lister une clé du registre Windows en PowerShell

Une autre méthode pour lister le contenu du registre Windows en PowerShell consiste à utiliser Get-childitem.
Tout d’abord on se positionne sur la clé à lister avec Set-location :

Set-location -path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\

Puis on utilise Get-childitem :

Get-childitem
Comment lister une clé du registre Windows en PowerShell

Faire une recherche dans le registre Windows

Pour recherche une clé dans le registre Windows PowerShell, on utilise Get-childitem.
Ici on recherche des valeurs Chrome dans HCKU (HKEY_CURRENT_USER) :

Get-childitem -path hkcu:\ -recurse -ErrorAction SilentlyContinue | Where-Object {$_.Name -like "*chrome*"}
Faire une recherche dans le registre Windows en Powershell

Créer une clé du registre Windows

Voici comment créer une nouvelle clé dans le registre Windows en PowerShell :

Get-Item -Path 'HKLM:\Software\Policies\Microsoft\Windows' | New-Item -Name 'Windows Search' -Force

Par exemple pour créer une valeur DWord en PowerShell, ici une clé AllowIndexingEncryptedStoresOrItems :

New-ItemProperty -Path 'HKLM:\Software\Policies\Microsoft\Windows\Windows Search' -Name 'AllowIndexingEncryptedStoresOrItems' -Value "1" -PropertyType DWORD -Force

Par exemple pour ajouter un programme au démarrage de Windows en modifiant la clé Run :

Set-Itemproperty -path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run' -Name 'MonProgramme' -value 'C:\Program Files\MonProgramme\monprogramme.exe'

Modifier une clé du registre Windows

Voici comment modifier une valeur de clé du registre Windows en PowerShell.
Ici on passe la valeur HideSCAVolume à 0 :

Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer -Name HideSCAVolume -Value 0 -Force

Effacer une clé du registre Windows

Par exemple pour supprimer la clé CleASupprimer du registre Windows en PowerShell :

Remove-Item -Path HKCU:\Software\CleASupprimer -Force -Verbose

Pour supprimer une valeur du registre Windows, on utilise le cmdlet Remove-ItemProperty :

Remove-ItemProperty -Path 'HKCU:\Software\CleASupprimer' -Name "ValeurASupprimer"

Renommer une clé du registre Windows

Le cmdlet Rename-Item permet de renommer une clé du registre Windows en Powershell :

Rename-Item -Path "HKCU:\test\cle1"  cle2

Pour modifier une valeur avec Rename-ItemProperty :

Rename-ItemProperty -Path "HKCU:\dummy\cle1" -Name "valeur1" -NewName "valeur2"

Lister des valeurs de clé de registre à distance avec PowerShell

Pour lister des valeurs du registre Windows sur le PC distant “NomduPC” en PowerShell, on utilise Invoke-Command :

Invoke-Command -ComputerName NomDuPC -ScriptBlock { Get-ItemProperty -Path 'HKCU:\Software\System' -Name WorkingDirectory}

L’article Créer, modifier, effacer des clés du registre Windows en PowerShell est apparu en premier sur malekal.com.

Interroger les journaux d’événements Windows avec PowerShell

Par : malekalmorte
24 mai 2024 à 08:45

Le journal des événements Windows est un outil important qui permet aux administrateurs de suivre les erreurs, les avertissements et les autres rapports d’information consignés par le système d’exploitation, ses composants ou ses programmes.
Vous pouvez utiliser le snap-in graphique MMC de l’Observateur d’événements (eventvwr.msc) pour afficher le journal des événements de Windows. Dans certains cas, il est beaucoup plus pratique d’utiliser PowerShell pour analyser les informations des journaux d’événements. Dans cet article, vous apprendrez à utiliser la cmdlet Get-WinEvent pour obtenir des informations à partir des journaux d’événements Windows.

Interroger les journaux d'événements Windows avec PowerShell

Get-WinEvent : Recherche dans les journaux d’événements à l’aide de PowerShell

Lorsque vous utilisez la commande sans aucun paramètre, PowerShell liste l’ensemble des journaux Windows.

Get-WinEvent

Pour filtrer sur un journal, utilisez l’option -LogName suivi du nom.

Get-WinEvent -LogName system
Get-WinEvent -LogName security

Autre exemple pour récupérer tous les évènements “disk” avec une erreur matériel (Microsoft-Windows-Kernel-WHEA) !

Get-WinEvent -LogName *disk*, Microsoft-Windows-Kernel-WHEA

De plus, vous pouvez restreindre le nombre d’évènements grâce l’option -MaxEvents.

Get-WinEvent -LogName Application -MaxEvents 30
Get-WinEvent : Recherche dans les journaux d'événements à l'aide de PowerShell

Par défaut, la commande affiche les colonnes Date de création, Id, niveau du message et message.
Pour afficher ou masquer des colonnes, utilisez la cmdlet Format-table comme ceci.

Get-WinEvent -LogName System | Format-Table Machinename, TimeCreated, Id, UserID, Message
Get-WinEvent : Recherche dans les journaux d'événements à l'aide de PowerShell

Filtrer sur les journaux

Nous l’avons vu il est possible de filtrer sur un journal.
Pour obtenir la liste complète, utilisez la commande suivante :

Get-WinEvent -ListLog *

Puis utilisez le paramètre LogName pour spécifier le journal des événements de Windows PowerShell

Get-WinEvent -LogName Microsoft-Windows-Winlogon/Operational
Get-WinEvent : Recherche dans les journaux d'événements à l'aide de PowerShell

Ou encore pour obtenir les événements d’erreur dont le nom contient une chaîne de caractères spécifiée :

Get-WinEvent -LogName *PowerShell*, Microsoft-Windows-Kernel-WHEA* | Group-Object -Property LevelDisplayName, LogName -NoElement Group-Object -Property LevelDisplayName, LogName -NoElement | Format-Table -AutoSize

Comment chercher des évènements dans les journaux Windows en PowerShell

L’argument FilterHashtable vous permet de filtrer en fonction des attributs d’événements suivants :

  • LogName
  • ProviderName
  • Path
  • Keywords (use 9007199254740992 to search for successful events and 4503599627370496 for failed ones)
  • ID
  • Level (1=FATAL, 2=ERROR, 3=Warning, 4=Information, 5=DEBUG, 6=TRACE, 0=Info)
  • StartTime
  • EndTime
  • UserID (user’s SID)
  • Data

Extraire les évènements d’un journal spécifique

Extraire tous les journaux d’événements de Windows Defender en direct :

Get-WinEvent -FilterHashtable @{logname="Microsoft-Windows-Windows Defender/Operational"}

Beaucoup d’évènements identiques sont répétés.

Comment chercher des évènements dans les journaux Windows en PowerShell

Pour compter le nombre d’évènement par leur EventID :

Get-WinEvent -LogName "Windows PowerShell"| Group-Object -Property Id -NoElement | Sort-Object -Property Count -Descending
Comment chercher des évènements dans les journaux Windows en PowerShell

Filtrer sur les niveaux (erreurs, avertissements, etc)

Vous pouvez avoir besoin de filtrer des évènements des journaux Windows.
Par exemple, si vous souhaitez obtenir des informations sur les erreurs et les avertissements des journaux Système et Application pour les dernières 24 heures, utilisez le code suivant :

$StartDate = (Get-Date) - (New-TimeSpan -Day 1)
Get-WinEvent Application,System | Where-Object {($_.LevelDisplayName -eq "Error" -or $_.LevelDisplayName -eq "Warning") -and ($_.TimeCreated -ge $StartDate )}

Filtrer sur un EventID, Chemin, Données, etc

Si vous avez besoin de trouver des événements par EventID, utilisez la commande suivante avec le paramètre FilterHashtable :

Get-WinEvent -FilterHashtable @{logname='System';id=1074}|ft TimeCreated,Id,Message

Filtrer sur le message

Si vous souhaitez chercher des évènements sur un mot clé, vous pouvez aussi utiliser cette syntaxe :

Get-WinEvent -FilterHashtable @{logname='System'}|Where {$_.Message -like "*erreur*"}
Comment chercher des évènements dans les journaux Windows en PowerShell

Exporter les évènements des journaux Windows

Vous pouvez très facilement exporter les journaux Windows grâce à l’option -FilterXML
Voici un exemple d’export en CSV :

$Events= Get-WinEvent -FilterXML $xmlQuery
$events| Export-CSV "C:\outils\FiltresJournauxWindows.csv" -NoTypeInformation -Encoding UTF8

Liens

L’article Interroger les journaux d’événements Windows avec PowerShell est apparu en premier sur malekal.com.

❌
❌