Outils pour utilisateurs

Outils du site


wiki:windows:scripting:serverip

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
wiki:windows:scripting:serverip [2022/11/21 14:52] DEROUET Valentinwiki:windows:scripting:serverip [2022/12/11 15:35] (Version actuelle) DEROUET Valentin
Ligne 1: Ligne 1:
-====== Gérer un AD avec du powershell ====== 
  
 +====== Modification d'IP et des paramètres de l'interface réseau ======
  
-{{ :wiki:windows:scripting:powershell.png?400 |}} 
  
-Cette petite fiche concerne la gestion d'un AD avec Powershell.+{{ :wiki:windows:scripting:ab9mb-sb146.png?400 |}}
  
-### Vérifier un fichier .CSV+Cette petite fiche concerne la gestion d'une carte réseau via CLI sur un windows server installé sans GUI.
  
-```powershell +## Paramétrage d'une carte réseau
-Import-Csv C:\Users\Administrateur\Desktop\Scripts\utilisateurs.csv ";" | Format-Table +
-```+
  
-## Créer des OU et des sous-OU+Sur la version GUI de Windows, nous avons l'habitude d'utiliser ''ncpa.cpl'' pour configurer l'interface.
  
-### Exemple de fichier .CSV+### Lister les cartes réseaux disponibles
  
-[Téléchargeable ici](http://files.stoneset.fr/stoneset/images/powershell/ou.csv).+<code>wmic nicconfig get caption,index,TcpipNetbiosOptions</code>
  
-#### Le script de création des OU :+### Configurer les IP
  
-```powershell +#### Avec netsh
-Import-Module activedirectory+
  
-$ADOU = Import-csv 'C:\Users\Administrateur\Desktop\Scripts\ou.csv'+Connaître le nom de l'interface :
  
-foreach ($ou in $ADou) {+<code>netsh interface ipv4 show config</code>
  
-$name = $ou.name +![alt](https://rdr-it.com/wp-content/uploads/2022/05/ws-config-ip-19-netsh.png)
-$path = $ou.path+
  
-New-ADOrganizationalUnit ` +* Configurer l'interface manuellement :
--Name $name ` +
--path $path `+
  
-write-Host "OU créée.-ForegroundColor Cyan +<code>netsh interface ipv4 set address name="INTERFACENAMEstatic IPADR SUBNETMASK GATEWAY</code>
-+
-```+
  
-## Powershell sur les utilisateurs+* Configurer un serveur DNS :
  
-### Lister les utilisateurs existant dans une OU +<code>netsh interface ipv4 set dns name="INTERFACENAMEstatic DNSSERVER_IP</code>
-```powershell +
-Get-ADUser  -Filter * -SearchBase "OU=Utilisateurs,OU=Megaproduction,DC=dom,DC=megaprod,DC=lan+
-            -Properties Name,GivenName,Surname,EmailAddress,Title  | ` +
-            Select-Object Name,GivenName,Surname,EmailAddress,Title | Ft +
-```+
  
-{{ :wiki:windows:scripting:mremoteng_2k2voiplkx.png?600 |}}+*Rajouter le paramètre ''index=2'' pour configurer un deuxième serveur DNS.*
  
-### Création d'utilisateurs à partir d'un .CSV+* Configurer l'interface via DHCP :
  
-### Exemple de fichier .CSV+<code>netsh interface ipv4 set dnsservers name"YOUR INTERFACE NAME" source=dhcp</code>
  
-[Téléchargeable ici](http://files.stoneset.fr/stoneset/images/powershell/utilisateurs.csv).+#### En powershell
  
-#### Le script de création utilisateurs :+<code>New-NetIPAddress -InterfaceIndex N°Interface -IPAddress IPSERVEUR -PrefixLength 24 -DefaultGateway IPGATEWAY</code>
  
-```powershell +**InterfaceIndex** : Numéro d’index de la carte à modifier (il est possible d’utiliser à la place –InterfaceAlias suivit du nom de l’interface si vous préférez au numéro d’index)   
-Import-Module ActiveDirectory +- **IPAddress** : Adresse IP à attribuer à la carte   
-   +**PrefixLength** Longueur du masque de sous réseau   
-$ADUsers = Import-Csv C:\Users\Administrateur\Desktop\Scripts\utilisateurs.csv +- **DefaultGateway** : Passerelle par défaut
-$UPN = "dom.megaprod.lan"+
  
-foreach ($User in $ADUsers) {+---
  
-    $username = $User.username +* Activer ou non le DHCP :
-    $password = $User.password +
-    $firstname = $User.firstname +
-    $lastname = $User.lastname +
-    $initials = $User.initials +
-    $OU = $User.ou +
-    $email = $User.email +
-    $streetaddress = $User.streetaddress +
-    $city = $User.city +
-    $zipcode = $User.zipcode +
-    $state = $User.state +
-    $country = $User.country +
-    $telephone = $User.telephone +
-    $jobtitle = $User.jobtitle +
-    $company = $User.company +
-    $department = $User.department+
  
-    if (Get-ADUser -F { SamAccountName -eq $username }) { +<code>Set-NetIPInterface -InterfaceIndex N°Interface -Dhcp {Enabled/Disabled}</code>
-        Write-Warning "Compte utilisateur déjà existant." +
-    } +
-    else { +
-        New-ADUser ` +
-            -SamAccountName $username ` +
-            -UserPrincipalName "$username@$UPN"+
-            -Name "$firstname $lastname"+
-            -GivenName $firstname ` +
-            -Surname $lastname ` +
-            -Initials $initials ` +
-            -Enabled $True ` +
-            -DisplayName "$lastname, $firstname"+
-            -Path $OU ` +
-            -City $city ` +
-            -PostalCode $zipcode ` +
-            -Country $country ` +
-            -Company $company ` +
-            -State $state ` +
-            -StreetAddress $streetaddress ` +
-            -OfficePhone $telephone ` +
-            -EmailAddress $email ` +
-            -Title $jobtitle ` +
-            -Department $department ` +
-            -AccountPassword (ConvertTo-secureString $password -AsPlainText -Force) -ChangePasswordAtLogon $True +
-        Write-Host "Utilisateur créé." -ForegroundColor Cyan +
-    } +
-}+
  
