====== Équivalent PowerShell et Batch ======
===== Les attributs de fichiers =====
==== Lire les attributs ====
**Batch**: attrib c:\intel\*.*\\
**PowerShell**: Get-ChildItem -Path c:\intel\\\
=== Modifier les attributs ====
**Batch**:\\ Pour retirer l'attribut Read-only :attrib c:\intel\*.* -R\\
**PowerShell**:\\ Pour retirer l'attribut Read-only Get-ChildItem -Path c:\intel\ | ForEach-Object {$_.Attributes = "Archive"}\\
L'avantage est que si on veut modifier l'ensemble des fichiers dans un dossier et ces sous-dossiers, il suffit de le rendre récursif:Get-ChildItem -Path c:\intel\ -Recurse | ForEach-Object {$_.Attributes = "Archive"}\\
**Bonus**:\\
Sous PowerShell, si on veut connaître la liste de l'ensemble des attributs, il suffit de taper ceci:
[enum]::GetNames("system.io.fileattributes")
Voici l'ensembles des attributs:
* ReadOnly
* Hidden
* System
* Directory
* Archive
* Device
* Normal
* Temporary
* SparseFile
* ReparsePoint
* Compressed
* Offline
* NotContentIndexed
* Encrypted
* IntegrityStream
* NoScrubData
===== Lire cache DNS =====
**batch**: ipconfig /displaydns\\
**Powershell**: Get-DnsClientCache\\
===== Nettoyer le cache DNS =====
**batch**: ipconfig /flushdns\\
**Powershell**: Clear-DnsClientCache\\
===== DIR =====
Get-ChildItem -Recurse | Select-Object -ExpandProperty FullName
gci -r | select -exp FullName
Get-ChildItem -Recurse | ForEach-Object { $_.FullName }
gci -r | % { $_.FullName }
Get-ChildItem -Recurse | ForEach-Object { $_.FullName }
gci -r | % FullName
===== Ping =====
==== Test-NetConnection ====
if (Test-Connection -TargetName Server01 -Quiet) { New-PSSession -ComputerName Server01 }
==== [System.Net.DNS] ====
[String]$ipAddress=192.168.1.100
[System.Net.DNS]::Resolve($ipAddress)
===== Echo =====
Write-Host
**Argument :**\\
[[-Object]