Question Get-Credential avec Windows.Form

Plus d'informations
il y a 11 ans 8 mois #17811 par IDFNaute
Bonjour,

Comme beaucoup je suis entrain de faire un script de désactivation d'utilisateur AD avec une petite interface graphique (réaliser par ActionScriptEditor 4.0).

Je remercie déjà ce forum qui m'a permis de gérer l'affichage de mes utilisateurs dans une listbox et qui m'a dépanné sur de nombreux points.

Pour \"sécuriser\" le script, j'aimerai qu'il demande à son lancement, les identifiants de l'utilisateur. Pour cela j'ai ajouter au tout début du script (avant la création des Forms) :

[code:1]
$UserCredential = Get-Credential
$Session = New-PSSession -computername DC01.DOMAINE.DEV -Authentication Kerberos -Credential $UserCredential
Import-PSSession $Session
[/code:1]

D'après ISE, lorsque je lance le script, j'ai ces messages d'informations :

PS U:\> D:\_ASE\ASE-FormFinal-0.5.ps1
applet de commande Get-Credential à la position 1 du pipeline de la commande
Fournissez des valeurs pour les paramètres suivants :
Import-PSSession : La création d’un proxy a été ignorée pour la commande « % » car Windows PowerShell n’a pas pu vérifier si le nom de cette commande est sécurisé.
Au caractère D:\_ASE\ASE-FormFinal-0.5.ps1:3 : 1
+ Import-PSSession $Session
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidData : (:) [Import-PSSession], InvalidOperationException
+ FullyQualifiedErrorId : ErrorSkippedUnsafeCommandName,Microsoft.PowerShell.Commands.ImportPSSessionCommand
Import-PSSession : La création d’un proxy a été ignorée pour la commande « ? » car Windows PowerShell n’a pas pu vérifier si le nom de cette commande est sécurisé.
Au caractère D:\_ASE\ASE-FormFinal-0.5.ps1:3 : 1
+ Import-PSSession $Session
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidData : (:) [Import-PSSession], InvalidOperationException
+ FullyQualifiedErrorId : ErrorSkippedUnsafeCommandName,Microsoft.PowerShell.Commands.ImportPSSessionCommand
AVERTISSEMENT : La création d'un proxy a été ignorée pour la commande suivante : « A:, ac, Add-Computer, Add-Content, Add-History, Add-Member, Add-PSSnapin, Add-Type, asnp, B:, C:, cat, cd, cd.., cd\, chdir, Ch
eckpoint-Computer, clc, clear, Clear-Content, Clear-EventLog, Clear-History, Clear-Host, Clear-Item, Clear-ItemProperty, Clear-Variable, clhy, cli, clp, cls, clv, compare, Compare-Object, Complete-Transaction,
Connect-WSMan, ConvertFrom-Csv, ConvertFrom-SecureString, ConvertFrom-StringData, Convert-Path, ConvertTo-Csv, ConvertTo-Html, ConvertTo-SecureString, ConvertTo-Xml, copy, Copy-Item, Copy-ItemProperty, cp, cpi,
cpp, cvpa, D:, dbp, Debug-Process, del, diff, dir, Disable-ComputerRestore, Disable-PSBreakpoint, Disable-PSRemoting, Disable-PSSessionConfiguration, Disable-WSManCredSSP, Disconnect-WSMan, E:, ebp, echo, Enab
le-ComputerRestore, Enable-PSBreakpoint, Enable-PSRemoting, Enable-PSSessionConfiguration, Enable-WSManCredSSP, Enter-PSSession, epal, epcsv, epsn, erase, etsn, Export-Alias, Export-Clixml, Export-Console, Expo
rt-Csv, Export-FormatData, Export-ModuleMember, Export-PSSession, exsn, F:, fc, fl, foreach, ForEach-Object, Format-Custom, Format-List, Format-Table, Format-Wide, ft, fw, G:, gal, gbp, gc, gci, gcm, gcs, gdr,
Get-Acl, Get-Alias, Get-AuthenticodeSignature, Get-ChildItem, Get-ComputerRestorePoint, Get-Content, Get-Credential, Get-Culture, Get-Date, Get-Event, Get-EventLog, Get-EventSubscriber, Get-ExecutionPolicy, Get
-History, Get-Host, Get-HotFix, Get-Item, Get-ItemProperty, Get-Job, Get-Location, Get-Member, Get-Module, Get-PfxCertificate, Get-Process, Get-PSBreakpoint, Get-PSCallStack, Get-PSDrive, Get-PSProvider, Get-PS
Session, Get-PSSessionConfiguration, Get-PSSnapin, Get-Random, Get-Service, Get-TraceSource, Get-Transaction, Get-UICulture, Get-Unique, Get-Variable, Get-Verb, Get-WmiObject, Get-WSManCredSSP, Get-WSManInstanc
e, ghy, gi, gjb, gl, gm, gmo, gp, gps, group, Group-Object, gsn, gsnp, gsv, gu, gv, gwmi, h, H:, help, history, I:, icm, iex, ihy, ii, Import-Alias, Import-Clixml, Import-Csv, Import-LocalizedData, Import-Modul
e, Import-PSSession, ImportSystemModules, Invoke-Command, Invoke-Expression, Invoke-History, Invoke-Item, Invoke-WmiMethod, Invoke-WSManAction, ipal, ipcsv, ipmo, ipsn, ise, iwmi, J:, Join-Path, K:, kill, L:, L
imit-EventLog, lp, ls, M:, man, md, measure, Measure-Command, mi, mkdir, more, mount, move, Move-Item, Move-ItemProperty, mp, mv, N:, nal, ndr, New-Alias, New-Event, New-EventLog, New-Item, New-ItemProperty, Ne
w-Module, New-ModuleManifest, New-Object, New-PSDrive, New-PSSession, New-PSSessionOption, New-Service, New-TimeSpan, New-Variable, New-WebServiceProxy, New-WSManInstance, New-WSManSessionOption, ni, nmo, nsn,
nv, O:, ogv, oh, Out-File, Out-GridView, Out-Host, Out-Null, Out-Printer, Out-String, P:, popd, Pop-Location, prompt, ps, pushd, Push-Location, pwd, Q:, r, R:, rbp, rcjb, rd, rdr, Read-Host, Receive-Job, Regist
er-EngineEvent, Register-ObjectEvent, Register-PSSessionConfiguration, Register-WmiEvent, Remove-Computer, Remove-Event, Remove-EventLog, Remove-Item, Remove-ItemProperty, Remove-Job, Remove-Module, Remove-PSBr
eakpoint, Remove-PSDrive, Remove-PSSession, Remove-PSSnapin, Remove-Variable, Remove-WmiObject, Remove-WSManInstance, ren, Rename-Item, Rename-ItemProperty, Reset-ComputerMachinePassword, Resolve-Path, Restart-
Computer, Restart-Service, Restore-Computer, Resume-Service, ri, rjb, rm, rmdir, rmo, rni, rnp, rp, rsn, rsnp, rv, rvpa, rwmi, S:, sajb, sal, saps, sasv, sbp, sc, select, Select-String, Select-Xml, Send-MailMes
sage, set, Set-Acl, Set-Alias, Set-AuthenticodeSignature, Set-Content, Set-Date, Set-ExecutionPolicy, Set-Item, Set-ItemProperty, Set-Location, Set-PSBreakpoint, Set-PSDebug, Set-PSSessionConfiguration, Set-Ser
vice, Set-StrictMode, Set-TraceSource, Set-Variable, Set-WmiInstance, Set-WSManInstance, Set-WSManQuickConfig, Show-EventLog, si, sl, sleep, sort, Sort-Object, sp, spjb, Split-Path, spps, spsv, start, Start-Job
, Start-Process, Start-Service, Start-Sleep, Start-Transaction, Stop-Computer, Stop-Job, Stop-Process, Stop-Service, Suspend-Service, sv, swmi, T:, tee, Tee-Object, Test-ComputerSecureChannel, Test-Connection,
Test-ModuleManifest, Test-Path, Test-WSMan, Trace-Command, type, U:, Undo-Transaction, Unregister-Event, Unregister-PSSessionConfiguration, Update-FormatData, Update-List, Update-TypeData, Use-Transaction, V:,
W:, Wait-Event, Wait-Job, Wait-Process, where, Where-Object, wjb, write, Write-Debug, Write-Error, Write-EventLog, Write-Host, Write-Output, Write-Progress, Write-Verbose, Write-Warning, X:, Y:, Z: », car cette
opération masquerait une commande locale existante. Utilisez le paramètre AllowClobber si vous souhaitez masquer des commandes locales existantes.

