Question [] - import-module ds une fonction
- Ludovic B
- Auteur du sujet
- Hors Ligne
- Membre senior
Réduire
Plus d'informations
- Messages : 48
- Remerciements reçus 1
il y a 5 ans 5 mois #28717
par Ludovic B
[] - import-module ds une fonction a été créé par Ludovic B
Bonjour à tous ,
je voudrais importer le module ActiveDirectory ds une fonction mais helas j'ai un message d'erreur : n'a pas pu etre chargé
voici le script
[code:1]
#region credential
$adminuser = \"xx\xx\"
$mdp = ConvertTo-SecureString -String \"xx\" -AsPlainText -Force
$cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $adminuser, $mdp
#endregion credential
Import-Module ActiveDirectory -Global
#region fonction adduserAd
function adduserAD
{
[CmdletBinding()]
PARAM
(
$nomF,
$prenomF,
$NomcompletF,
$SamAccountNameF,
$UPNF,
$ComputerNameF,
[Parameter(Mandatory = $true, ValueFromPipeline = $true)]
[ValidateNotNull()]
[System.Management.Automation.PSCredential]
[System.Management.Automation.Credential()]
$Credential = [System.Management.Automation.PSCredential]::Empty
)
$command = Invoke-Command -ComputerName $ComputerNameF -ScriptBlock {
# Import-Module ActiveDirectory
$password = \"Password26\" | ConvertTo-SecureString -AsPlainText -Force
$PathOU = \"xx\"
$ScriptPath = \"xx\"
$suffixemail = \"xx\"
$suffixeUPN = \"xx\"
#$initdateexpirationcomptead = [System.DateTime] \"16/11/2016 23:59:59\"
$initdateexpirationcomptead = [System.DateTime] \"2020/11/16 23:59:59\" # date format US
$dateexpirationcomptead = $initdateexpirationcomptead.AddDays(2) # pour ajouter 1 jour
Write-Host $SamAccountNameF -ForegroundColor Yellow
Write-Host $NomcompletF -ForegroundColor Yellow
New-ADUser -Name $using:NomcompletF -GivenName $using:«»prenomF -Surname $using:nomF -SamAccountName $using:«»SamAccountNameF -UserPrincipalName $using:UPNF$suffixeUPN -DisplayName $using:NomcompletF -Path $PathOU -ScriptPath $ScriptPath -AccountExpirationDate $dateexpirationcomptead -AccountPassword $password -Enabled $true
} -Credential $Credential
}
#endregion fonction adduserAd
#region remove-string
function Remove-StringDiacritic
{
<#
.SYNOPSIS
This function will remove the diacritics (accents) characters from a string.
.DESCRIPTION
This function will remove the diacritics (accents) characters from a string.
.PARAMETER String
Specifies the String(s) on which the diacritics need to be removed
.PARAMETER NormalizationForm
Specifies the normalization form to use
msdn.microsoft.com/en-us/library/system....nform(v=vs.110).aspx
.EXAMPLE
PS C:\> Remove-StringDiacritic \"L'été de Raphaël\"
L'ete de Raphael
.NOTES
Francois-Xavier Cat
@lazywinadm
www.lazywinadmin.com
github.com/lazywinadmin
#>
[CMdletBinding()]
PARAM
(
[ValidateNotNullOrEmpty()]
[Alias('Text')]
[System.String[]]$String,
[System.Text.NormalizationForm]$NormalizationForm = \"FormD\"
)
FOREACH ($StringValue in $String)
{
Write-Verbose -Message \"$StringValue\"
try
{
# Normalize the String
$Normalized = $StringValue.Normalize($NormalizationForm)
$NewString = New-Object -TypeName System.Text.StringBuilder
# Convert the String to CharArray
$normalized.ToCharArray() |
ForEach-Object -Process {
if ([Globalization.CharUnicodeInfo]::GetUnicodeCategory($psitem) -ne [Globalization.UnicodeCategory]::NonSpacingMark)
{
[void]$NewString.Append($psitem)
}
}
#Combine the new string chars
Write-Output $($NewString -as [string])
}
Catch
{
Write-Error -Message $Error[0].Exception.Message
}
}
}
#endregion remove-string
$prenomUser = \"laurence\"
$nomUser = \"carronne\"
$prenomUser = Remove-StringDiacritic -String $prenomUser
#$prenomUser | get-member
$nomUserUP = $nomUser.ToUpper()
#$nomUserUP
$nomUserL = $nomUser.ToLower()
#$nomUserL
$prenomUserUP = $prenomUser.ToUpper()
#$prenomUserUP
$prenomUserL = $prenomUser.ToLower()
#$prenomUserL
$Name = $prenomUser + \" \" + $nomUserUP
$SamAccountName = $nomUserUP + \"\" + $prenomUserUP.substring(0, 2)
$Nomcomplet = $nomUserUP + \" \" + $prenomUser
$UPN = $prenomUserL + \".\" + $nomUserL
Write-Host $Name -ForegroundColor Green
Write-Host $SamAccountName -ForegroundColor Green
Write-Host $Nomcomplet -ForegroundColor Green
Write-Host $UPN -ForegroundColor Green
$remoteAction = @{
ComputerNameF = $env:COMPUTERNAME
nomF = $nomUserUP
prenom = $prenomUserL
NomcompletF = $Nomcomplet
SamAccountNameF = $SamAccountName
UPNF = $UPN
}
adduserAD @remoteAction -Credential $cred # ou adduserAD $nomUser $prenomUser
[/code:1]
je ne sais pas ou placer import-module ActiveDirectory
merci de votre aide.
je voudrais importer le module ActiveDirectory ds une fonction mais helas j'ai un message d'erreur : n'a pas pu etre chargé
voici le script
[code:1]
#region credential
$adminuser = \"xx\xx\"
$mdp = ConvertTo-SecureString -String \"xx\" -AsPlainText -Force
$cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $adminuser, $mdp
#endregion credential
Import-Module ActiveDirectory -Global
#region fonction adduserAd
function adduserAD
{
[CmdletBinding()]
PARAM
(
$nomF,
$prenomF,
$NomcompletF,
$SamAccountNameF,
$UPNF,
$ComputerNameF,
[Parameter(Mandatory = $true, ValueFromPipeline = $true)]
[ValidateNotNull()]
[System.Management.Automation.PSCredential]
[System.Management.Automation.Credential()]
$Credential = [System.Management.Automation.PSCredential]::Empty
)
$command = Invoke-Command -ComputerName $ComputerNameF -ScriptBlock {
# Import-Module ActiveDirectory
$password = \"Password26\" | ConvertTo-SecureString -AsPlainText -Force
$PathOU = \"xx\"
$ScriptPath = \"xx\"
$suffixemail = \"xx\"
$suffixeUPN = \"xx\"
#$initdateexpirationcomptead = [System.DateTime] \"16/11/2016 23:59:59\"
$initdateexpirationcomptead = [System.DateTime] \"2020/11/16 23:59:59\" # date format US
$dateexpirationcomptead = $initdateexpirationcomptead.AddDays(2) # pour ajouter 1 jour
Write-Host $SamAccountNameF -ForegroundColor Yellow
Write-Host $NomcompletF -ForegroundColor Yellow
New-ADUser -Name $using:NomcompletF -GivenName $using:«»prenomF -Surname $using:nomF -SamAccountName $using:«»SamAccountNameF -UserPrincipalName $using:UPNF$suffixeUPN -DisplayName $using:NomcompletF -Path $PathOU -ScriptPath $ScriptPath -AccountExpirationDate $dateexpirationcomptead -AccountPassword $password -Enabled $true
} -Credential $Credential
}
#endregion fonction adduserAd
#region remove-string
function Remove-StringDiacritic
{
<#
.SYNOPSIS
This function will remove the diacritics (accents) characters from a string.
.DESCRIPTION
This function will remove the diacritics (accents) characters from a string.
.PARAMETER String
Specifies the String(s) on which the diacritics need to be removed
.PARAMETER NormalizationForm
Specifies the normalization form to use
msdn.microsoft.com/en-us/library/system....nform(v=vs.110).aspx
.EXAMPLE
PS C:\> Remove-StringDiacritic \"L'été de Raphaël\"
L'ete de Raphael
.NOTES
Francois-Xavier Cat
@lazywinadm
www.lazywinadmin.com
github.com/lazywinadmin
#>
[CMdletBinding()]
PARAM
(
[ValidateNotNullOrEmpty()]
[Alias('Text')]
[System.String[]]$String,
[System.Text.NormalizationForm]$NormalizationForm = \"FormD\"
)
FOREACH ($StringValue in $String)
{
Write-Verbose -Message \"$StringValue\"
try
{
# Normalize the String
$Normalized = $StringValue.Normalize($NormalizationForm)
$NewString = New-Object -TypeName System.Text.StringBuilder
# Convert the String to CharArray
$normalized.ToCharArray() |
ForEach-Object -Process {
if ([Globalization.CharUnicodeInfo]::GetUnicodeCategory($psitem) -ne [Globalization.UnicodeCategory]::NonSpacingMark)
{
[void]$NewString.Append($psitem)
}
}
#Combine the new string chars
Write-Output $($NewString -as [string])
}
Catch
{
Write-Error -Message $Error[0].Exception.Message
}
}
}
#endregion remove-string
$prenomUser = \"laurence\"
$nomUser = \"carronne\"
$prenomUser = Remove-StringDiacritic -String $prenomUser
#$prenomUser | get-member
$nomUserUP = $nomUser.ToUpper()
#$nomUserUP
$nomUserL = $nomUser.ToLower()
#$nomUserL
$prenomUserUP = $prenomUser.ToUpper()
#$prenomUserUP
$prenomUserL = $prenomUser.ToLower()
#$prenomUserL
$Name = $prenomUser + \" \" + $nomUserUP
$SamAccountName = $nomUserUP + \"\" + $prenomUserUP.substring(0, 2)
$Nomcomplet = $nomUserUP + \" \" + $prenomUser
$UPN = $prenomUserL + \".\" + $nomUserL
Write-Host $Name -ForegroundColor Green
Write-Host $SamAccountName -ForegroundColor Green
Write-Host $Nomcomplet -ForegroundColor Green
Write-Host $UPN -ForegroundColor Green
$remoteAction = @{
ComputerNameF = $env:COMPUTERNAME
nomF = $nomUserUP
prenom = $prenomUserL
NomcompletF = $Nomcomplet
SamAccountNameF = $SamAccountName
UPNF = $UPN
}
adduserAD @remoteAction -Credential $cred # ou adduserAD $nomUser $prenomUser
[/code:1]
je ne sais pas ou placer import-module ActiveDirectory
merci de votre aide.
Connexion ou Créer un compte pour participer à la conversation.
- Arnaud Petitjean
- Hors Ligne
- Modérateur
il y a 5 ans 5 mois #28718
par Arnaud Petitjean
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Réponse de Arnaud Petitjean sur le sujet Re:[] - import-module ds une fonction
Bonjour Ludoob,
Depuis PowerShell version 3 il n'y a plus besoin d'importer explicitement les modules. Ces derniers, s'ils sont présents dans le path ([code:1]variable $env:«»PSModulePath[/code:1]), se chargent dès lors que l'on fait appel à l'une des commandes du module.
Donc, j'aurai tendance à penser que ton module Active Directory, n'est soit pas installé, soit pas dans le Path...
Arnaud<br><br>Message édité par: Arnaud, à: 11/04/19 14:38
Depuis PowerShell version 3 il n'y a plus besoin d'importer explicitement les modules. Ces derniers, s'ils sont présents dans le path ([code:1]variable $env:«»PSModulePath[/code:1]), se chargent dès lors que l'on fait appel à l'une des commandes du module.
Donc, j'aurai tendance à penser que ton module Active Directory, n'est soit pas installé, soit pas dans le Path...
Arnaud<br><br>Message édité par: Arnaud, à: 11/04/19 14:38
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Connexion ou Créer un compte pour participer à la conversation.
- Ludovic B
- Auteur du sujet
- Hors Ligne
- Membre senior
Réduire
Plus d'informations
- Messages : 48
- Remerciements reçus 1
il y a 5 ans 5 mois #28719
par Ludovic B
Réponse de Ludovic B sur le sujet Re:[] - import-module ds une fonction
le module est bien présent ds le path ,
si je fais un get-command -module ActiveDirectory
ça fonctionne bien
si je fais un get-command -module ActiveDirectory
ça fonctionne bien
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 5 ans 5 mois #28724
par Philippe
Réponse de Philippe sur le sujet Re:[] - import-module ds une fonction
salut ludoob
je vois que tu fais du remote, il est possible que le module ne soit pas sur la machine distante
d'ailleur sur le sujet du remote tu peut l'evité
il existe l'option credential sur New-AdUser
.
je vois que tu fais du remote, il est possible que le module ne soit pas sur la machine distante
d'ailleur sur le sujet du remote tu peut l'evité
il existe l'option credential sur New-AdUser
.
Connexion ou Créer un compte pour participer à la conversation.
- Arnaud Petitjean
- Hors Ligne
- Modérateur
il y a 5 ans 5 mois #28739
par Arnaud Petitjean
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Réponse de Arnaud Petitjean sur le sujet Re:[] - import-module ds une fonction
Ah oui, bien vu Philippe !
Je n'avais pas prêté attention au fait qu'il faisait une exécution distante.
Effectivement, ton module AD n'est pas présent sur ta machine distante.
Le mieux est de ne pas faire de remoting lorsque tu fais des choses dans l'AD car tu vas vite te casser les dents sur la problématique du double saut.
Arnaud
Je n'avais pas prêté attention au fait qu'il faisait une exécution distante.
Effectivement, ton module AD n'est pas présent sur ta machine distante.
Le mieux est de ne pas faire de remoting lorsque tu fais des choses dans l'AD car tu vas vite te casser les dents sur la problématique du double saut.
Arnaud
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 5 ans 5 mois #28742
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:[] - import-module ds une fonction
Salut,
Arnaud écrit:
Reste le cas où le 'service infra' d'une société peut désactiver ce comportement par défaut.
Ceci dit, cela reste très utile en ligne de commande.
Arnaud écrit:
Je pense qu'il est préférable d'expliciter le chargement, d'une part pour la relecture et d'autre part si on souhaite retrouver les dépendances aisément.Depuis PowerShell version 3 il n'y a plus besoin d'importer explicitement les modules.
Reste le cas où le 'service infra' d'une société peut désactiver ce comportement par défaut.
Ceci dit, cela reste très utile en ligne de commande.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.128 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les initiés
- [] - import-module ds une fonction