Question
Scanner les lecteurs mappé, connecter un lecteur
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
msdn.microsoft.com/fr-fr/library/system....ng%28v=vs.80%29.aspx
Voir aussi :
Closed, événement
Closing, événement
FormClosed, événement
FormClosing, événement
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Droxolf
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
- Messages : 7
- Remerciements reçus 0
Est ce que la fonction MapNetworkDrive renvoie une valeur ?
[code:1]
$connection.MapNetworkDrive((Get-NextFreeDrive)[0],$drive, $false,$login,$pass)
[/code:1]
car je voudrais tester s'il a bien connecté le drive ou non afin d'affiché à l'utilisateur le drive qui n'a pas été connecté ?
genre :
[code:1]
function Get-NextFreeDrive
{
68..90 | ForEach-Object { \"$([char]$_):\" } |
Where-Object { 'h:', 'k:', 'z:' -notcontains $_ } |
Where-Object { (new-object System.IO.DriveInfo $_).DriveType -eq 'noRootdirectory' }
}
$login=\"******\"
$pass=\"*******\"
# liste des mappages actuel
$map_actu = Get-WmiObject -Class Win32_LogicalDisk -Filter \"DriveType=4\" | foreach {$_.ProviderName}
$map_actu_lettre = Get-WmiObject -Class Win32_LogicalDisk -Filter \"DriveType=4\" | foreach {$_.DeviceID}
# comparaison avec la base de ref
$map_compare = Compare-Object -referenceobject $map_actu -DifferenceObject $base -property name -passThru
foreach($drive in $map_compare)
{
$connection = New-Object -com Wscript.Network
$test_drive=$connection.MapNetworkDrive((Get-NextFreeDrive)[0],$drive, $false,$login,$pass)
if ($test_drive = 0)
{
$listBox1.Items.Add(\"le drive\" +$drive+ \" est connecté\")
else
$listBox1.Items.Add(\"le drive\"+$drive+ \"n'est pas connecté\")
}
}
[/code:1]
Message édité par: Droxolf, à: 13/02/14 17:58<br><br>Message édité par: Droxolf, à: 13/02/14 17:58
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
Non, voir la doc .Est ce que la fonction MapNetworkDrive renvoie une valeur ?
Droxolf écrit:
Oui, c'est le soucis avec cet objet COM, je comptais écrire une version plus robuste, mais pas eu le temps.
car je voudrais tester s'il a bien connecté le drive ou non afin d'affiché à l'utilisateur le drive qui n'a pas été connecté ?
D'après un retour client, il y a un bug potentiel sur un TSE je crois. Les drived ne sont pas montés dans un logon script et le code ne déclenche pas d'exception. Je crois que le client avait placé des délais juste après le code de création pour résoudre ce pb, mais je n ai pas eu de confirmation sur ce point.<br><br>Message édité par: Laurent Dardenne, à: 13/02/14 18:17
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Droxolf
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
- Messages : 7
- Remerciements reçus 0
Oui, c'est le soucis avec cet objet COM, je comptais écrire une version plus robuste, mais pas eu le temps.
D'après un retour client, il y a un bug potentiel sur un TSE je crois. Les drived ne sont pas montés dans un logon script et le code ne déclenche pas d'exception. Je crois que le client avait placé des délais juste après le code de création pour résoudre ce pb, mais je n ai pas eu de confirmation sur ce point.<br><br>Message édité par: Laurent Dardenne, à: 13/02/14 18:17
pourtant quand je lance mon script dans la console powershell il y a bien un message d'erreur quand il n'arrive pas à se connecter dessus.
<br><br>Message édité par: Droxolf, à: 14/02/14 07:56Exception calling \"MapNetworkDrive\" with \"5\" argument(s): \"Le nom de périphérique local a une connexion mémorisée sur une autre ressource réseau.
\"
At C:\Users\mdehondt\Desktop\scripts\XML\app.ps1:84 char:44
+ $connection.MapNetworkDrive <<<< ((Get-NextFreeDrive)[0],$drive, $false,$login,$pass)
+ CategoryInfo : NotSpecified: (: ) [], MethodInvocationException
+ FullyQualifiedErrorId : ComMethodTargetInvocation
Connexion ou Créer un compte pour participer à la conversation.
- ANTRI Mohamed
- Hors Ligne
- Membre premium
-
- Messages : 124
- Remerciements reçus 0
Si tu as l'erreur tu pourrais alors créer un [code:1]try catch[/code:1] afin de lancer du code Powershell lorsque une exception est levé.
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
Je me suis mal exprimé, comme le propose Antri tu peux gérer les exceptions déclenchées par cet objet, mais dans le cas que je signalais, le drive n'est pas monté et l'objet ne déclenche aucune exception.pourtant quand je lance mon script dans la console powershell il y a bien un message d'erreur quand il n'arrive pas à se connecter dessus.
Pour s'assurer que l'appel à réussi, placer un délai (250 ms) puis vérifier si le drive existe avec la bonne configuration. Sinon scripter autour de code C#+ P/Invoke .<br><br>Message édité par: Laurent Dardenne, à: 14/02/14 11:35
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Scanner les lecteurs mappé, connecter un lecteur