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 !

Mardi, Novembre 23, 2021

Configuration d’un proxy pour APT

Pour pouvoir utiliser les commandes apt sur une machine qui se connecte à internet via un proxy il faut configurer le fichier proxy.conf qui va indiquer quelle url la commande apt doit utiliser.

  1. Création du fichier proxy.conf
sudo nano /etc/apt/apt.conf.d/proxy.conf
  1. Ajout des lignes du proxy
Acquire::http::Proxy "http://user:password@proxy.server:port/";
Acquire::https::Proxy "http://user:password@proxy.server:port/";

A noter que les user et password peuvent-être optionnels en fonction de la configuration du proxy.

  1. Enregistrement du fichier de configuration Ctrl-o
  2. La configuration est prise en compte au prochain lancement de la commande apt

Vendredi, Novembre 19, 2021

Python - environnement virtuel

Environnement virtuel

python -m venv .venv

Activation sous Windows

.venv/Scripts/activate

Activation sous Linux

source .venv/Scripts/activate

Désactivation sous Windows

deactivate

Installation de module avec pip

pip install nom_du_module

Avec un proxy en utilisant —proxy, le user et le password sont à renseigner si besoin

pip install nom_du_module --proxy http://user:password@proxy:port 

Mise à jour des modules

On peut mettre à jour les modules y compris pip.

pip install --upgrade pip

Afficher les routes réseaux

Linux

Sous linux voici trois façons d’obtenir une informations similaire avec des commandes différentes

Commande route

[user@machine ~]$ route -ne
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         192.168.0.254  0.0.0.0         UG        0 0          0 ens192
192.168.0.0    0.0.0.0         255.255.255.0   U         0 0          0 ens192
  • -n affiche les adresses numériques sans résolution de nom
  • -e

Commande netstat

[user@machine ~]$ netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         192.168.0.254  0.0.0.0         UG        0 0          0 ens192
192.168.0.0    0.0.0.0         255.255.255.0   U         0 0          0 ens192

Commande ip

[user@machine ~]$ ip route list
default via 192.168.0.254 dev ens192 proto static metric 100
192.168.0.0/20 dev ens192 proto kernel scope link src 192.168.0.100 metric 100

Windows

Sous Windows voici deux façons d’afficher les route:

La façon historique avec la commande batch

route print

La version moderne en PowerShell. A noter que de base je trouve la version PowerShell moins utile :)

Get-NetRoute