Exportation des utilisateurs de l’AD
Import-Module ActiveDirectory
Get-ADUser – Filter * -Properties * | export-csv C:\ADutilisateurs.csv
Autorisation pour dossier utilisateur
Import-Module NTFSSecurity
Add-NTFSAccess –Path "C:\Dossier\" –Account "administrateur@domaine.local" –AccessRights Modify
Script automasition Création ou MAJ d'utilisateur dans l'AD depuis CSV
Télécharger le CSV >>> ICI <<<
#Script Ajout et Modification des Utilisateurs de l'AD depuis un fichier csv
#Adrien ANILE 2019-11-07
#Modifié le 2020-03-13
#********************************************************************************
#********************************************************************************
#/!\ INFORMATIONS IMPORTANTES /!\
#Dans le CSV il est important :
# - de mettre les dates sous le format yyyy/MM/dd
# - de respecter les noms des photos du type INITIAL du/des prénoms séparer d'un TIRET puis un POINT suivi du nom complet aussi séparé par des TIRET si le nom est composé du style: "j.doe-500x500.jpg"
# - de respecter les formats de la photo en 500x500 (essayés de cadrer au mieux le visage de l'agent)
# - mettre les photos dans le répertoire : C:\Scripts\AD\PhotosAgents
# - de changer le mot de passe par défaut tous les 1ers de l'an
#Récupérez la date du jour pour le fichier CSV
$datejour = Get-Date -Format "yyyy-MM-dd"
#Entrez un chemin d’accès vers votre fichier d’importation CSV
$ADUsers = Import-csv "C:\Scripts\AD\csv_agents\agents-$datejour.csv" -delimiter ";"
#Initialisation de la connexion à EXCHANGE "DECOMENTER SI PREMIER EXECUTION DU SCRIPT"
$passwordadmin = "PaSSw0rd" | ConvertTo-SecureString -asPlainText -Force
$usernameadmin = "DOMAINE\Administrateur"
$UserCredential = New-Object System.Management.Automation.PSCredential($usernameadmin,$passwordadmin)
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://EXCHANGE.domaine.local/PowerShell/ -Authentication Kerberos -Credential $UserCredential
Import-PSSession $Session -DisableNameChecking
foreach ($User in $ADUsers)
{
$Username = $User.username;
$Password = "PaSSw0rd";
$Prenom = $User.prenom;
$Nom = $User.nom;
$PrenomNom = "$Prenom $Nom"
$Initial = $User.initial;
if ($Initial -eq ""){
$Initial = " "
}
$Description = $User.description;
if ($Description -eq ""){
$Description = " "
}
$NumBureau = $User.numbureau;
if ($NumBureau -eq ""){
$NumBureau = " "
}else{
$NumBureau = " - $NumBureau"
}
$Telinterne = $User.telinterne;
if ($Telinterne -eq ""){
$Telinterne = " "
}
$TelDECT = $User.teldect;
if ($TelDECT -eq ""){
$TelDECT = " "
}
$Telexterne = $User.telexterne;
if ($Telexterne -eq ""){
$Telexterne = " "
}
$Email = $User.emailaddress;
if ($Email -eq ""){
$Email = "$Username@votre-domaine.com"
}
$Adresse = $User.adresse;
if ($Adresse -eq ""){
$Adresse = " "
}
$Ville = "Saint-Louis";
$Region = "68 - Alsace";
$InitPays = "FR";
$CP = "68300";
$LocDef = $User.societe;
if ($LocDef -eq ""){
$LocDef = "NOM D'ORGANISATION"
}
$Fonction = $User.fonction;
if ($Fonction -eq ""){
$Fonction = " "
}
$Service = $User.service;
if ($Service -eq ""){
$Service = " ";
}
$Localisation = $User.localisation;
if ($Localisation -eq ""){
$Localisation = ""
}else{
$localisation = "$Localisation - "
}
$Batiment = $User.batiment;
if ($Batiment -eq ""){
$Batiment = ""
}else{
$Batiment = "$Batiment - "
}
$Etage = $User.etage;
if ($Etage -eq ""){
$Etage = ""
}else{
$Etage = "$Etage"
}
$ChefDeService = $User.chefdeservice;
if ($ChefDeService -eq ""){
$ChefDeService = "administrateur"
}
$UniteOrga = $User.ou;
if ($UniteOrga -eq ""){
$UniteOrga = "OU=Users,DC=domaine,DC=local"
}
$RecyleUniteOrga = "OU=Corbeille,DC=domaine,DC=local";
$datedujour = get-date -format "yyyy/MM/dd"
$datefincontrat = $User.datefincontrat;
if ($datefincontrat -eq ""){
$datefincontrat = $null
}
$nomphoto = $User.nomphoto;
if ($nomphoto -eq ""){
$nomphoto = "C:\Scripts\AD\PhotosAgents\default.jpg"
}else{
$nomphoto = "C:\Scripts\AD\PhotosAgents\$nomphoto"
}
$nommailphoto = $User.nommailphoto;
if ($nommailphoto -eq ""){
$nommailphoto = "C:\Scripts\AD\PhotosAgents\default.jpg"
}else{
$nommailphoto = "C:\Scripts\AD\PhotosAgents\$nommailphoto"
}
#Vérifiez si le compte utilisateur existe déjà dans AD
if (Get-ADUser -F {SamAccountName -eq $Username}){
#On met à jour les information dans l'AD
Get-ADUser -Filter "SamAccountName -eq '$Username'" |
Set-ADUser `
-UserPrincipalName "$Email" `
-surname $Nom `
-givenname $Prenom `
-initials $Initial `
-displayname $PrenomNom `
-Description $Description `
-Office $Localisation$Batiment$Etage$NumBureau `
-OfficePhone $Telinterne `
-Email $Email `
-HomePhone $Telexterne `
-Mobile $TelDECT `
-StreetAddress $Adresse `
-City $Ville `
-State $Region `
-postalCode $CP `
-Country $InitPays `
-Title $Fonction `
-Department $Service `
-Company $LocDef `
-manager $ChefDeService
#On met en place les photos
$Photo = [Byte[]](Get-Content "$nomphoto" -Encoding Byte)
Set-ADUser $Username -Replace @{photo=$Photo}
Set-ADUser $Username -Replace @{jpegPhoto=$Photo}
$thumbPhoto = [Byte[]](Get-Content "$nommailphoto" -Encoding Byte)
Set-ADUser $Username -Replace @{thumbnailPhoto=$thumbPhoto}
#On Renomme l'objet
Get-ADUser -Filter "SamAccountName -eq '$Username'" |
Rename-ADObject `
-NewName $PrenomNom
#On place dans la bonne Unité d'organisation
Get-ADUser -Filter "SamAccountName -eq '$Username'" |
Move-ADObject `
-TargetPath $UniteOrga
#Vérifier s'il y à une date de fin de contrat
if($datefincontrat -eq $null){
#S'il n'y a pas de date de fin de contrat:
#On met comme date d'Expiration du compte "Jamais"
Get-ADUser -Filter "SamAccountName -eq '$Username'" |
Set-ADAccountExpiration `
-DateTime $null
#On affiche le message suivant:
#L'utilisateur "Prénom NOM" a été mis à jour dans l'AD.
Write-Host "L'utilisateur $PrenomNom a été mis à jour dans l'AD sans date de fin de contrat." -ForegroundColor Green
}elseif($datefincontrat -le $datedujour){
#Si la date de fin de contrat est antérieur ou égal à la date du jour:
#On met la date de fin de contrat pour désactiver le compte
Get-ADUser -Filter "SamAccountName -eq '$Username'" |
Set-ADAccountExpiration `
-DateTime $datefincontrat
#On place le compte dans l'unité d'organisation Corbeille
Get-ADUser -Filter "SamAccountName -eq '$Username'" |
Move-ADObject `
-TargetPath $RecyleUniteOrga
#On affiche le message suivant:
#L'utilisateur "Prénom NOM" a été désactivé le "Date de fin de contrat" est mis dans la Corbeille.
Write-Host "L'utilisateur $PrenomNom a été désactivé le $datefincontrat est mis dans la Corbeille." -ForegroundColor Red -BackgroundColor Yellow
}else{
#On met la date de fin de contrat
Get-ADUser -Filter "SamAccountName -eq '$Username'" |
Set-ADAccountExpiration `
-DateTime $datefincontrat
#On affiche le message suivant:
#L'utilisateur "Prénom NOM" va étre désactivé le "Date de fin de contrat"
Write-Host "L'utilisateur $PrenomNom a été mis à jour dans l'AD et va étre désactivé le $datefincontrat" -ForegroundColor Magenta
}
}else{
#Si un utilisateur n’existe pas, créez un nouveau compte utilisateur
#Le compte sera créé dans I’unité d’organisation indiquée dans la variable ou du fichier CSV
New-ADUser `
-SamAccountName $Username `
-UserPrincipalName "$Username@ville-saint-louis.fr" `
-surname $Nom `
-givenname $Prenom `
-Name $PrenomNom `
-Enabled $True `
-ChangePasswordAtLogon $True `
-displayname $PrenomNom `
-Path $UniteOrga `
-AccountPassword (convertto-securestring $Password -AsPlainText -Force)
#Création de l'adresse Email sur le serveur EXCHANGE
Enable-Mailbox "$Email" -Database "Mailbox Database 0586740283"
#Autorisé l'administrateur à accéder à la boîte mail de l'utilisateur
#Add-MailboxPermission -Identity $Username -User Administrateur -AccessRights FullAccess -InheritanceType All
#Rajout des autres information sur l'utilisateur créer
Get-ADUser -Filter "SamAccountName -eq '$Username'" |
Set-ADUser `
-initials $Initial `
-Description $Description `
-Office $Localisation$Batiment$Etage$NumBureau `
-OfficePhone $Telinterne `
-Email $Email `
-HomePhone $Telexterne `
-Mobile $TelDECT `
-StreetAddress $Adresse `
-City $Ville `
-State $Region `
-postalCode $CP `
-Country $InitPays `
-Title $Fonction `
-Department $Service `
-Company $LocDef `
-manager $ChefDeService
#On met en place les photos
$Photo = [Byte[]](Get-Content "$nomphoto" -Encoding Byte)
Set-ADUser $Username -Replace @{photo=$Photo}
Set-ADUser $Username -Replace @{jpegPhoto=$Photo}
$thumbPhoto = [Byte[]](Get-Content "$nommailphoto" -Encoding Byte)
Set-ADUser $Username -Replace @{thumbnailPhoto=$thumbPhoto}
#Vérifier s'il y à une date de fin de contrat
if($datefincontrat -eq $null){
#S'il n'y a pas de date de fin de contrat:
#On met comme date d'Expiration du compte "Jamais"
Get-ADUser -Filter "SamAccountName -eq '$Username'" |
Set-ADAccountExpiration `
-DateTime $null
}else{
#On met la date de fin de contrat
Get-ADUser -Filter "SamAccountName -eq '$Username'" |
Set-ADAccountExpiration `
-DateTime $datefincontrat
}
#On affiche le message suivant:
#L'utilisateur "Prénom NOM" a été crée dans l'AD.
Write-Host "L'utilisateur $PrenomNom a été crée dans l'AD." -ForegroundColor White
}
}
#Couper toutes connexion PSSession "DECOMENTER SI PREMIER EXECUTION DU SCRIPT"
Remove-PSSession -session $session
Suppression de profil temporaire
regedit
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
Puis supprimer tous les S-1-5 -XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.bak
Supprimer user Sophos VPN sous Windows
C:\Program Files (x86)\Sophos\Sophos SSL VPN Client\config
Recharger adresse IP et DNS sur un poste
ipconfig /release
ipconfig /renew
Actuliser l’heure
w32tm /resync
Supprimer un service windows
sc.exe delete Nomduservice
Interconnexion plusieurs réseaux sur un seul et même PC
Activer la passerelle sur le réseau qui distribue internet.
Les autres réseaux ne devront pas avoir de passerelle.
Gérer les fichiers ouverts par d’autre utilisateur
fsmgmt.msc
Changer emplacement AppData
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
GodMode.{ED7BA470-8E54-465E-825C-99712043E01C}
À (a majuscule accent) = Alt+0192
É (e majuscule accent aigu) = Alt+0201
È (e majuscule accent grave) = Alt+0200
Ç (c cédille majuscule) = Alt+0199
Ù (u majuscule accent grave) = Alt+0217
Activation d’une licence d’évaluation
slmgr /dlv
dism /online /get-currentedition
dism /online /set-edition:ServerStandard /productKey:XXXXX-XXXXX-XXXXX-XXXXX-XXXXX /accepteula
slui 3
XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
CONNEXION EXTERIEUR
Test pour boite mail avec problème de connexion depuis l’extérieur
https://www.testconnectivity.microsoft.com/
SPAM
Régler le niveau SCL selon le score <0-9> pour les courriers indésirables
Pour toutes les boîtes aux lettres
Set-OrganizationConfig -SCLJunkThreshold 4
BOITE AUX LETTRES PARTAGEES
Déplacer adresse email standard en boite partagée
Set-Mailbox -Identity email@votre-domaine.com -Type Shared
MAILBOX
Importation d’un fichier .PST vers un dossier dans une boite mail
New-MailboxImportRequest prenom.nom -FilePath \\cheminréseau\*.pst -TargetRootFolder nomdudossier/ -Priority Emergency
Voir statut d’importations
Erreur : Get-MailboxImportRequest -Status Failed
Fini : Get-MailboxImportRequest -Status Completed
En progression : Get-MailboxImportRequest -Status InProgress
Voir statut d’importations avec état d’avancement
Get-MailboxImportRequest -Status InProgress | Get-MailboxImportRequestStatistics
ARCHIVAGES
Activation de l’archive
Enable-mailbox " email@votre-domaine.com " -Archive -ArchiveDatabase MailboxArchives
Désactiver de l’archive
Disable-mailbox " email@votre-domaine.com " -Archive -ArchiveDatabase MailboxArchives
Migration de l’archive depuis un PST existant
New-MailboxImportRequest prenom.nom -FilePath \\cheminréseau\*.pst -IsArchive -TargetRootFolder / -Priority Emergency
Voir statut des migrations
Erreur : Get-MailboxImportRequest -Status Failed
Fini : Get-MailboxImportRequest -Status Completed
En progression : Get-MailboxImportRequest -Status InProgress
Voir statut des migrations avec état d’avancement
Get-MailboxImportRequest -Status InProgress | Get-MailboxImportRequestStatistics
Vider le cache des migrations échouées
Get-MailboxImportRequest -Status Failed | Remove-MailboxImportRequest
Suppression d’une tâche de migration en cours
Remove-MailboxImportRequest -Identity "identifiant\MailboxImport"
Récupération d’une Archive
New-MailboxExportRequest -Mailbox prenom.nom -FilePath \\cheminréseau\*.pst -IsArchive -Priority Emergency
Voir statut des exportations
Erreur : Get-MailboxExportRequest -Status Failed
Fini : Get-MailboxExportRequest -Status Completed
En progression : Get-MailboxExportRequest -Status InProgress
Voir statut des exportations avec état d’avancement
Get-MailboxExportRequest -Status InProgress | Get-MailboxExportRequestStatistics
Vider le cache des exportations échouées
Get-MailboxExportRequest -Status Failed | Remove-MailboxExportRequest
Suppression d’une tâche d’exportation en cours
Remove-MailboxExportRequest -Identity "identifiant\MailboxExport"
AUTRES COMMANDES
Voir la blacklist d’un utilisateur
Get-MailboxJunkEmailConfiguration -Identity "identifiant\MailboxExport" | fl *block*
Voir les blacklist du serveur
Get-SenderFilterConfig | fl *block*
Log message envoyé par
Get-MessageTrackingLog -ResultSize Unlimited -Start "MM/JJ/AAAA" -End "MM/JJ/AAAA" -EventId "Fail" -Sender "email@votre-domaine.com" >> log-identifiant.txt
Convertir ESD en WIM
dism /Get-WimInfo /WimFile:install.esd
dism /export-image /SourceImageFile:install.esd /SourceIndex:6 /DestinationImageFile:install.wim /Compress:max /CheckIntegrity
Trouver le GUID d'un programme à installer
get-wmiobject Win32_Product | Format-Table IdentifyingNumber, Name, LocalPackage -AutoSize
DELL
Configuration des port par défaut
switchport mode trunk
switchport trunk allowed vlan 1,4
dot1x port-control force-authorized
Mettre un port dans un VLAN spécifique
switchport trunk allowed vlan N°_DU_VLAN
switchport access vlan N°_DU_VLAN
Trouver une adresse IP d'un équipement
show arp | include XXXX.XXXX.XXXX
XXXX.XXXX.XXXX étant l'adresse MAC
Sauvegarder la configuration
copy running-config startup-config
ALCATEL
Configuration LLDP
lldp network-policy 1 application voice vlan 4
lldp chassis tlv med network-policy enable
lldp chassis med network-policy 1
Afficher la configuration
show configuration snapshot all
Sauvegarder la configuration dans la mémoire "Working"
write memory
Sauvegarder la configuration dans la mémoire "certified"
copy working certified
Supprimer la configuration
rm /flash/working/boot.cfg
rm /flash/certified/boot.cfg
cd working
reload working no rollback-timout
>yes
Configurer le nom du système (SNMP)
system name NOM_DU_SITE
session prompt default NOM_DU_PROMPTE
system contact NOM_DE_L'ADMINISTRATEUR
system location LOCALISATION
system daylight savings time disable
Création d’un utilisateur et changement du mot de passe
user NOM password PASSWORD
Configurer une adresse IP
ip interface NAME address IP mask MASQUE vlan XXX
Vitesse et mode de fonctionnement d’un port
interfaces slot/port autoneg disable
interfaces slot/port speed 100
interfaces slot/port duplex full
Visualiser une interface
show interface
Visualiser les adresses MAC
show mac-address-table
Visualiser les interfaces IP
show ip interface
Voir la table ARP
show arp
Création de Vlan
vlan N°_DU_VLAN enable name NOM_DU_VLAN
Suppression de Vlan
no vlan N°_DU_VLAN
Ajouter un port dans un Vlan
vlan N°_DU_VLAN port default slot/port
Voir les informations de tous les Vlans
show vlan
Voir plus d’information sur un vlan
show N°_DU_VLAN details
Créer un lien trunk
Il faut tagger les ports par les numéros de Vlans que l’on veut transporter par le lien. Autant de fois que le nombre de Vlan à tagger.
vlan N°_DU_VLAN 802.1Q slot/port
Supprimer un vlan du trunk
vlan N°_DU_VLAN no 802.1Q slot/port
Configuration route par défaut
ip static-route 0.0.0.0/0 gateway IP_DU_ROUTEUR metric 1
Configurer l’adresse du server NTP
ntp server IP_DU_SERVEUR
ntp client enable
Activer le mode flat
bridge mode flat
Port mirroring
port mirroring SESSION source slot/port destination slot/port enable
Désactiver le port mirroring
no port mirroring SESSION
Activer tous les accès distant
aaa authentication default local
Activer seulement l’accès Telnet
aaa authentication telnet local
Activer seulement l’accès web
aaa authentication http local
Configuration SNMP
snmp security no security
snmp authentication trap enable
snmp community map "SMTPVotreDomaine" user "SMTPVotreDomaine" on
snmp station XXX.XXX.XXX.XXX 161 "SMTPVotreDomaine" v2 enable
Activation de l’alimentation POE
lanpower start 1
Voir la table de routage
show ip route
CONFIGURATION DECT SUR CPU
Suppression d’un DECT
Une fois connecté sur le CPUA ou CPUB
dectrm ‘N°POSTE’
YES
YES
Création d’un DECT
Une fois connecté sur le CPUA ou CPUB
dectinston ‘N°POSTE’
NO
YES
Hard Reset Ancien DECT
OK
*
7378423
*
Reset master
Alcatel
Hard Reset Nouveau DECT
Choisir l’icône de droite avec les pointillés
314987
OK jusqu’à la fin de l’opération
EN CAS DE PANNE
Reset carte opérateur
Une fois connecté sur le CPUA ou CPUB
trkstat –r ‘N°ALVEOLE’ ‘N°CARTE’
Si HS
Q
rstcpl ‘N°ALVEOLE’ ‘N°CARTE
Bascule de CPU
twin
Si « YES » et « READY »
bascul
Redémarrage Alvéole à distance
Une fois connecté sur le CPUA ou CPUB
rstcpl ‘N°ALVEOLE’ 0
Y
Ancien réglage DHCP sur AD1, AD2 et AD3
ID constructeur ALCATEL vieux équipement (OPTION 43)
3A 02 00 04 FF
Vérifier DHCP
netadmin -n
12
1
Renvoi immédiat vers mobile
Sur l'interface TEL8770
Sur l'usager il faut aller dans l'onglet Droits
Puis dans No Catégorie d’expl tél
Il faut mettre la valeur 0
Vérifier n° SIP
ipregister