diff --git a/Windows/Gestion des postes/Gestion des droits d'accès.md b/Windows/Gestion des postes/Gestion des droits d'accès.md index 10338e5..e756da3 100644 --- a/Windows/Gestion des postes/Gestion des droits d'accès.md +++ b/Windows/Gestion des postes/Gestion des droits d'accès.md @@ -10,7 +10,7 @@

Gestion des droits d'accès sous Windows

-# **Gestion des disques via cmd ** +# **Gestion des droits via cmd ** ## afficher des droits d’un dossier / fichier ```cmd icacls @@ -56,7 +56,7 @@ icacls F:\Téléchargement /deny Frederic:(D,RX) > D - delete access --- -# **Gestion des Powershell via cmd ** +# **Gestion des droits via Powershell ** ## afficher des droits d’un dossier / fichier ```powershell diff --git a/Windows/Gestion des postes/Gestion des partages.md b/Windows/Gestion des postes/Gestion des partages.md index e296cf3..9a65978 100644 --- a/Windows/Gestion des postes/Gestion des partages.md +++ b/Windows/Gestion des postes/Gestion des partages.md @@ -1,4 +1,243 @@ -
- ## Obtenir des informations - Voici le contenu du menu déroulant. -
\ No newline at end of file +
+

+ + + +

+
+ +
+

Gestion des partages sous Windows

