Question Lister les shares d'un domaine

Plus d'informations
il y a 14 ans 6 mois #5375 par Chiqo
Réponse de Chiqo sur le sujet Re:Lister les shares d'un domaine

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.

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:
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 :p

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.\" :laugh:


Joli ! ;)

Laurent Dardenne écrit:
En passant, le lien vers le code javascript est erroné.

Le bon lien
(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 :s

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

Plus d'informations
il y a 14 ans 6 mois #5405 par Chiqo
Réponse de Chiqo sur le sujet Re:Lister les shares d'un domaine
Certaines choses m'échappent sous powershell...


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 :D)

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.

Plus d'informations
il y a 14 ans 6 mois #5406 par Laurent Dardenne
Chiqo écrit:

Le nombre de saut de ligne correspond bien au nombre de share sur le serveur

Tu récupères donc bien une collection d'objet.
Chiqo écrit:

pas très propre ok, mais je savais pas comment récuperer un seul child

Le dernier segment n'est pas nécessaire dans ton cas.
Chiqo écrit:

Hé bien, je n'ai aucun retour...

Ta collection n'est peut être pas directement énumérable, un peu comme les hastables.
Il faut vérifier la pertinence du filtre, mais cela dépend de ceci :
Chiqo écrit:

Je me retrouve donc avec des objets dont je ne sais pas grand chose...

Dans ce cas utilise Get-Member et Get-Type().

Tutoriels PowerShell

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

Plus d'informations
il y a 14 ans 6 mois #5413 par Laurent Dardenne
Ayant le temps d'être curieux j'ai regardé sur mon poste :
[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.

Plus d'informations
il y a 14 ans 6 mois #5483 par Chiqo
Réponse de Chiqo sur le sujet Re:Lister les shares d'un domaine
Hmm, je regarderais ça une fois au boulot, si j'ai le temps...

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.

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