ModuleType Name ExportedCommands


----
Script tmp_uwlm0x4s.f4p {Export-Counter, Get-Counter, Get-WinEvent, Import-Counter...}


Mais il semblerait que le script tourne. Je n'ai pas chercher à aller plus loin, ayant rentrer un compte admin avec pouvoir, je souhaitais avoir votre retour pour savoir si c'était normal et la bonne façon de procéder.

Bien à vous

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 8 mois #17812 par Laurent Dardenne
Salut,
tu souhaites faire de l'implicite remoting ou exécuter un script à distance et récupérer le résultat en local ?

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 8 mois #17820 par IDFNaute
Je m'étais pas vraiment posé la question. Je ne me rends pas bien comptes les avantages et inconvénient des deux solutions.

Qu'il soit éxecuté en local ou bien à distance ne me pose pas vraiment de problème, c'est surtout le fait qu'il doit récupérer les Crédential d'un utilisateur pour faire les modifications dans l'AD.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 8 mois #17823 par Laurent Dardenne
IDFNAUTE écrit:

Qu'il soit exécuté en local ou bien à distance ne me pose pas vraiment de problème

En local, c'est à dire un poste Seven par exemple, ton IHM fonctionnera et l'appel à distance, afin d'accéder aux cmdlets AD, également.
L'exécution à distance d'une IHM n'est pas possible.

