Mardi, Décembre 21, 2021

Améliorer le prompt PowerShell

Script pour améliorer le prompt de PowerShell de Windows en 3 étapes:

  1. Création du fichier de profile si il n’existe pas
  2. puis configuration
  3. et enfin chargement du nouveau profile.
# Création du fichier si il n'est pas présent
if (Test-Path $PROFILE) {Write-Host "file present"} else {New-Item -Type File -path $PROFILE -Force}

# 
$content = '
function prompt
{
    # affichage de la version de PowerShell
    Write-Host ("PS " + $(($PSVersionTable).PSVersion)) -nonewline -foregroundcolor Magenta
    # affichage de la date et de l'heure
    Write-Host (" " + $(get-date) +" ") -nonewline -foregroundcolor Cyan
    # affichage de l'utilisateur
    Write-Host ($(whoami)) -nonewline -foregroundcolor Gray
    # affichage du caractere arobase @
    Write-Host ("@") -nonewline -foregroundcolor Red
    # affichage du hostname de la machine
    Write-Host ($(hostname) +" ") -nonewline -foregroundcolor Yellow
    # affichage du répertoire courant
    Write-Host ("$pwd`n>") -nonewline -foregroundcolor Green
    # retour à la ligne
    return " "
}
'

$content | Out-File $PROFILE

# on recharge le profile pour prendre en compte le nouveau profile

. $PROFILE

Jeudi, Décembre 9, 2021

Configurer les services en démarrage automatique

Récemment un service critique d’un de mes serveurs s’est arrêté. En voulant le redémarrer j’ai constaté que le service était en StartType à Disabled, autrement dit il n’y avait aucune chance pour que le service puisse être démarré même manuellement.

En investiguant 30 sec :) je me suis aperçu que plusieurs autres services essentiels, qui étaient encore démarrés, avaient potentiellement le même problème à savoir le StartType à Disabled.

Plutôt que de cliquer sur chaque service pour le reconfigurer via l’interface Services de Windows, j’ai préféré utiliser la ligne de commande. Et ça marche bien :)

Voici la commande utilisée pour reconfigurer tous les services impactés de mon serveur:

Get-Service | Where-Object {$_.DisplayName -like 'SolarWinds*' -and $_.StartType -like 'Disabled'} | Select Name | Set-Service -StartType Automatic

Ensuite pour confirmer que la manipulation a bien fonctionné

Get-Service | Where-Object {$_.DisplayName -like 'SolarWinds*' -and $_.StartType -like 'Disabled'} | Select Name

Et voilà maintenant les services sont configurés correctement !