Get-ComputerInfo# Afficher les informations systèmes (version de windows, édition, bios version, etc)$PSVersionTable# Afficher la version de PowerShellGet-WMIObject Win32_OperatingSystem # Afficher la version de Windows$env:COMPUTERNAME # Afficher le nom de l'ordinateur
Services et processus
# ServiceGet-Service# Lister tous les services [Alias: gsv]Get-Service name # Avoir des détails sur un service spécifique [Alias: gsv]Start-Service name # Démarrer un service à l'arrêt [Alias: sasv]Stop-Service name # Arrêter un service en cours [Alias: spsv]Restart-Service name # Redémarrer un service en cours# ProcessGet-Process# Lister tous les processes [Alias: ps]Get-Process name # Avoir des détails sur un process spécifique [Alias: ps]Start-Process name # Démarrer un process à l'arrêt [Alias: start, saps]Stop-Process name # Stop a process [Alias: kill, spps]Wait-Process name # Attendre qu'un process ce stop avant de continuerDebug-Process name # Attacher un debugger à un process
Réseau
Get-NetIPConfiguration# Afficher l'interface locale et les IPs assignésnetsh wlan show profiles # Afficher la liste des réseau sans fil enregistrésTest-Connection name # Ping basiqueTest-NetConnection name # Ping avancéeTest-NetConnection name -TraceRoute # Perform a trace routeTest-NetConnection name -Port port # Perform a port checkTest-NetConnectiongoogle.com-Port 80# Testez la connectivité du port TCPGet-NetTCPConnection# Affiche la liste des connexions TCPGet-NetUDPEndpoint# Affiche la liste des connexions UDP# DNSSet-DnsClientServerAddress-InterfaceAlias interface -ServerAddresses dns,dns2 # Changer les serveurs DNSResolve-DnsName name # Basique DNS lookupResolve-DnsName name -Type recordtype # DNS lookup pour un record spécifique (ie txt, srv, soa, etc)Clear-DnsClientCache# Effacer le cache local DNS
Contrôle à distance
Enable-PSRemoting# Activer la possibilitée des sessions PowerShell distantes sur la machine locale Enter-PSSession computername -Credential username # Connexion à un ordinateur distant
Gestion du système
start-Computer# Redémarrer la machineStop-Computer# Eteindre la machineCheckpoint-Computer# Créer un point de restauration a system restore pointRestore-Computer# Restaurer l'ordinateur à un point de restauration
Gestion des fichiers
Création
Obtenir son répertoire actuel : Get-Location (ou l'alias pwd connu sous Linux)
Lister le contenu d'un répertoire : Get-ChildItem (ou l'alias ls ou dir)
Créer un nouveau répertoire ou fichier :
New-Item-Name "Nom_Rep"-ItemType Directory # Créer une répertoireNew-Item-Name "nom_fichier.ext"-ItemType File. # Créer un fichier New-Item-Name "nom_fichier.ext"-ItemType File -Value "Contenu"# Créer un fichier avec du contenu
Active Directory
Gestion de l'Active Directory avec le Powershell
Raccourci recherche
Pour créer un raccourci de recherche pour Active Directory :
Cliquez avec le bouton droit sur un espace vide de votre bureau et sélectionnez "Nouveau", puis "Raccourci".
Dans le champ d'emplacement, entrez le chemin suivant :
Donnez un nom à votre raccourci, par exemple "Recherche AD", puis cliquez sur "Terminer".
Informations sur les ordinateurs
Get-ADComputer-Filter *# Obtenez la liste des ordinateurs du domaine ADGet-ADComputer-Filter *-Properties *# Obtenez les propriétés des ordinateursGet-ADComputer-Filter *-Properties *| Select Name # Obtenez le nom des ordinateurs# Comptez le nombre d’ordinateurs regroupés par la version du système d’exploitationGet-ADComputer-Filter *-Properties *| group -Property operatingSystem | Select Name,Count# Obtenez le dernier logon des ordinateursGet-ADComputer-Filter *-Properties *| Select Name, LastLogonDate# Obtenez la liste des ordinateurs inactifs pour un nombre spécifique de jours.$Days =10$Time = (Get-Date).Adddays(-($Days))Get-ADComputer-Filter {LastLogonTimeStamp -lt $Time} -Properties *| Select Name, LastLogonDate# Obtenez tous les ordinateurs avec un texte spécifique dans le nomGet-ADComputer-Filter { Name -like"*srv*"}
Création et activation d'un utilisateur
Pour créer un utilisateur, la commande à utiliser est New-ADUser. Il faut cependant un certain nombre d'informations, tel que le login, le mot de passe etc.
-Name : Indique le nom du compte, généralement le nom/prénom de la personne;
-SamAccountName : Indique le Login de la personne, ce qu'elle va utiliser pour se connecter;
-UserPrincipalName : Indique le nom complet de l'utilisateur dans l'AD (format login@domaine);
-AccountPassword : Renseigne le mot de passe. l'option ConvertTo-SecureString permet de convertir le mot de passe en clair dans un format chiffré, illisible par l'humain.
-PasswordNeverExpires : Indique si l'on veut que les personnes changent leurs mot de passe à intervalle régulier.
Pour se faire la main avec Active Directory, mieux vaut activer cette option.
En production, il vaut mieux désactiver cette option.
-CannotChangePassword : Indique si l'on autorise le changement du mot de passe directement par les utilisateurs.
Cette option dépend de la politique interne de l'entreprise, et dépendera probablement du service auquel cette personne sera affectée.
Cette option dépendra de la politique interne de l'entreprise ainsi que probablement du service auquel cette personne sera affectée.
On active ensuite ce compte :
Enable-ADAccount<login>
Nous pouvons également ajouter l'option -Enable $true dans la commande précédente pour activer le compte
Obtenir la liste des utilisateurs Active Directory
Get-ADUser -Filter * . Permets de lister les utilisateurs Active Directory
Cette commande va renvoyer TOUTES les informations de l'utilisateur, ce qui n'est peut-être pas nécessaire.
Nous pouvons donc sélectionner les champs que l'on veut récupérer.
Exemple de commande :
Cette commande va récupérer les champs nom, login et nom complet de l'utilisateur sur l'AD.
Nous pouvons également exporter les champs sélectionnés dans un fichier CSV en ajoutant la commande | Export-Csv <nom_sortie.csv -Encoding UTF8.
Attention : le | est important, puis que nous ajoutons cette commande à la suite de la précédent
Comptes d’utilisateurs récents
Trouvez les comptes d’utilisateurs créés sur Active Directory au cours des 30 derniers jours.
$Days =30# Modifier la valeur pour changer le nombre de jours$Time = (Get-Date).Adddays(-($Days))Get-ADUser-Filter *-Property whenCreated |Where {$_.whenCreated-gt $Time} | ft Name, WhenCreated
Utilisateurs qui n’ont pas changé de mot de passe
Trouvez les utilisateurs dans Active Directory avec un mot de passe de plus de 30 jours.
$Days =30# Modifier la valeur pour changer le nombre de jour$Time = [DateTime]::Today.AddDays(-$Days)Get-ADUser-Filter '(PasswordLastSet -lt $Time)'-Properties PasswordLastSet | ft Name,PasswordLastSet
Ordinateurs inactifs
Trouvez les utilisateurs qui ne se sont pas connectés au Répertoire actif au cours des 30 derniers jours.