====== Powershell ====== [[informatique:windows:powershell:excel-separer-feuilles|Excel : séparer les feuilles dans des fichiers]] ===== Autoriser l'exécution des scripts : ===== set-executionpolicy remotesigned ===== Lancer un script Powershell à partir d'un Batch ===== Powershell.exe -executionpolicy remotesigned -File NOMDUSCRIPT.ps1 ===== 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