-Read-Host -Prompt "Appuyer sur ENTRER pour terminer." +* Supprimer l'ip sur une interface :
-```+
  
-## Création des groupes+<code>Remove-NetIPAddress –InterfaceIndex N°Interface –IPAddress 10.10.10.10 –PrefixLength 16 –DefaultGateway 10.10.10.254</code>
  
-### Exemple de fichier .CSV+* Ajout d'un serveur DNS sur l'interface :
  
-[Téléchargeable ici](http://files.stoneset.fr/stoneset/images/powershell/groupes.csv).+<code>Set-DnsClientServerAddress -InterfaceIndex N°Interface -ServerAddresses 8.8.8.8</code>
  
-#### Le script de création des groupes :+* Vérification de la configuration de la carte réseau :
  
-```powershell +<code>Get-NetIPConfiguration</code>
-Import-Module ActiveDirectory+
  
-$groups = Import-Csv ‘C:\Users\Administrateur\Desktop\Scripts\groupes.csv‘+* Désactiver le NetBIOS :
  
-    foreach ($group in $groups) {+<code>wmic nicconfig where index=N°Interface call SetTcpipNetbios 2</code>
  
-    $groupProps = @{+* Paramètres disponible : 
 + * **0** – Utiliser les paramètres NetBIOS venant du DHCP 
 + * **1** – Activer NetBIOS 
 + * **2** – Désactiver NetBIOS
  
-      Name          = $group.name +## Utilisation de sconfig
-      Path          = $group.path +
-      GroupScope    = $group.scope +
-      GroupCategory = $group.category +
-      Description   = $group.description+
  
-      }+Indiquer le paramètre 8 pour accéder à la configuration réseau.
  
-    New-ADGroup @groupProps +{{ :wiki:windows:scripting:mremoteng_isnevl506w.png?600 |}}
-    Write-Host "Groupe créé." -ForegroundColor Cyan +
-     +
-} +
-Read-Host -Prompt "Appuyer sur ENTRER pour terminer." +
-```+
  
-## Mettre le groupe local dans le groupe global+{{ :wiki:windows:scripting:mremoteng_vnrjafs5tc.png?600 |}}
  
-### Exemple de fichier .CSV+Configurer la carte avec l'utilitaire **SCONFIG** en TUI.
  
-[Téléchargeable ici](http://files.stoneset.fr/stoneset/images/powershell/gl_gg.csv).+## Utilisation d'ipconfig
  
-#### Le script d'ajout de groupe local dans un groupe global :+* Vider le cache DNS : 
 + * /flushdns 
 +* Lacher le serveur DHCP : 
 + * /release 
 +* Refaire une requête au DHCP : 
 + * /renew 
 +* Afficher les informations réseaux de toutes les cartes réseaux : 
 + * /all
  
-```powershell +## Utilisation de la commande route
-Import-Module ActiveDirectory+
  
