Sans partage, la connaissance n'est rien !
Fil de navigation
Configurer son profile sous Windows PowerShell & ISE
- Détails
- Écrit par Pierre JACQUOT
- Catégorie : Scripts
- Affichages : 118
Voici la procédure à suivre afin de créer son propre profile et charger la configuration que l’on souhaite à l’ouverture de PowerShell & ISE.
Procédure :
Identifiez le chemin de votre profile :
$PROFILE
Sous Windows 7, le résultat devrait être le suivant :
C:\Users\Pierre\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
Vérifier la présence du profile :
Test-Path $PROFILE
Si la réponse est False, il faut au préalable créer le fichier en tapant la commande suivante :
New-Item -Path $PROFILE -Type File -Force
Si la réponse est True, vous pouvez directement éditer et ajouter toutes les commandes que vous souhaitez exécuter à l’ouverture de PowerShell.
Voici la commande à taper pour recharger votre profile automatiquement :
./$PROFILE
Note :
Le profil que l'on vient de créer s'applique uniquement à la console PowerShell, un fichier de profil nommé profile.ps1
s'applique à la fois à PowerShell ISE ainsi qu'à la console PowerShell, tandis qu'un fichier de profil nommé Microsoft.PowerShellISE_profile.ps1
s'applique seulement à PowerShell ISE.
Screenshots :
Code du script :
<#
.SYNOPSIS
Customize your PowerShell Profile.
.DESCRIPTION
Customizing your PowerShell Profile in order to automatically load scripts when you start the PowerShell console.
.NOTES
File name : Microsoft.PowerShell_profile.ps1
Author : Pierre JACQUOT
Date : 28/10/2018
Version : 1.0
.LINK
Website : https://www.pierrejacquot.yo.fr
Reference : https://www.pierrejacquot.yo.fr/index.php/scripts/44-configurer-son-profile-sous-windows-powershell-ise
#>
Set-Location -Path "D:\"
New-Item alias:np -Value "C:\Windows\System32\notepad.exe" | Out-Null
New-Item alias:np++ -Value "C:\Program Files\Notepad++\notepad++.exe" | Out-Null
Clear-Host
Function Test-Administrator {
$Identity = [Security.Principal.WindowsIdentity]::GetCurrent()
$Principal = New-Object Security.Principal.WindowsPrincipal $Identity
$Principal.IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator)
}
Function Prompt {
[string]$Hostname = [Environment]::MachineName
[string]$Username = [Environment]::UserName
$Host.UI.RawUI.WindowTitle = "Windows PowerShell > Hostname : $Hostname > Username : $Username"
Write-Host "I " -NoNewline
Write-Host "$([char]9829) " -ForegroundColor Red -NoNewline
Write-Host "PS " -NoNewline
Write-Host "> " -ForegroundColor Yellow -NoNewline
Write-Host (Get-Date -UFormat "[%d-%m-%Y %H:%M:%S] ") -ForegroundColor Cyan -NoNewline
Write-Host "> " -ForegroundColor Yellow -NoNewline
Write-Host (Split-Path $PWD -Leaf) -ForegroundColor Green -NoNewline
If (Test-Administrator -eq $True) {
$Host.UI.RawUI.WindowTitle = "[Administrateur] - Windows PowerShell > Hostname : $Hostname > Username : $Username"
Write-Host " >" -ForegroundColor Yellow -NoNewline
Write-Host " [ADMIN]" -ForegroundColor Red -NoNewline
}
Write-Host " >_" -ForegroundColor Yellow -NoNewline
return " "
}
Cliquer ici pour télécharger le script.
Ouverture de mon GitHub
- Détails
- Écrit par Pierre JACQUOT
- Catégorie : News
- Affichages : 97
Aujourd'hui, vendredi 23 juin 2017 s'ouvre mon GitHub afin de partager avec vous mes scripts perso ainsi que mes contributions lors de mes différentes expériences professionnelles.
Lien vers mon GitHub : https://github.com/pierre-jacquot
Pour rappel, GitHub est un service de repository Git en ligne (un système qui permet à plusieurs personnes de travailler sur le même code en même temps). GitHub facilite l'hébergement des projets Git, le travail en équipe sur ces projets, le suivi des problèmes et l'organisation du travail.
Bonne lecture et bon codage !
PowerShell remoting avec WinRM
- Détails
- Écrit par Pierre JACQUOT
- Catégorie : PowerShell
- Affichages : 381
Pour ceux qui ont l'habitude de travailler sous Linux, vous utilisez certainement le couple "Shell - SSH" pour administrer votre machine à distance. Sous Windows, on trouve l'équivalent "PowerShell - WinRM", nous verrons par la suite ce qu'est WinRM.
Procédure :
Présentation :
L'administration à distance via PowerShell, appelée également PowerShell remoting, s'effectue par une connexion via WinRM sur l'hôte distant, il faut donc que WinRM soit activé sur l'hôte distant. Par défaut, WinRM est actif sur Windows Server 2012, Windows Server 2012 R2 et Windows Server 2008 R2 faisant référence à la "Gestion à distance".
A l'inverse, sur les versions plus anciennes de Windows Server et sur les versions clientes (Windows 7, Windows 8 et Windows 8.1), la gestion à distance est désactivée par défaut pour des raisons de sécurité.
WinRM, Windows Remote Management, repose sur du HTTP et il est l'implémentation chez Microsoft du standard WS-Management, basé sur SOAP. Ceci implique qu'il n'est plus un protocole RPC et peut donc passer plus facilement les firewalls.
Au niveau des ports utilisés, on en trouve deux :
- HTTP : 5985
- HTTPS : 5986
Il est préférable d'utiliser le port 5986 basé sur une connexion HTTPS, qui sera plus sécurisée.
Certaines versions de Windows ne disposent pas de WinRM par défaut, il faudra donc l'installer. Pour vérifier si le service WinRM existe ou non sur votre machine, il faut taper la commande suivante :
Get-Service WinRM
Si vous n'obtenez pas de résultat, cela signifie que le service n'est pas installé.
Pour installer WinRM, il faut installer la dernière version du Windows Management Framework.
Connexion à une machine distante :
Pour se connecter, on utilisera le commandlet PowerShell nommé Enter-PSSession.
Enter-PSSession -ComputerName SERVER_NAME.lab.microsoft.com
Lorsque la connexion sera établie, vous obtiendrez un shell PowerShell sur la machine distante :
Il est maintenant possible d'ajouter des groupes AD dans les groupes locaux du serveurs en tapant les commandes suivantes :
net localgroup "Administrateurs" "GROUP_NAME" /add
net localgroup "Utilisateurs du Bureau à distance" "GROUP_NAME" /add
Ensuite, pour quitter la session PowerShell distante, il suffit de taper la commande suivante :
Exit-PSSession
Installer PowerShell 5.1
- Détails
- Écrit par Pierre JACQUOT
- Catégorie : PowerShell
- Affichages : 397
Voici la procédure à suivre afin d'installer PowerShell 5.1 sur Windows.
Procédure :
Présentation :
Microsoft a annoncé sur son blog que le Windows Management Framework (WMF) 5.1 est désormais disponible en téléchargement pour Windows 7, ainsi que Windows 8.1.
Les versions serveurs équivalentes à savoir Windows Server 2008 R2, Windows Server 2012 et Windows Server 2012 R2 bénéficient également de cette mise à jour du framework.
WMF 5.1 comprend les composants PowerShell, WMI, WinRM et SIL (Software Inventory and Licensing) qui sont publiés avec Windows Server 2016.
WMF 5.1 peut être installé sur Windows 7, Windows 8.1, Windows Server 2008 R2, 2012 et 2012 R2, et fournit plusieurs améliorations par rapport à WMF 5.0 RTM, notamment :
- Nouvelles applets de commande : groupes et utilisateurs locaux (Get-ComputerInfo)
- Améliorations de PowerShellGet avec l’utilisation imposée de modules signés et l’installation de modules JEA
- Ajout de la prise en charge de PackageManagement pour les conteneurs, l’installation de CBS, l’installation basée sur des fichiers .exe et les packages CAB
- Améliorations du débogage pour les classes DSC et PowerShell
- Améliorations de la sécurité, notamment l’utilisation imposée de modules signés par le catalogue provenant du serveur collecteur et lors de l’utilisation des applets de commande PowerShellGet
- Réponses à plusieurs demandes et problèmes des utilisateurs
Prérequis pour Windows Server 2008 R2 SP1 et Windows 7 SP1 :
L’installation de WMF 5.1 sur Windows Server 2008 R2 SP1 ou Windows 7 SP1 nécessite ce qui suit :
- Le dernier Service Pack doit est installé
- WMF 3.0 ne doit pas être installé. L’installation de WMF 5.1 sur WMF 3.0 entraîne la perte de PSModulePath, ce qui peut provoquer l’échec d’autres applications. Avant d’installer WMF 5.1, vous devez soit désinstaller WMF 3.0, soit enregistrer PSModulePath et le restaurer manuellement au terme de l’installation de WMF 5.1
- WMF 5.1 exige le .NET Framework 4.5.2. Vous pouvez l’installer en suivant les instructions à l’emplacement du téléchargement
Téléchargement des sources :
La mise à jour vers la version 5.1 passe par l’installation des deux produits suivants : Microsoft .NET Framework 4.5.2 et Windows Management Framework 5.1.
Voici les liens ci-dessous pour télécharger les sources sur votre machine :
Lors du téléchargement de WMF 5.1, sélectionnez la version en fonction de votre édition de Windows et du type du système (32 bits ou 64 bits).
Installation :
Pour commencer, installez le .NET Framework.
Une fois terminée, installez WMF 5.1. A la fin de l'installation, cliquer sur redémarrer maintenant. Pendant le redémarrage les fonctionnalités seront mises à jour sur votre machine.
Vérification :
Après avoir redémarré votre poste, vous pouvez vérifier si PowerShell 5.1 est bien installé en saisissant l’une des deux commandes suivantes :
Get-Host
$PSVersionTable
Vous remarquerez la présence de la version 5.1 :
Configuration et déploiement de BGInfo v4.21
- Détails
- Écrit par Pierre JACQUOT
- Catégorie : Windows
- Affichages : 294
BGInfo : BackGround Infomation est un outils développé par sysinternals (Société qui a été rachetée par Microsoft). Ce logiciel permet d’afficher des informations sur le système en fond d’écran. Il peut être utilisé localement sur une machine physique ou virtuelle, pour un OS poste de travail ou serveur. Très pratique quand vous gérez plusieurs serveurs à distance ou par KVM et que vous ne savez pas sur lequel vous vous trouvez.
Présentation :
BGInfo crée une image de fond d’écran à partir du fond actuel et y applique les informations récoltées.
Parmi les informations affichables nous avons par exemple : Le BootTime, les infos Processeur, La quantité de RAM, l’adresse IP, l’espace disque restant…
Cliquer ici pour récupérer l'outil BGInfo.
Installation :
Il existe plusieurs façon pour le déployer :
- En utilisant le démarrage de Windows
- En utilisant les GPO
Le cas du démarrage de Windows (Startup) peut être utilisé pour les serveurs qui ne sont pas dans le domaine. Pour les serveurs qui sont dans le domaine, le plus propre est de passer par une GPO.
Configuration au démarrage de Windows :
Copiez le fichier Bginfo.exe
dans un répertoire commun à plusieurs utilisateurs, par exemple C:\BGInfo
Lancer l'outil Bginfo.exe
Configurer l'outil en sélectionnant les informations que vous voulez afficher
Sauvegarder la configuration sous Logon.bgi
Ce fichier de configuration contient les informations à afficher, on verra ensuite qu'il peut être intéressant de placer ce fichier de configuration dans un partage plutôt que de le copier en local.
Créer un raccourci du fichier Logon.bgi et placer le dans le répertoire startup de tous les utilisateurs. Pour cela faites un clic droit sur le répertoire startup, et sélectionner Open All Users. Vous êtes normalement dans le répertoire C:\Documents and Settings\All Users\Start Menu\Programs\Startup
Aller dans les propriétés de ce raccourci et rajouter les informations suivantes :
Target : C:\BGInfo\Bginfo.exe "C:\BGInfo\Logon.bgi" /timer:0 /nolicprompt
Options :
- L'option /timer:0 permet de lancer BGInfo immédiatement
- L'option /nolicprompt permet de ne pas afficher les conditions d'utilisations lorsque l'application est exécutée pour la première fois par un profil utilisateur
Pour tester, vous pouvez faire un logoff et connectez vous avec un compte pour voir si les informations apparaissent correctement.
Configuration avec les GPO :
Il est possible avec les GPO de pousser l'outil BGInfo sur tous les postes.
Je vois 2 cas d'utilisation, les serveurs, mais aussi les postes de travail virtuels XP ou 7.
Copier les fichiers Bginfo.exe
et Logon.bgi
sur un partage accessible depuis tous les postes
Cette fois nous allons utiliser les GPO, pour y accéder lancer Gestion de stratégie de groupe, puis faire un clic droit sur une OU de votre choix, puis cliquer sur Créer un objet GPO dans ce domaine, et le lier ici.... Saisir un nom pour ce nouvel objet GPO puis cliquer sur OK
Sélectionner votre nouvelle GPO puis faire un clic droit et cliquer sur Modifier...
Dans l'éditeur de gestion des stratégies de groupe, nous allons utiliser les scripts de logon pour lancer l'outil BGinfo à l'ouverture de la session d'un utilisateur, pour cela il faut aller dans Configuration utilisateur > Statégies > Paramètres Windows > Scripts (ouverture/fermeture de session) > Ouverture de session
Vous êtes maintenant dans les Propriétés de : Ouverture de session
Créez un fichier .bat avec notepad et saisir la commande suivante :
\\SERVEUR\BGInfo\Bginfo.exe "\\SERVEUR\BGInfo\Logon.bgi" /timer:0 /nolicprompt
Tester le bon fonctionnement du script en double cliquant dessus. Si l'outil BGInfo s'exécute sans problème vous pouvez passer a l'étape suivante.
Retournons dans les Propriétés de : Ouverture de session. Cliquer sur Ajouter > Parcourir puis indiquez le chemin de votre fichier BGInfo.bat
puis cliquer sur Ouvrir. Il n'y a pas de paramètre à spécifier.
Cliquer sur OK pour valider.
Sélectionner votre nouvelle GPO puis faire un clic droit et cliquer sur Appliqué
Pour tester la GPO, vous pouvez faire un logoff et connectez vous avec un compte qui fait bien parti de l'OU sur laquelle vous avez appliquez la GPO afin de vérifier que les informations apparaissent correctement.
Eteindre une machine en ligne de commande
- Détails
- Écrit par Pierre JACQUOT
- Catégorie : Windows
- Affichages : 196
Selon la version de Windows, il est possible de lancer en ligne de commande l’extinction ou le redémarrage de la machine.Voici la démarche à suivre.
Procédure :
Sous Windows XP, Vista, Seven et 8 :
On dispose de la commande shutdown :
Pour éteindre l’ordinateur :
shutdown -s -t 0
Pour redémarrer :
shutdown -r -t 0
Le paramètre -t x défini à x le temps (en secondes) avant le lancement de la commande, par exemple shutdown -r -t 3600 redémarrera l’ordinateur dans 1 heure. Pendant cette période la commande shutdown -a annulera l’action.
Sous Windows Serveur :
Depuis Windows serveur 2003 (également valable pour 2008 et 2012) le fonctionnement est le même que pour Windows XP/7.
Dans le cas d’une machine intégrée dans un domaine Windows, on peut lancer la commande à distance (il faut être connecté en administrateur) :
shutdown -m \\[IP ou nom du poste] -r -t 0
Documentation complète :
Utilisation : C:\windows\system32\shutdown.exe [/i | /l | /s | /r | /g | /a | /p | /h | /e] [/f]
[/m \\ordinateur][/t xxx][/d [p|u:]xx:yy [/c "commentaire"]]
Sans argument Afficher l'aide. Cela revient à entrer /?.
/? Afficher l'aide. Cela revient à n'entrer aucune option.
/i Afficher l'interface utilisateur graphique (GUI).
Ce doit être la première option.
/l Fermer la session. Ne peut pas être utilisé avec l'option /m
ou /d.
/s Arrêter l'ordinateur.
/r Arrêter et redémarrer l'ordinateur.
/g Éteignez et redémarrez l'ordinateur. Une fois le système
réinitialisé, redémarrez toute application enregistrée.
/a Annuler un arrêt du système.
Cela peut être utilisé uniquement pendant la période de délai.
/p Arrêter l'ordinateur local sans délai d'expiration ou
avertissement.
Peut être utilisé avec l'option /d ou /f.
/h Mettre l'ordinateur local en veille prolongée.
Utilisable avec l'option /f.
/e Documenter la raison de l'arrêt inattendu d'un ordinateur.
/m \\ordinateur Spécifier l'ordinateur cible.
/t xxx Définir la période de délai avant l'arrêt au bout de xxx secondes.
La plage valide est comprise entre 0 et 315360000 (10 ans),
30 étant la valeur par défaut.
Si la période avant expiration est supérieure à 0, le paramètre /f est
sous-entendu.
/c "commentaire" Commentaire sur la raison du redémarrage ou de l'arrêt.
512 caractères maximum autorisés.
/f Oblige la fermeture des applications en cours d'exécution sans prévenir les utilisateurs.
Le paramètre /f est sous-entendu lorsqu'une valeur supérieure à 0 est
spécifiée pour le paramètre /t.
/d [p|u:]xx:yy Fournit la raison du redémarrage ou de l'arrêt.
p indique que le redémarrage ou l'arrêt est planifié.
u indique que la raison est définie par l'utilisateur.
Si ni p ni u ne sont spécifiés, le redémarrage ou l'arrêt n'est pas
planifié.
xx est le code de raison majeur (entier positif inférieur à 256).
yy est le code de raison mineur (entier positif inférieur à 65536).
Raisons sur cet ordinateur :
(E = Attendu U = Inattendu P = planifié, C = défini par le client)
Type Majeur Mineur Titre
U 0 0 Autre (non planifié)
E 0 0 Autre (non planifié)
E P 0 0 Autre (planifié)
U 0 5 Autre panne : le système ne répond pas
E 1 1 Matériel : maintenance (non planifiée)
E P 1 1 Matériel : maintenance (planifiée)
E 1 2 Matériel : installation (non planifiée)
E P 1 2 Matériel : installation (planifiée)
E 2 2 Système d'exploitation : Récupération (planifiée)
E P 2 2 Système d'exploitation : Récupération (planifiée)
P 2 3 Système d'exploitation : mise à jour (planifiée)
E 2 4 Système d'exploitation : reconfiguration (non planifiée)
E P 2 4 Système d'exploitation : reconfiguration (planifiée)
P 2 16 Système d'exploitation : Service pack (Planifié)
2 17 Système d'exploitation : correctif logiciel (non planifié)
P 2 17 Système d'exploitation : correctif logiciel (planifié)
2 18 Système d'exploitation : correctif de sécurité (Non planifié)
P 2 18 Système d'exploitation : correctif de sécurité (Planifié)
E 4 1 Application : maintenance (non planifiée)
E P 4 1 Application : maintenance (planifiée)
E P 4 2 Application : installation (planifiée)
E 4 5 Application : aucune réponse
E 4 6 Application : instable
U 5 15 Échec du système : erreur d'arrêt
U 5 19 Problème de sécurité
E 5 19 Problème de sécurité
E P 5 19 Problème de sécurité
E 5 20 Perte de connexion réseau (Non planifié)
U 6 11 Panne d'alimentation : cordon déconnecté
U 6 12 Panne d'alimentation : environnement
P 7 0 Arrêt d'une interface API héritée
Page 1 sur 4