# Trucs #### Ouvrir Windows Terminal en 3 panneaux: ```powershell wt -p "Debian" `; split-pane -p "PowerShell 7" `; split-pane -p "Invite de commandes" ``` #### Ouvrir en 3 onglets dans Windows Terminal: ```powershell wt -p "Debian" `; new-tab -p "PowerShell 7" `; new-tab -p "Invite de commandes" ``` #### Palette de commande: `Ctrl + Shift + P` #### Thèmes: https://docs.microsoft.com/en-us/windows/terminal/tutorials/powerline-setup https://ohmyposh.dev/docs/ #### Ne pas afficher de messages au lancement de PowerShell: Lancer avec l'option --nolog: `powerShell.exe --nolog` #### Ouvrir une nouvelle fenêtre Powershell en administrateur: 1. ```powershell Start-Process powershell -Verb runAs ``` https://stackoverflow.com/questions/7690994/running-a-command-as-administrator-using-powershell 2. `Win + Ctrl + Maj + 8` Si Powershell est en 8e position dans la barre des taches (le 1er étant l'Explorateur). 3. ```powershell # ouvre une nouvelle fenêtre de Windows Terminal en mode admin. powershell "Start-Process -Verb RunAs cmd.exe '/c start wt.exe'" ``` 4. [gsudo](https://github.com/gerardog/gsudo) Installation: ```powershell choco install gsudo winget install gsudo ``` ```powershell # Dans PowerShell ou l'invite de commande: # donne les droits admin à la console courante gsudo ``` ```powershell ❯ 'Hello World' | Get-Member TypeName: System.String Name MemberType Definition ---- ---------- ---------- Clone Method System.Object Clone(), System.Object ICloneable.Clone() CompareTo Method int CompareTo(System.Object value), int CompareTo(string strB), int IComparable.CompareTo(System.Object obj), int IComparable[string].CompareTo(strin… Contains Method bool Contains(string value), bool Contains(string value, System.StringComparison comparisonType), bool Contains(char value), bool Contains(char value… CopyTo Method void CopyTo(int sourceIndex, char[] destination, int destinationIndex, int count) EndsWith Method bool EndsWith(string value), bool EndsWith(string value, System.StringComparison comparisonType), bool EndsWith(string value, bool ignoreCase, cultur… EnumerateRunes Method System.Text.StringRuneEnumerator EnumerateRunes() Equals Method bool Equals(System.Object obj), bool Equals(string value), bool Equals(string value, System.StringComparison comparisonType), bool IEquatable[string]… GetEnumerator Method System.CharEnumerator GetEnumerator(), System.Collections.IEnumerator IEnumerable.GetEnumerator(), System.Collections.Generic.IEnumerator[char] IEnum… GetHashCode Method int GetHashCode(), int GetHashCode(System.StringComparison comparisonType) GetPinnableReference Method System.Char&, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e GetPinnableReference() GetType Method type GetType() .../... ``` ```powershell ❯ 'Hello World'.ToLower() hello world ``` ```powershell ❯ ping google.com PING google.com (216.58.215.46): 56 data bytes 64 bytes from 216.58.215.46: icmp_seq=0 ttl=112 time=60.009 ms 64 bytes from 216.58.215.46: icmp_seq=1 ttl=112 time=156.384 ms Request timeout for icmp_seq 2 64 bytes from 216.58.215.46: icmp_seq=3 ttl=112 time=131.664 ms 64 bytes from 216.58.215.46: icmp_seq=4 ttl=112 time=143.645 ms 64 bytes from 216.58.215.46: icmp_seq=5 ttl=112 time=77.214 ms 64 bytes from 216.58.215.46: icmp_seq=6 ttl=112 time=64.536 ms 64 bytes from 216.58.215.46: icmp_seq=7 ttl=112 time=64.478 ms 64 bytes from 216.58.215.46: icmp_seq=8 ttl=112 time=67.211 ms 64 bytes from 216.58.215.46: icmp_seq=9 ttl=112 time=62.654 ms 64 bytes from 216.58.215.46: icmp_seq=10 ttl=112 time=73.045 ms ^C --- google.com ping statistics --- 11 packets transmitted, 10 packets received, 9.1% packet loss round-trip min/avg/max/stddev = 60.009/90.084/156.384/35.969 ms ``` ```powershell ❯ Test-Connection google.com Destination: google.com Ping Source Address Latency BufferSize Status (ms) (B) ---- ------ ------- ------- ---------- ------ 1 SilverBook.local 216.58.215.46 77 32 Success 2 SilverBook.local 216.58.215.46 56 32 Success 3 SilverBook.local 216.58.215.46 75 32 Success 4 SilverBook.local 216.58.215.46 67 32 Success ``` ```powershell ❯ Get-Help Test-Connection NAME Test-Connection SYNTAX Test-Connection [-TargetName] [-Ping] [-IPv4] [-IPv6] [-ResolveDestination] [-Source ] [-MaxHops ] [-Count ] [-Delay ] [-BufferSize ] [-DontFragment] [-TimeoutSeconds ] [-Quiet] [] Test-Connection [-TargetName] -Traceroute [-IPv4] [-IPv6] [-ResolveDestination] [-Source ] [-MaxHops ] [-TimeoutSeconds ] [-Quiet] [] Test-Connection [-TargetName] -MtuSize [-IPv4] [-IPv6] [-ResolveDestination] [-TimeoutSeconds ] [-Quiet] [] Test-Connection [-TargetName] -TcpPort [-IPv4] [-IPv6] [-ResolveDestination] [-Source ] [-TimeoutSeconds ] [-Quiet] [] ``` ```powershell ❯ [System.Collections.ArrayList]$testArray = @() ❯ $testArray.Add('yahoo.com') | Out-Null ❯ $testArray.Add('google.com') | Out-Null ❯ $testArray google.com yahoo.com ❯ Test-Connection -ComputerName $testArray Destination: google.com Ping Source Address Latency BufferSize Status (ms) (B) ---- ------ ------- ------- ---------- ------ 1 SilverBook.local 172.217.18.206 3969 32 Success 2 SilverBook.local 172.217.18.206 60 32 Success 3 SilverBook.local 172.217.18.206 82 32 Success 4 SilverBook.local 172.217.18.206 62 32 Success Destination: yahoo.com Ping Source Address Latency BufferSize Status (ms) (B) ---- ------ ------- ------- ---------- ------ 1 SilverBook.local 98.138.219.231 2068 32 Success 2 SilverBook.local 98.138.219.231 208 32 Success 3 SilverBook.local 98.138.219.231 312 32 Success 4 SilverBook.local 98.138.219.231 204 32 Success ``` Comparer 2 fichiers texte: ```powershell ❯ compare-object (get-content one.txt) (get-content two.txt) ``` Bash <-> PowerShell: | Bash | PowerShell | Alias | | ----------------------------- | ------------------------------------------------------------ | ---------------------- | | pwd | Get-Location | pwd, gl | | cd | Set-Location | cd, sl, chdir | | ls | Get-ChildItem | ls, dir | | ls -ltr | Get-ChildItem $env:USERPROFILE\Desktop \| Sort-Object -Property LastWriteTime | | | find | Get-ChildItem | | | find . -type f -iname "azure" | Get-ChildItem -Filter "\*azure\*" -Recurse -File | | | cp | Copy-Item | cp, copy, cpi | | cp -R Tools ~/ | Copy-Item -Path '.\Tools\' -Destination $env:USERPROFILE -Recurse | | | | Copy-Item '.\Tools\' $env:USERPROFILE -Recurse | | | rm | Remove-Item | rm, ri, rmdir, rd, del | | rm -rf | Remove-Item -Recurse -Force | | | mkdir | New-Item -ItemType Directory -Name 'MyNewFolder' | | | touch | New-Item | | | touch newFile{1..3} | 1..3 \| ForEach-Object { New-Item -ItemType File -Name "newFile$_" } | | | cat | Get-Content | cat, gc, type | | tail -n7 ./MyFile1 | Get-Content -Tail 7 .\MyFile1 | | | tail -f ./log1 | Get-Content -Wait .\log1 | | | uname -a | \$Properties = 'Caption', 'CSName', 'Version', 'BuildType', 'OSArchitecture'
Get-CimInstance Win32_OperatingSystem \| Select-Object $Properties \| Format-Table -AutoSize | | | ping | Test-Connection | | | | Test-Connection google.com \| Format-Table -AutoSize | | | man | Get-Help | | | | Get-Help Stop-Service -Full | | | cut | Get-ChildItem $env:USERPROFILE\Desktop -Filter "*.ps1" \| >> Select-Object -Property 'Name', 'Length' | | | | | | | | | | | | | | | | | | | | | | | | | | #### Réinitialiser Windows Store 1ere solution: ```powershell PS> PowerShell -ExecutionPolicy Unrestricted $manifest = (Get-AppxPackage Microsoft.WindowsStore).InstallLocation + ‘\AppxManifest.xml’ ; Add-AppxPackage -DisableDevelopmentMode -Register $manifest ``` 2eme solution: ```powershell PS> sfc /scannow ``` puis reboot (fonctionne W11) 3eme solution: ```powershell DISM /Online /Cleanup-Image /ScanHealth ``` puis reboot