Question Lister les shares d'un domaine
- Chiqo
- Auteur du sujet
- Hors Ligne
- Nouveau membre
- Messages : 15
- Remerciements reçus 0
Malheuresement, le provider semble actif désormais, je n'ai plus de serveur de tests sous la main, je posterais l'erreur dès que possible.Laurent Dardenne écrit:
Ensuite d'avoir un message d'erreur c'est vrai que ça aidera d'autres à t'aider ou d'essayer, c'est l'intention qui comptes.
Laurent Dardenne écrit:
De mon coté je trouve qu'il est toujours trés intéressant d'avoir un retour.
Pareil, d'autaut plus que ça laisse une trace quelque part, ça m'a déjà aidé ce genre chose
Laurent Dardenne écrit:
On pourrait détourner l'accroche publicitaire du film Alien :
\"Sur Powershell-Scripting.com vous pouvez crier, vous n'êtes pas seul dans les runspaces.\"
Joli !
Le bon lienLaurent Dardenne écrit:
En passant, le lien vers le code javascript est erroné.
(www.winscripter.com/WSH/ADSI/51.aspx)
Ce script JS fonctionne très bien et me retourne les shares de mes serveurs.
J'ai essayer d'écrire l'équivalent PS :
[code:1]
$shares=[ADSI]\"WinNT://$domain/$server/lanmanserver\"
$shares.psbase.children| where-object{$_.psbase.SchemaClassName -eq 'FileShare'}| ForEach-Object {$_.name}[/code:1]
Ce script fonctionne très bien pour les shares de mon server local, mais ne fonctionne plus en remote ! :/
L'impression d'être tout prêt mais encore bien loin
Connexion ou Créer un compte pour participer à la conversation.
- Chiqo
- Auteur du sujet
- Hors Ligne
- Nouveau membre
- Messages : 15
- Remerciements reçus 0
Comme je l'ai dit précedemment, le script JS fonctionne très bien, il me retourne bien une liste de tous les shares.
La convertion PS que j'ai écris :
[code:1]
$shares = [ADSI]\"WinNT://$domain/$server/lanmanserver\"
$shares.psbase.children| where-object{$_.psbase.SchemaClassName -eq 'FileShare'}| ForEach-Object {$_}
[/code:1]
me retourne quelquechose, mais j'ai du mal a saisir !
On dirait que le retour contient bien un certains nombres d'objet qui semblent correspondrent à un share, mais le seul attribut (distinguedName) semble vide (enfin il n'est pas $null ou \"\"), pour chacun des objets..
En donnant un serveur et un domaine dans mon script écris au dessus, j'obtiens :
[code:1]distinguishedName
[/code:1]
Le nombre de saut de ligne correspond bien au nombre de share sur le serveur (j'ai effectué le test sur 4-5 serveurs, toujours cette correspondance).
De plus, un
[code:1]$shares.psbase.children| where-object{$_.psbase.SchemaClassName -eq 'FileShare'}| ForEach-Object {$_}[/code:1]
(pas très propre ok, mais je savais pas comment récuperer un seul child )
Hé bien, je n'ai aucun retour...
Je me retrouve donc avec des objets dont je ne sais pas grand chose...
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
- Messages : 6302
- Remerciements reçus 68
Tu récupères donc bien une collection d'objet.Le nombre de saut de ligne correspond bien au nombre de share sur le serveur
Chiqo écrit:
Le dernier segment n'est pas nécessaire dans ton cas.pas très propre ok, mais je savais pas comment récuperer un seul child
Chiqo écrit:
Ta collection n'est peut être pas directement énumérable, un peu comme les hastables.Hé bien, je n'ai aucun retour...
Il faut vérifier la pertinence du filtre, mais cela dépend de ceci :
Chiqo écrit:
Dans ce cas utilise Get-Member et Get-Type().Je me retrouve donc avec des objets dont je ne sais pas grand chose...
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
- Messages : 6302
- Remerciements reçus 68
[code:1]
$shares = [ADSI]\"WinNT://./lanmanserver\"
#dans ce cas le foreach est nécessaire
$a=$shares.psbase.children.GetEnumerator()|Foreach {$_}
$a.Count #2
$a[0] #ras
#Write-properties $a[0] ok
$a[0].GetType() #erreur
$a[0].Psbase.GetType()|gm #ok
[/code:1]
Pour l'affichage je suppose qu'étant donné que les objets reçus peuvent être de différents type , il n'y a pas d'affichage par défaut.
[code:1]
$shares = [ADSI]\"WinNT://./lanmanserver,session\"
$shares.psbase
#erreur
format-default : Erreur inconnue (0x80005000)
[/code:1]
Voir aussi ce poste
www.vistax64.com/powershell/172091-get-open-file-sessions.html
Sur le site de Mow on trouve cette syntaxe
[code:1]
([adsi]\"WinNT://./LanmanServer,FileService\"
[/code:1]
Ou FileService représente un nom d'interface ADSI, enfin je suppose, je n'ai pas trouvé de doc sur MSDN.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Chiqo
- Auteur du sujet
- Hors Ligne
- Nouveau membre
- Messages : 15
- Remerciements reçus 0
Je suis passé finalement par un net view (parsé), puis un test lecture / écriture...
En tout cas merci pour ton temps !
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les initiés
- Lister les shares d'un domaine