Question Scanner les lecteurs mappé, connecter un lecteur

Plus d'informations
il y a 12 ans 1 mois #16900 par Laurent Dardenne
Une amélioration, si on souhaite éviter de reconstruire la liste des drives dispo :
[code:1]
#Liste des drives dispo au démarrage du traitement
#Suppose qu'aucun autre traitement crée en // des drives
$FreeDrives=Get-NextFreeDrive

#Liste FIFO
$RemainingDrives=New-Object System.Collections.Queue(,$FreeDrives)
Write-Warning \"Début du traitement: $($RemainingDrives.Count)\"
$RemainingDrives

Write-Warning \"Prochain Drive dispo\"
$RemainingDrives.Dequeue()

Write-Warning \"Les drives restant : $($RemainingDrives.Count)\"
$RemainingDrives
[/code:1]
Reste à modifier la ligne de création :
[code:1]
(New-Object -ComObject WScript.Network).(($RemainingDrives.Dequeue()), $_, $false, $login, $pass) }
[/code:1]
6ratgus écrit:

j'ai pas tester le script final tu me dira si ca marche bien !

Oui tant qu'il n'y a pas d'erreur :P
En cas de gestion d'erreur utiliser $RemainingDrives.Peek() suivi de Dequeue() s'il n'y a pas eu d'erreur.

Tutoriels PowerShell

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

Plus d'informations
il y a 12 ans 1 mois #16910 par Droxolf
Réponse de Droxolf sur le sujet Re:Scanner les lecteurs mappé
merci :)

Bon avec tout ce que vous m'avez donné comme info. J'ai essayé de le refaire mais je suis bloquer à ce niveau là :
[code:1]$base = @(
\"\\srv-ctrx-063\c$\",
\"\\srv-ctx6-203\c$\",
\"\\srv-ctrx-063\c$\",
\"\\srv-ctrx-199\c$\",
\"\\srv-ctx6-199\c$\",
\"\\srv-ctx6-101\c$\",
\"\\srv-ctx6-102\c$\",
\"\\srv-ctx6-103\c$\",
\"\\srv-ctx6-104\c$\",
\"\\srv-ctx6-105\c$\",
\"\\srv-ctx6-106\c$\",
\"\\srv-ctx6-107\c$\",
\"\\srv-ctx6-108\c$\",
\"\\srv-ctx6-109\c$\",
\"\\srv-ctx6-110\c$\",
\"\\srv-ctx6-111\c$\",
\"\\srv-ctx6-112\c$\",
\"\\srv-ctx6-113\c$\",
\"\\srv-ctx6-114\c$\",
\"\\srv-ctx6-115\c$\",
\"\\srv-ctx6-116\c$\",
\"\\srv-ctx6-117\c$\",
\"\\srv-ctx6-118\c$\",
\"\\srv-ctx6-119\c$\",
\"\\srv-ctx6-120\c$\",
\"\\srv-ctx6-121\c$\",
\"\\srv-ctx6-122\c$\",
\"\\srv-ctx6-123\c$\",
\"\\srv-ctx6-124\c$\",
\"\\srv-ctx6-206\c$\"
)

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=\"toto\"
$pass=\"1234\"
# liste des mappages actuel
$map_actu = Get-WmiObject -Class Win32_LogicalDisk -Filter \"DriveType=4\" | foreach {$_.ProviderName}
# comparaison avec la base de ref

$map_compare = Compare-Object -referenceobject $map_actu -DifferenceObject $base

foreach($drive in $map_compare)
{
$connection = New-Object -com Wscript.Network
$connection.MapNetworkDrive((Get-NextFreeDrive)[0],$drive, $false,$login,$pass)
}[/code:1]

quand je fais un déboguage la valeur de mon $drive est :
[code:1]
Input object SideIndicator

\\srv-ctx6-203\c$ =>

[/code:1]

c'est bien evidement ce que me renvoit le $map_compare
Il faudrait que $drive soit sous la forme
[code:1]
\\srv-ctx6-203\c$
[/code:1]
pour qu'il puisse connecter le lecteur.

:dry:<br><br>Message édité par: Droxolf, à: 10/02/14 17:59

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

Plus d'informations
il y a 12 ans 1 mois #16914 par Laurent Dardenne
Pointe la propriété qui t'intéresse et pas l'objet
[code:1]
$drive.inputobject[/code:1]

Tutoriels PowerShell

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

Plus d'informations
il y a 12 ans 1 mois #16941 par Droxolf
Réponse de Droxolf sur le sujet Re:Scanner les lecteurs mappé
merci. mon script avance.

J'aimerais maintenant savoir s'il est possible de déconnecter tout les lecteurs de la base une fois que je clique la \&quot;croix\&quot; de ma form.

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

Plus d'informations
il y a 12 ans 1 mois #16942 par Laurent Dardenne
Droxolf écrit:

la \&quot;croix\&quot; de ma form.

Quelle croix de quelle form ?
Le bouton close de la fenêtre de la console Powershell ?

Tutoriels PowerShell

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

Plus d'informations
il y a 12 ans 1 mois #16944 par Droxolf
Réponse de Droxolf sur le sujet Re:Scanner les lecteurs mappé
j'ai creé une form dans mon script.
voilà un bout de code

[code:1]$form1 = New-Object System.Windows.Forms.Form
$button1 = New-Object System.Windows.Forms.Button
$listBox1 = New-Object System.Windows.Forms.ListBox
$listBox2 = New-Object System.Windows.Forms.ListBox
$radioButton1 = New-Object System.Windows.Forms.RadioButton
$radioButton2 = New-Object System.Windows.Forms.RadioButton
$radioButton3 = New-Object System.Windows.Forms.RadioButton
$radioButton4 = New-Object System.Windows.Forms.RadioButton
$radioButton5 = New-Object System.Windows.Forms.RadioButton
$radioButton6 = New-Object System.Windows.Forms.RadioButton
$radioButton7 = New-Object System.Windows.Forms.RadioButton
$radioButton8 = New-Object System.Windows.Forms.RadioButton
$radioButton9 = New-Object System.Windows.Forms.RadioButton
$radioButton10 = New-Object System.Windows.Forms.RadioButton
$radioButton11 = New-Object System.Windows.Forms.RadioButton
$messagebox = New-Object System.Windows.Forms.MessageBox
$objLabel = New-Object System.Windows.Forms.Label
$objLabel2 = New-Object System.Windows.Forms.Label
$objLabel3 = New-Object System.Windows.Forms.Label
$objLabel4 = New-Object System.Windows.Forms.Label
[/code:1]
quand je lance mon script, ma fenêtre s'ouvre et je peux faire différente actions (copier des fichiers, lancer des scripts...) donc moi ce que je veux au final, c'est quand mon script se lance il mappe tous les drives. et quand je referme ma fenêtre il déconnecte tous les drive correspondant de ma base.

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

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