PowerShell - Mes aide-mémoires
Cette article sera mis à jour régulièrement donc penser à y repasser régulièrement
Ceci permet de vérifier si le script a été lance avec un niveau administrateur, si ce n'est pas le cas, cela lance le même script via Start-Process avec l'argument "RunAs" et il va refermer le script.
Cependant, il y a un bug qui va vous renvoyer un $true, si vous testez une variable qui contient une ligne avec un espace dedans sans aller.
Pour éviter cette erreur, il est préférable de rajouter trim(), à la suite de sa variable.
Voici un exemple, on peut remplacer un chemin à la place du $null pour voir si cela marche ou pas.
Script PowerShell pour nettoyer le cache SCCM et 1E Nomad
Quand on a des clients SCCM et 1E Nomad sur nos postes professionnelles et que l'on a besoin de place, le site Garytown a partagé ici, des scripts PowerShell bien utile.Fonction - Installer.NET Framework 3.5
Il peut nous arriver d'avoir besoin d'installer le .NET Framework 3.5, on peut rajouter ce module qui va bien nous aider, il permet d'utiliser les sources externes ou local. J'ai trouver ce script bien conçu: ici. N'oubliez pas de remercier son auteur.Relancer son script avec les droits administrateurs
Source: https://ss64.com/ps/syntax-elevate.htmlCeci permet de vérifier si le script a été lance avec un niveau administrateur, si ce n'est pas le cas, cela lance le même script via Start-Process avec l'argument "RunAs" et il va refermer le script.
If (-NOT ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator))
{
# Relaunch as an elevated process:
Start-Process powershell.exe "-File",('"{0}"' -f $MyInvocation.MyCommand.Path) -Verb RunAs
exit
}
Variable declarer le dossier racine de son script
If ($psISE)
{
$currentScriptDirectory = Split-Path -Parent -Path $psISE.CurrentFile.FullPath
}
If (!$currentScriptDirectory)
{
If ($MyInvocation.MyCommand.CommandType -eq "ExternalScript")
{
$currentScriptDirectory = Split-Path -Parent -Path $MyInvocation.MyCommand.Definition
}
Else
{
$currentScriptDirectory = Split-Path -Parent -Path ([Environment]::GetCommandLineArgs()[0])
}
}
Lister l'ensemble des variables d'environment
Si l'on veux voir l'ensemble des variables d'environnement que l'on peut utiliser dans nos scripts.
Get-Childitem -Path Env:* | Sort-Object Name
Récupérer la version de PowerShell
Lors que je commence un fichier de log, j'aime bien rajouter la version de mon PowerShell.
[string]$PS1_Version = Get-Host | Select-Object Version | ForEach-Object {$_.Version.ToString()}
Commande Test-Path
J'utilise souvent cette commande car elle permet de vérifier le chemin et de récupérer un retour $true et $false.Cependant, il y a un bug qui va vous renvoyer un $true, si vous testez une variable qui contient une ligne avec un espace dedans sans aller.
Pour éviter cette erreur, il est préférable de rajouter trim(), à la suite de sa variable.
Voici un exemple, on peut remplacer un chemin à la place du $null pour voir si cela marche ou pas.
$TestPath = $null
if ( $(Try { Test-Path $TestPath.trim() } Catch { $false }) ) {
write-host "Path OK"
}
Else {
write-host "Path not found"
}
Récupérer la ligne de commande d'un process
$process = 'Deezer.exe'
Get-CimInstance Win32_Process -Filter "name = '$process'" | select CommandLine
Commentaires
Enregistrer un commentaire