L'implicite remoting permet d'adresser des cmdlets d'un serveur distant à partir d'un poste, comme s'ils étaient en local ( pas besoin d'Invoke-Command).

C'est la commande qui ici génère le message d'erreur, je ne connais pas ce message, mais peut le générer en local :
[code:1]
$Session = New-PSSession -computername localhost
Import-PSSession $Session
[/code:1]
Par défaut ton appel charge toutes les commandes ( cf. -AllowClobber).

Ceci devrait fonctionner
[code:1]
$UserCredential = Get-Credential
$Session = New-PSSession -computername DC01.DOMAINE.DEV -Authentication Kerberos -Credential $UserCredential
Import-PSSession $Session -Module ActiveDirectory
[/code:1]
Si je me souviens bien les deux versions de PS doivent être identique sur les deux machines (à confirmer).<br><br>Message édité par: Laurent Dardenne, à: 11/07/14 11:14

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 8 mois #17827 par IDFNaute
Merci Laurent, effectivement en local c'est très bien.

J'avais pas pensé à vérifier la version de PS. Je suis pratiquement sur que c'est du 2.0 sur le DC et du 3.0 sur ma machine.

Je vais essayer cette après midi la solution proposée.

Merci bien !<br><br>Message édité par: IDFNAUTE, à: 11/07/14 12:19

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 8 mois #17830 par Laurent Dardenne
IDFNAUTE écrit:

Je suis pratiquement sur que c'est du 2.0 sur le DC et du 3.0 sur ma machine.

Dans ce cas, sur ton poste, code ton script avec la version 2 :
[code:1]powershell.exe -version 2.0[/code:1]

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.052 secondes
Propulsé par Kunena