-$List = Import-Csv "C:\Users\Administrateur\Desktop\Scripts\gl_gg.csv"+* Ajouter une route vers 10.111.20.0
  
 +<code>
 +route -p add 10.111.20.0/22 10.192.43.254 metric 1
 +</code>
  
-foreach ( $Group in $List ) { +{{ :wiki:windows:scripting:chrome_y3hi4pfliy.png?600 |}}
-    foreach ( $MemberOf in $Group.memberof -split ", " ) { +
-        Add-ADGroupMember -Identity $MemberOf -Members $Group.group +
-        } +
-        write-Host "Groupe $Group ajouté dans le groupe global $MemberOf." -ForegroundColor Cyan +
-    } +
-```+
  
-## Ajouter un utilisateur dans un groupe+* Lister toutes les routes actives 
  
-### Exemple de fichier .CSV+<code> 
 +route print 
 +</code>
  
-[Téléchargeable ici](http://files.stoneset.fr/stoneset/images/powershell/utilisateurs_groups.csv). +{{ :wiki:windows:scripting:mremoteng_21m3x8nyu5.png?500 |}}
- +
-#### Le script d'ajout d'utilisateurs dans des groupes : +
- +
-```powershell +
-Import-Module ActiveDirectory +
- +
-$List = Import-Csv "C:\Users\Administrateur\Desktop\Scripts\utilisateurs_groups.csv" +
- +
-foreach ($User in $List) { +
- +
-    $UserSam = $User.SamAccountName +
-    $Groups = $User.Group +
- +
-    $ADUser = Get-ADUser -Filter "SamAccountName -eq '$UserSam'" | Select-Object SamAccountName +
-    $ADGroups = Get-ADGroup -Filter * | Select-Object DistinguishedName, SamAccountName +
- +
-    if ($ADUser -eq $null) { +
-        Write-Host "$UserSam utilisateur non existant." -ForegroundColor Red +
-        Continue +
-    } +
- +
-    if ($Groups -eq $null) { +
-        Write-Host "$UserSam aucun groupe spécifié pour cet utilisateur." -ForegroundColor Yellow +
-        Continue +
-    } +
- +
-    $ExistingGroups = Get-ADPrincipalGroupMembership $UserSam | Select-Object DistinguishedName, SamAccountName +
- +
-    foreach ($Group in $Groups.Split(';')) { +
-  +
-        if ($ADGroups.SamAccountName -notcontains $Group) { +
-            Write-Host "$Le groupe n'existe pas." -ForegroundColor Red +
-            Continue +
-        } +
- +
-        if ($ExistingGroups.SamAccountName -eq $Group) { +
-            Write-Host "$UserSam existe déjà dans le groupe $Group" -ForeGroundColor Yellow +
-        }  +
-        else { +
- +
-            Add-ADGroupMember -Identity $Group -Members $UserSam +
-            Write-Host "L'utilisateur $UserSam a été ajouté dans le groupe $Group" -ForeGroundColor Green +
-        } +
-    } +
-+
-``` +
- +
-## Création de la structure des dossiers +
- +
-*Fonctionnalité :*  +
- +
- - Création de la structure des dossiers +
- - Suppression de l'héritage +
- - Suppression des utilisateurs indésirables +
- - Ajout des groupes et définitions des permissions à partir d'un .csv +
- +
-### Exemple de fichier .CSV +
- +
-[Téléchargeable ici](http://files.stoneset.fr/stoneset/images/powershell/folder_structure.csv). +
- +
-#### Le script d'ajout d'utilisateurs dans des groupes : +
- +
-```powershell +
-Set-Location "C:\" +
-write-Host "Créations de la structure des dossiers..." -ForegroundColor Cyan +
- +
- +
-$Folders = Import-Csv "C:\Users\Administrateur\Desktop\Scripts\folder_structure.csv" +
- +
-ForEach ($Folder in $Folders) {  +
- +
-     if (Test-Path -Path $Folder.Name) { +
-        write-Host "Le dossier existe déjà !" -ForegroundColor Red +
-    else { +
-        New-Item $Folder.Name -type directory  +
-        write-Host "Création du dossier $Folder" -ForegroundColor Green +
-    } +
-     +
-    echo "-------" +
-    echo 'Dossier :' $Folder.Name +
- +
-    write-Host "Supression de l'heritage" -ForegroundColor Cyan +
-     +
-    $acl = Get-ACL -Path $Folder.Name +
-    $acl.SetAccessRuleProtection($True, $True) +
-    Set-Acl -Path $Folder.Name -AclObject $acl +
-    write-Host "OK!" -ForegroundColor Green +
- +
-    write-Host "Supression des utilisateurs non-désirés" -ForegroundColor Cyan +
- +
-    $acl = Get-ACL -Path $Folder.Name +
-    icacls C:\entreprise /remove 'CREATEUR PROPRIETAIRE' /t +
-    $usersid = New-Object System.Security.Principal.Ntaccount ("BUILTIN\Utilisateurs"+
-    $acl.PurgeAccessRules($usersid) +
-    $acl | Set-Acl -Path $Folder.Name +
-    write-Host "OK!" -ForegroundColor Green +
- +
-    write-Host "Ajouter les ACL sur les dossiers" -ForegroundColor Cyan +
- +
-    echo $Folder.Group +
-    echo $Folder.ACL +
-    $acl = Get-Acl -Path $Folder.Name +
-    $AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule($Folder.Group,$Folder.ACL,"Allow"+
-    $acl.SetAccessRule($AccessRule) +
-    $acl | Set-Acl -Path $Folder.Name +
-    write-Host "OK!" -ForegroundColor Green +
-}   +
-``` +
- +
-## Mes sources +
- +
-1. [https://www.it-connect.fr/chapitres/creer-des-utilisateurs-dans-lad-a-partir-dun-csv/](https://www.it-connect.fr/chapitres/creer-des-utilisateurs-dans-lad-a-partir-dun-csv/+
-2. [https://www.alitajran.com/add-users-to-multiple-groups-powershell/](https://www.alitajran.com/add-users-to-multiple-groups-powershell/+
-3. [https://community.spiceworks.com/topic/1286638-insert-global-security-group-into-domain-local-groups-with-csv](https://community.spiceworks.com/topic/1286638-insert-global-security-group-into-domain-local-groups-with-csv) +
-4. [https://blog.netwrix.fr/2018/12/12/comment-gerer-les-listes-de-controle-dacces-acl-au-systeme-de-fichiers-avec-les-scripts-powershell/](https://blog.netwrix.fr/2018/12/12/comment-gerer-les-listes-de-controle-dacces-acl-au-systeme-de-fichiers-avec-les-scripts-powershell/+
-5. [https://petri.com/how-to-use-powershell-to-manage-folder-permissions/#Modifying_files_and_folder_permissions_with_Get-Acl_and_Set-Acl](https://petri.com/how-to-use-powershell-to-manage-folder-permissions/#Modifying_files_and_folder_permissions_with_Get-Acl_and_Set-Acl) +
-6. [https://stackoverflow.com/questions/36103821/how-to-remove-acls-on-remote-disk](https://stackoverflow.com/questions/36103821/how-to-remove-acls-on-remote-disk)+
  
wiki/windows/scripting/serverip.1669038755.txt.gz · Dernière modification : 2022/11/21 14:52 de DEROUET Valentin