+
+ +# Gestion des accès au partage + +1. lors de la mise en place du partage il faut ne laisser que les “utilisateur authentifiés” (et les utilisateurs systèmes (admin + système) +2. Accorder le contrôle totale aux utilisateurs identifiés +3. Les autorisations d’ccès seront gérées par les droits NTFS + +# **Gestion des partages via cmd ** +## Définir un partage +```cmd +net share = +``` +- exemple: +```cmd +net share MonPartage=c:\share +``` +> 💡 On peut ajouter un commentaire au partage avec l'option /Remark +--- +## ajouter/modifier les droits d’un partage +- L’option /Grant permet d’indiquer les autorisations sur le partage +```cmd +net share = /GRANT:, +``` +- exemple: +```cmd +net share MonPartage=c:\share /GRANT:Ichbine,Full +``` +> 💡 les droits sont les suivants: +>READ : pour donner accès qu’en lecture sur le partage réseau +>CHANGE : pour donner les autorisations en modifications +>FULL : donne le contrôle total +--- + +# **Gestion des partage avec PowerShell ** + +- Déclarer un partage + + ```powershell + New-SmbShare -Name "nom du partage" -Path "chemin vers le dossier de partage" -FullAccess "groupe d'utilisateur" -ReadAccess "groupe d'utilisateur" + #exemple + New-SmbShare -Name Partage -Path "C:\Partage\" -FullAccess "Administrateurs" -ReadAccess "Utilisateurs" + ``` + +- consulter les droits d’un partage + + ```powershell + Get-SmbShareAccess -Name "nom du partage" + #exemple + Get-SmbShareAccess -Name "Partage" + ``` + +- Gérer les droits NTFS sur le partage + + + + - consulter les droits NTFS du partage + + ```powershell + Get-NTFSAccess -Path "chemin vers le dossier de partage" + #exemple + Get-NTFSAccess -Path "C:\Partage" + ``` + + + + - Ajouter des droits NTFS + + ```powershell + Add-NTFSAccess -Path "chemin vers le dossier de partage" -Account "compte dont on veut vérifier les droits" -AccessRights "type de droits" + #exemple + Add-NTFSAccess -Path "C:\Partage\" -Account "florian@it-connect.local" -AccessRights Modify + ``` + + - Enlever des droits NTFS + + ```powershell + Remove-NTFSAccess -Path "chemin vers le dossier de partage" -Account "compte dont on veut vérifier les droits" -AccessRights "type de droits" + #exemple + Remove-NTFSAccess -Path "C:\Partage\" -Account "florian@it-connect.local" -AccessRights Modify + ``` + +- Configurer le partage + + + + - consulter les droits de Partage + + ```powershell + Get-SmbShareAccess -Name "chemin vers le dossier de partage" -AccountName "compte dont on veut vérifier les droits" + #exemple + Get-SmbShareAccess -Name "C:\Partage\" -AccountName "florian@it-connect.local" + ``` + + - ajouter des droits sur le partage + + ```powershell + Grant-SmbShareAccess -Name "chemin vers le dossier de partage" -AccountName "compte dont on veut vérifier les droits" -AccessRight "type de droit" -Force #permet de ne pas demander de confirmation + #exemple + Grant-SmbShareAccess -Name "Partage" -AccountName "florian@it-connect.local" -AccessRight Read -Force + ``` + + - supprimer des droits sur le partage + + ```powershell + Revoke-SmbShareAccess -Name "chemin vers le dossier de partage" -AccountName "compte dont on veut vérifier les droits" -Force #permet de ne pas demander de confirmation + #exemple + Revoke-SmbShareAccess -Name "Partage" -AccountName "florian@it-connect.local" -Force + ``` + + - Bloquer l’accès à un partage + + ```powershell + Bloke-SmbShareAccess -Name "chemin vers le dossier de partage" -AccountName "compte dont on veut vérifier les droits" -Force #permet de ne pas demander de confirmation + #exemple + Bloke-SmbShareAccess -Name "Partage" -AccountName "florian@it-connect.local" -Force + + #N.B: on peut débloquer en changeant Bloke par Unbloke + ``` + +- Script complet + + ```powershell + param ( + [string]$FolderPath, + [string]$FolderName, + [string]$share + ) + + # Importer le module Active Directory + Import-Module ActiveDirectory + #Install-Module NTFSSecurity + Import-Module NTFSSecurity + + # Définir les noms des groupes + $domain = (Get-ADDomain).DNSRoot + $groupPrefix = "DL-$FolderName" + + $groups = @{ + "Refus" = "$groupPrefix-R" + "ControleTotal" = "$groupPrefix-CT" + "Ecriture" = "$groupPrefix-E" + "Lecture" = "$groupPrefix-L" + } + + # Créer les groupes dans Active Directory + foreach ($key in $groups.Keys) { + $groupName = $groups[$key] + $PathDL = "OU=03-Ressources,OU=22-Services,OU=MT,DC=mt,DC=msprsx,DC=eni" + if (-Not (Get-ADGroup -Filter { Name -eq $groupName })) { + New-ADGroup -Name $groupName -SamAccountName $groupName -GroupScope DomainLocal -Path $PathDL + Write-Host "Created AD Group: $groupName" + } else { + Write-Host "AD Group already exists: $groupName" + } + } + + # Fonction pour partager un dossier + function Share-Folder { + if (-Not (Get-SmbShare -Name $share -ErrorAction SilentlyContinue)) { + New-SmbShare -Name $share -Path $folderPath + $droits_partage = Get-SmbShareAccess -Name $share + foreach ($compte in $droits_partage){ + $compte_list = $compte.AccountName + if($compte_list -notlike "Utilisateurs du domaine"){ + Revoke-SmbShareAccess -AccountName $compte_list -Name $share -Force + Grant-SmbShareAccess -Name $share -AccountName "$domain\Utilisateurs du domaine" -AccessRight Full -Force + } + } + Write-Host "Created share: $share" + } else { + Write-Host "Share already exists: $share" + } + } + + # Fonction gestion des droits NTFS dossier partagé + function Permission-Dossier { + # Ajout des groupes DL au permission du dossier + foreach ($key in $groups.Keys) { + $groupName = $groups[$key] + if ($groupName -like "*-CT"){ + Add-NTFSAccess -Path $folderPath -Account "$groupName@$domain" -AccessRights FullControl + } elseif ($groupName -like "*-E"){ + Add-NTFSAccess -Path $folderPath -Account "$groupName@$domain" -AccessRights ReadAndExecute + } elseif ($groupName -like "*-L"){ + Add-NTFSAccess -Path $folderPath -Account "$groupName@$domain" -AccessRights Read + } + } + # Obtenir la liste des comptes autorisés et leurs permissions sur le chemin spécifié + $compt_autor = Get-NTFSAccess -Path $folderPath + + # Itérer à travers chaque compte autorisé + foreach ($compt in $compt_autor) { + $Account = $compt.Account + $AccessRights = $compt.AccessRights + + # Afficher le nom du compte + Write-Output "Traitement du compte : $Account" + + # Condition pour vérifier si le compte ne contient pas "$share" + if ($Account -notlike "*$share*") { + # Retirer les permissions pour le compte + Write-Output "Retrait des permissions pour le compte : $Account" + Remove-NTFSAccess -Path $folderPath -Account $Account -AccessRights $AccessRights + } else { + Write-Output "Le compte $Account contient 'DATA' et ne sera pas modifié." + } + } + } + + Share-Folder + Permission-Dossier + + Write-Host "Script execution completed." + + ``` \ No newline at end of file diff --git a/liste syntaxe markdown.md b/liste syntaxe markdown.md index e69de29..9b9a6d6 100644 --- a/liste syntaxe markdown.md +++ b/liste syntaxe markdown.md @@ -0,0 +1,161 @@ +# Syntaxe Markdown + +## Titres + +# Titre de niveau 1 +## Titre de niveau 2 +### Titre de niveau 3 +#### Titre de niveau 4 +##### Titre de niveau 5 +###### Titre de niveau 6 + +## Texte en gras et en italique + +**Texte en gras** +*Texte en italique* +***Texte en gras et en italique*** + +
+ titre menu déroulant + Voici le contenu du menu déroulant. +
+ +## Listes + +### Liste non ordonnée + +- Élément 1 +- Élément 2 + - Sous-élément 2.1 + - Sous-élément 2.2 + +### Liste ordonnée + +1. Élément 1 +2. Élément 2 + 1. Sous-élément 2.1 + 2. Sous-élément 2.2 + +## Liens et images + +[Texte du lien](https://exemple.com) +![Texte alternatif](https://exemple.com/image.jpg) + +## Blocs de code + +```python +print("Hello, world!") +``` + +```bash +echo "Bonjour!" +``` + +```javascript +console.log("Hello, world!"); +``` + +```html + + + + Exemple + + +

Hello, world!

+ + +``` + +```css +body { + background-color: lightblue; +} +``` + +```json +{ + "message": "Hello, world!" +} +``` + +```xml +Hello, world! +``` + +```sql +SELECT * FROM utilisateurs; +``` + +```c +#include +int main() { + printf("Hello, world!\n"); + return 0; +} +``` + +```cpp +#include +using namespace std; +int main() { + cout << "Hello, world!" << endl; + return 0; +} +``` + +```java +public class Main { + public static void main(String[] args) { + System.out.println("Hello, world!"); + } +} +``` + +```php + +``` + +```ruby +puts "Hello, world!" +``` + +```go +package main +import "fmt" +func main() { + fmt.Println("Hello, world!") +} +``` + +```rust +fn main() { + println!("Hello, world!"); +} +``` + +```perl +print "Hello, world!\n"; +``` + +## Citations + +> Ceci est une citation. + +## Tableaux + +| Colonne 1 | Colonne 2 | Colonne 3 | +|-----------|-----------|-----------| +| Valeur 1 | Valeur 2 | Valeur 3 | +| Valeur 4 | Valeur 5 | Valeur 6 | + +## Séparateurs + +--- + +## Cases à cocher + +- [ ] Tâche à faire +- [x] Tâche complétée