IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Informations Script PS.


Sujet :

Scripts/Batch

  1. #1
    Candidat au Club
    Homme Profil pro
    Etudiant en Informatique
    Inscrit en
    Décembre 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Etudiant en Informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 2
    Par défaut Informations Script PS.
    Problème : J'aimerais connaître le moyen pour ajouter des "colonnes" personnalisé dav le csv, mais pour les retranscrire en script je ne sais pas faire.
    En gros j'aimerais faire comme le lastName dans le CSV qui correspond à $lname = $user.lastName dans le script. Mais cela avec autre chose, comme par exemple "Imprimante" dans CSV et $imprimante = $user.imprimante dans le script.
    Je sais pas si c'est un peu plus clair ?

    Mon script existant n'est pas bien avancé car je bloque sur mon problème justement... Mais je peut le mettre tout de même (Je vais caché les infos persos, veuillez m'excusé ^^).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    #Force le type d'éxécution
    Set-ExecutionPolicy Unrestricted
    
    #Importe le module Active Directory
    Import-module ActiveDirectory
    Write-Host "Module ActiveDirectory chargé !"
    
    #Importation du fichier CSV
    $user = Import-CSV "C:\Users\?????\Desktop\?????\?????\problemetest.csv" -Delimiter ";"
    Write-Host "Fichiers importés !"
    
    foreach($user in $users) {
    
        $name = $user.firstName + " " + $user.lastName
        $fname = $user.firstName
        $lname = $user.lastName
        $login = $user.firstName + "." + $user.lastName
        $Uoffice = $user.office
        $dept = $user.department
        $Upassword = $user.password
    
        switch($user.office){
            "Paris" {$office = "OU=Paris,OU=Employés,DC=testscript,DC=com"}
            "Marseille" {$office = "OU=Marseille,OU=Employés,DC=testscript,DC=com"}
            "Lyon" {$office = "OU=Lyon,OU=Employés,DC=testscript,DC=com"}
            "Domicile" {$office = "OU=Domicile,OU=Employés,DC=testscript,DC=com"}
    		default {$office = $null}    
        }
    
         try {
                New-ADUser -Name $name -SamAccountName $login -UserPrincipalName $login -DisplayName $name -GivenName $fname -Surname $lname -AccountPassword (ConvertTo-SecureString $Upassword -AsPlainText -Force) -City $Uoffice -Path $office -Department $dept -Enabled $true
                Set-ADUser -Identity $login -Enabled $true
    			echo "Utilisateur ajouté! : $name"
    
    
            } catch{
                echo "Utilisateur non ajouté : $name"
           }
    
       }

    Est-ce plus explicite ? Je vous rejoins mes pièces jointe en plus cohérente et visible.

    1)



    2)



    3)



    EDIT :


    En gros, j'ai un tableau que les employés remplissent pour que je créer leurs comptes AD, pour cela j'ai besoins de toutes leurs infos, s'ils ont besoins d'une imprimante, d'un ordinateur fixe ou portable, quels fonctions ils occupent, s'ils ont les prises réseaux/téléphone requise dans leurs bureau ect... Pour cela ils remplissent le tableau, qui ensuite je transforme en CSV, cependant, comment les informations ou y'a écrit : Imprimante, tablette, téléphone ect peuvent être retranscrite sur le script, car c'est bien beau de l'avoir sur CSV mais c'est le script qui permet d'ajouter cela dans les infos de création de comptes!

    Est-ce plus clair ? Désolé j'ai vraiment du mal à exposé mon problème

  2. #2
    Candidat au Club
    Homme Profil pro
    Etudiant en Informatique
    Inscrit en
    Décembre 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Etudiant en Informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 2
    Par défaut Nouveau script. Me le conseillez-vous?
    Puis-je me servir d'un script comme celui-ci pour mes ajouts d'imprimantes/téléphones/tablettes et autres ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    param (
    	[Parameter(Mandatory, ValueFromPipelineByPropertyname)]
    	[ValidateNotNullOrEmpty()]
    	[string]$FirstName,
    	
    	[Parameter(Mandatory, ValueFromPipelineByPropertyname)]
    	[ValidateNotNullOrEmpty()]
    	[string]$LastName,
    	
    	[Parameter(Mandatory, ValueFromPipelineByPropertyname)]
    	[ValidateNotNullOrEmpty()]
    	[string]$MiddleInitial,
    	
    	[Parameter(Mandatory, ValueFromPipelineByPropertyname)]
    	[ValidateNotNullOrEmpty()]
    	[string]$Department,
    	
    	[Parameter(Mandatory, ValueFromPipelineByPropertyname)]
    	[ValidateNotNullOrEmpty()]
    	[string]$Title,
    
    	[Parameter(Mandatory, ValueFromPipelineByPropertyname)]
    	[ValidateNotNullOrEmpty()]
    	[string]$Imprimante,
    
    	[Parameter(Mandatory, ValueFromPipelineByPropertyname)]
    	[ValidateNotNullOrEmpty()]
    	[string]$Téléphones,
    
    	[Parameter(Mandatory, ValueFromPipelineByPropertyname)]
    	[ValidateNotNullOrEmpty()]
    	[string]$Tablettes,
    Je l'ai trouver sur Internet, sans aucunes modifications il ressemble à ceci, est-il utilisable pour mon besoin? Ou me conseillez-vous de ne pas le prendre pour mon besoin actuel ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    param (
    	[Parameter(Mandatory, ValueFromPipelineByPropertyname)]
    	[ValidateNotNullOrEmpty()]
    	[string]$FirstName,
    	
    	[Parameter(Mandatory, ValueFromPipelineByPropertyname)]
    	[ValidateNotNullOrEmpty()]
    	[string]$LastName,
    	
    	[Parameter(Mandatory, ValueFromPipelineByPropertyname)]
    	[ValidateNotNullOrEmpty()]
    	[string]$MiddleInitial,
    	
    	[Parameter(Mandatory, ValueFromPipelineByPropertyname)]
    	[ValidateNotNullOrEmpty()]
    	[string]$Department,
    	
    	[Parameter(Mandatory, ValueFromPipelineByPropertyname)]
    	[ValidateNotNullOrEmpty()]
    	[string]$Title,
    	
    	[Parameter(ValueFromPipelineByPropertyname)]
    	[ValidateNotNullOrEmpty()]
    	[string]$Location = 'OU=Corporate Users',
    	
    	[Parameter()]
    	[ValidateNotNullOrEmpty()]
    	[string]$DefaultGroup = 'Entreprise01',
    	
    	[Parameter()]
    	[ValidateNotNullOrEmpty()]
    	[string]$DefaultPassword = 'Password01',
    	
    	[Parameter()]
    	[ValidateScript({ Test-Path -Path $_ })]
    	[string]$BaseHomeFolderPath = '\\MEMBERSRV1\Users'
    )
    
    ## Find the distinguished name of the domain the current computer is a part of.
    $DomainDn = (Get-AdDomain).DistinguishedName
    ## Define the 'standard' username (first initial and last name)
    $Username = "$($FirstName.SubString(0, 1))$LastName"
    
    #region Check if an existing user already has the first initial/last name username taken
    Write-Verbose -Message "Checking if [$($Username)] is available"
    if (Get-ADUser -Filter "Name -eq '$Username'"«»)
    {
    	Write-Warning -Message "The username [$($Username)] is not available. Checking alternate..."
    	## If so, check to see if the first initial/middle initial/last name is taken.
    	$Username = "$($FirstName.SubString(0, 1))$MiddleInitial$LastName"
    	if (Get-ADUser -Filter "Name -eq '$Username'"«»)
    	{
    		throw "No acceptable username schema could be created"
    	}
    	else
    	{
    		Write-Verbose -Message "The alternate username [$($Username)] is available."
    	}
    }
    else
    {
    	Write-Verbose -Message "The username [$($Username)] is available"
    }
    #endregion
    
    #region Ensure the OU the user's going into exists
    $ouDN = "$Location,$DomainDn"
    if (-not (Get-ADOrganizationalUnit -Filter "DistinguishedName -eq '$ouDN'"«»))
    {
    	throw "The user OU [$($ouDN)] does not exist. Can't add a user there"
    }
    #endregion
    
    #region Ensure the group the user's going into exists
    if (-not (Get-ADGroup -Filter "Name -eq '$DefaultGroup'"«»))
    {
    	throw "The group [$($DefaultGroup)] does not exist. Can't add the user into this group."
    }
    if (-not (Get-ADGroup -Filter "Name -eq '$Department'"«»))
    {
    	throw "The group [$($Department)] does not exist. Can't add the user to this group."
    }
    #endregion
    
    #region Ensure the home folder to create doesn't already exist
    $homeFolderPath = "$BaseHomeFolderPath\$UserName"
    if (Test-Path -Path $homeFolderPath)
    {
    	throw "The home folder path [$homeFolderPath] already exists."
    }
    #endregion
    
    #region Create the new user
    $NewUserParams = @{
    	'UserPrincipalName' = $Username
    	'Name' = $Username
    	'GivenName' = $FirstName
    	'Surname' = $LastName
    	'Title' = $Title
    	'Department' = $Department
    	'SamAccountName' = $Username
    	'AccountPassword' = (ConvertTo-SecureString $DefaultPassword -AsPlainText -Force)
    	'Enabled' = $true
    	'Initials' = $MiddleInitial
    	'Path' = "$Location,$DomainDn"
    	'ChangePasswordAtLogon' = $true
    }
    Write-Verbose -Message "Creating the new user account [$($Username)] in OU [$($ouDN)]"
    New-AdUser @NewUserParams
    #endregion
    
    #region Add user to groups
    Write-Verbose -Message "Adding the user account [$($Username)] to the group [$($DefaultGroup)]"
    Add-ADGroupMember -Members $Username -Identity $DefaultGroup
    Write-Verbose -Message "Adding the user account [$($Username)] to the group [$($Department)]"
    Add-ADGroupMember -Members $Username -Identity $Department
    #endregion
    
    #region Create the home folder
    Write-Verbose -message "Creating the home folder [$homeFolderPath]..."
    $null = mkdir $homeFolderPath
    #endregion

Discussions similaires

  1. retour d'information via un script PHP
    Par jpboogie dans le forum Flash
    Réponses: 3
    Dernier message: 16/09/2006, 13h28
  2. Recherche d'informations sur les scripts shell ?
    Par donny dans le forum Linux
    Réponses: 11
    Dernier message: 27/06/2006, 13h22
  3. Réponses: 2
    Dernier message: 31/05/2006, 09h58
  4. Réponses: 6
    Dernier message: 27/04/2006, 10h41
  5. [MySQL] Envoi d'informations vers un script externe...
    Par tom06440 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 07/10/2005, 18h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo