Raccourcir le prompt de Powershell.



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] + "> " }



Caractères d’échappement avec Powershell.



Voici la liste des caractères d’échappement disponibles avec Powershell.

Caratères d'échappementRésultat
`nNouvelle ligne
`rRetour chariot
`tTabulation
`aAlarm
`bBackspace
`'Guillemet simple
`"Guillemet double
`0Null
``Backtick
Write-Host "Première ligne`nDeuxième ligne"



Gérer les fichiers et dossiers avec Powershell.



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



Au tableau





Récuperer à distance la version de Windows.



Permet de récupérer à distance la version de Windows.

Get-WmiObject Win32_OperatingSystem -ComputerName "server001" | Select-Object CSName,Caption,OtherTypeDescription,CSDVersion,Version



Importer l’activation de comptes OCS.



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
}



Importer une adresses secondaire sur des boites.



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
}



Rechercher un dossier dans toutes les boites.



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



Un petit moment de détente



Donnez à manger aux poissons.



Lister les boites où a accès un utilisateur.



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 }