5 votes

Monter les partages smb de Windows sur un Mac en utilisant Python

J'aimerais créer un script Python script qui monte un partage smb Windows sur un Mac puis y copie des données. Je tombe sur le premier obstacle, j'ai des problèmes avec le montage du partage. Cela devrait être très facile mais je n'arrive pas à le faire fonctionner. J'ai parcouru l'internet et j'ai quelques pistes :

mount -t smbfs //user@server/sharename share

Cela ne fonctionne pas mais j'ai vu une autre solution qui utilise le module os pour la commande mount :

import os
os.system("mount -t smbfs //user@server/sharename share")

Mais cela ne fonctionne pas non plus.

J'ai également lu qu'il fallait créer un point de montage local pour le partage distant. Est-ce vrai ? Et comment dois-je procéder ?

Merci de nous faire part de vos commentaires.

Tous mes vœux de réussite

Jean

3voto

T-u-s-t-y Points 157

Je pense, avec l'aide de Tony Williams, avoir trouvé la solution. Je monte un partage smb Windows Python script :

import os
directory = "/Users/user.name/foldername"
if not os.path.exists(directory): os.makedirs(directory)
os.system("mount_smbfs //user.name:password@server/servershare ~/foldername")

Cette commande vérifie si un dossier local appelé nom_de_fichier existe et le crée si ce n'est pas le cas. Il montera ensuite le partage smb dans ce dossier en utilisant un nom d'utilisateur/mot de passe défini.

2voto

hmqcnoesy Points 3397

Il s'agit d'une réponse similaire, que j'ai fini par utiliser moi-même.

import os

os.system("osascript -e 'mount volume \"smb://Server/Share\"'")
#Do my important functions
os.system("umount /Volumes/Share")

Les avantages sont les suivants :

  1. Utilise les informations d'identification du trousseau de l'utilisateur actuel
  2. Réveille un Mac endormi pour qu'il s'attache au partage smb.
  3. Crée ou supprime automatiquement le répertoire des pièces jointes dans /Volumes.

Les inconvénients sont les suivants :

  1. La première fois, vous devrez probablement vous attacher manuellement au partage via le Finder. Cela permettra d'établir les informations d'identification dans le trousseau de clés.
  2. Ce n'est peut-être pas courant, mais sur l'un de mes Macs, cette et open ouvrira le serveur et le refermera immédiatement. Ensuite, il fonctionne correctement lors de la deuxième tentative.

Tony a donné un bon conseil : consultez les pages de manuel et essayez d'abord par vous-même à l'invite du shell.

1voto

evilcandybag Points 101

Je vous suggère de commencer à configurer le réseau à l'aide des préférences du système.

Allez dans Préférences système/Réseau/Wi-Fi (ou Ethernet)/Avancé/WINS et réglez votre groupe de travail pour qu'il corresponde au groupe de travail de Windows.

Allez ensuite dans Finder/Go/Connecter au serveur

Essayez de vous connecter en utilisant smb://servername

Une fois que vous pouvez vous connecter, vous pouvez essayer d'automatiser.

0voto

Tony Williams Points 11219

La première chose à faire est d'essayer de le faire fonctionner en ligne de commande.

Que se passe-t-il lorsque vous l'essayez en ligne de commande ?

La première chose que vous remarquerez est que mount demandera probablement le mot de passe de l'utilisateur "user", ce qui n'est pas facile à faire dans un script Python. Ensuite, "share" doit être prêt à être un point de montage et exister dans le répertoire que Python considère comme le répertoire de travail actuel, puisque vous n'avez pas donné de chemin d'accès complet.

J'utiliserais mount_smbfs plutôt que mount. Consultez la page de manuel de cette commande. La ligne de commande devrait ressembler à ceci :

mount smbfs //user:password@server.example.com/sharename /Volumes/Share

en supposant que /Volumes/Share existe en tant que répertoire.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X