informatique:windows:powershell
Table of Contents
Powershell
Autoriser l'exécution des scripts :
set-executionpolicy remotesigned
Lancer un script Powershell à partir d'un Batch
<codedoc code:batch> Powershell.exe -executionpolicy remotesigned -File NOMDUSCRIPT.ps1 </code>
Lancer un script Powershell à partir d'un chemin UNC
Attention, c'est très sale :
Powershell.exe -NoProfile -ExecutionPolicy bypass -File "\\IP_DU_SERVEUR\OU\EST\LE\script.ps1"
Source : https://superuser.com/questions/106360/how-to-enable-execution-of-powershell-scripts
Tester la présence d'un dossier
$dossier = "%userprofile%\path\le\chien"
if (Test-Path -Path $dossier) {
"Le dossier $dossier !"
} else {
"Création du dossier $dossier"
mkdir $dossier
}
Télécharger un fichier
$url = http://url_du_fichier
Invoke-WebRequest -Uri $url -OutFile C:\Ou\va\le\fichier\fichier.prout
Créer un raccourci
$WshShell = New-Object -ComObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut("$env:PUBLIC\Desktop\Machin.lnk")
$Shortcut.TargetPath = "C:\ou\est\le\fichier\Machin.exe"
$Shortcut.Save()
Créer plusieurs comptes / activer
# On met les comptes dans un tableau
$comptes = @("utilisateur","toto","Administrateur")
ForEach ($compte in $comptes)
{
$op = Get-LocalUser | Where-Object {$_.Name -eq $compte}
if ( -not $op) {
"Création du compte $compte..."
$password = Read-Host "Saisir le mot de passe du compte $compte (rien si pas de mot de passe)" -AsSecureString
New-LocalUser -Name $compte -Password $password -AccountNeverExpires -UserMayNotChangePassword
Add-LocalGroupMember -Group "Administrateurs" -Member $compte
} else {
"Le compte $compte existe déjà"
if ((Get-LocalUser $compte).Enabled) {
"Le compte $compte est déjà activé"
} else {
"Activation du compte $compte..."
Enable-LocalUser -Name $compte
"Le compte $compte est activé"
}
}
}
Set-LocalUser -Name 'Toto' -FullName "Jean-Michel Toto"
Désactiver et activer des trucs
# Désactiver UAC
New-ItemProperty -Path HKLM:Software\Microsoft\Windows\CurrentVersion\policies\system -Name EnableLUA -PropertyType DWord -Value 0 -Force
# Désactiver pare-feu sur tous les profils
Set-NetFirewallProfile -Profile * -Enabled False
# Désactivation smart-screen
Set-ItemProperty -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Explorer" -Name "SmartScreenEnabled" -Type String -Value "Off"
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\AppHost" -Name "EnableWebContentEvaluation" -Type DWord -Value
# Désactivation OOBE
Set-ItemProperty -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\OOBE" -Name "DisablePrivacyExperience" -Type DWORD -Value 1 -Force
Set-ItemProperty -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\OOBE" -Name "PrivacyConstentStatus" -Type DWORD -Value 1 -Force
Set-ItemProperty -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\OOBE" -Name "SkipMachineOOBE" -Type DWORD -Value 1 -Force
# Activation client SMBv1
Enable-WindowsOptionalFeature -Online -FeatureName "SMB1Protocol-Client" -All
# Installation de .NET3.5
Enable-WindowsOptionalFeature -Online -FeatureName "NetFx3"
Intégrer un poste à un domaine
Add-Computer -DomainName DOMAINE.LOCAL -Credential DOMAINE\administrateur -Restart -Force
Récupérer le GUID des volumes
GWMI -namespace root\cimv2 -class win32_volume | FL -property DriveLetter, DeviceID
informatique/windows/powershell.txt · Last modified: 2023/09/14 08:45 by yahiko