Si comme moi, vous avez un prompt long. La moindre commande s’affiche sur deux ou trois lignes.
Pour raccourcir ce prompt, vous pouvez utiliser la commande suivante pour qu’il n’y ait plus que le nom du dossier courant dans le prompt.
function prompt { "PS \" + $(Get-Location).Path.split("\")[-1] + "> " } |
Voici la liste des caractères d’échappement disponibles avec Powershell.
| Caratères d'échappement | Résultat |
|---|---|
| `n | Nouvelle ligne |
| `r | Retour chariot |
| `t | Tabulation |
| `a | Alarm |
| `b | Backspace |
| `' | Guillemet simple |
| `" | Guillemet double |
| `0 | Null |
| `` | Backtick |
Write-Host "Première ligne`nDeuxième ligne" |
Voici une série de commande permettant de gérer les fichiers et dossiers avec Powershell.
Afficher le chemin du dossier courant:
Get-Location |
Afficher le contenu d’un dossier:
Get-ChildItem Get-ChildItem "c:\temp" |
Se déplacer dans les dossiers:
Set-Location "c:\temp" |
Créer un fichier:
New-Item -Name "fichier.txt" -ItemType file -Value "Test" |
Créer un dossier:
New-Item -Name "dossier" -ItemType directory |
Supprimer un fichier ou un dossier:
Remove-Item "c:\temp\*.txt" |
Déplacer des fichiers:
Move-Item -Path *.txt -Destination "c:\temp\" |
Déplacer un dossier:
Move-Item -Path .\dossier -Destination .\temp\dossier Move-Item -Path .\temp\dossier -Destination .\temp\dossier2" |
Renommer un fichier ou un dossier:
Rename-Item -Path fichier.txt -NewName fichier2.txt Rename-Item -Path dossier -NewName dossier2 |
Copier un fichier ou un dossier:
Copy-Item -Path .\fichier.txt -Destination c:\temp Copy-Item -Path dossier -Destination c:\temp -Recurse |
Permet de récupérer à distance la version de Windows.
Get-WmiObject Win32_OperatingSystem -ComputerName "server001" | Select-Object CSName,Caption,OtherTypeDescription,CSDVersion,Version |
Les deux scripts suivant exécutés dans l’ordre permettent d’activer et de configurer les comptes présents dans un fichier pour OCS.
Il n’y a que les fonctionnalités de messagerie instantané qui seront activés.
Activation des comptes:
Import-Csv .\Import_ocs.csv | ForEach-Object{ $user = $_.alias $sip="sip:" + $user + "@domain.com" get-qaduser $user | set-qaduser -oa @{ 'msRTCSIP-UserEnabled'=$true 'msRTCSIP-PrimaryUserAddress'=$sip 'msRTCSIP-PrimaryHomeServer'="CN=LC Services,CN=Microsoft,CN=Epool,CN=Pools,CN=RTC Service,CN=Microsoft,CN=System,DC=domain,DC=local" } } |
Configuration des comptes:
Import-Csv .\Import_ocs.csv | ForEach-Object{ $user = $_.alias $sip="sip:" + $user + "@domain.com" get-wmiobject -class MSFT_SIPESUserSetting | Where-Object { $_.PrimaryURI -eq $sip } | ForEach-Object { $_.MeetingPolicy = "CN={1815ED7B-A539-4117-9283-E8DD27CD393E},CN=Policies,CN=RTC Service,CN=Microsoft,CN=System,DC=domain,DC=local" ; $_.AllowOrganizeMeetingWithAnonymousParticipants = $True ; $_.EnabledForEnhancedPresence = $True; $_.EnabledForInternetAccess = $True; $_.put()| out-null} $sip } |
Permet d’importer une adresse SMTP secondaire sur une liste de boites aux lettres.
Import-Csv -Path .\import_secondary_smtp.csv | foreach { $mailbox = $_.identity $secsmtp = $_.sec_smtp $temp = Get-Mailbox -Identity $mailbox $temp.emailaddresses.add($secsmtp) Set-Mailbox -Instance $temp } |
Cette commande permet de retrouver les boites qui contiennent un dossier spécifique.
Get-Mailbox -resultsize unlimited -Server CCREX003 | Get-MailboxFolderStatistics | where-object {$_.Name -eq "Private" } | ft Identity |
Exporter toutes les boites aux lettres où a accès un utilisateur.
Get-Mailbox -Server CCR002 -Resultsize Unlimited | where-object { $_.database -match "SCO" } | Get-MailboxPermission | Where-Object { $_.AccessRights -eq "FullAccess" -and $_.IsInherited -match "false" -and $_.user -match "bluteau" } | Select-Object Identity,User| Export-Csv -Path rightsonmb.csv |
Ensuite supprimer ces délégations.
Import-Csv -Path .\rightsonmb.csv | foreach { Remove-MailboxPermission -Identity $_.identity -AccessRights FullAccess -User $_.user } |

