python实现windows文件共享操作
在 Windows 中,如果您无法访问共享文件夹并收到类似的错误消息,可能是由于共享资源的权限配置不正确所致。为了解决这个问题,您可以尝试按照以下步骤设置共享权限:
0. 添加用户访问: 安全选项添加对应用户如everyone
-
确认网络连接: 确保您的计算机和目标计算机(192.168.2.87)在同一局域网中,并且网络连接正常。
-
启用文件和打印机共享: 打开控制面板,进入“网络和共享中心”,确保启用了“文件和打印机共享”。
-
设置共享文件夹: 在要共享的文件夹上右键点击,选择“属性”。
-
共享设置: 在“属性”窗口中,点击“共享”选项卡。
-
设置共享: 点击“高级共享”按钮,在弹出的“高级共享”窗口中,勾选“共享此文件夹”。
-
设置共享名称: 可以使用默认的共享名称,也可以点击“权限”按钮自定义共享名称。
-
共享权限: 在“权限”窗口中,添加需要访问权限的用户或用户组。如果您希望所有人都能访问,可以添加“Everyone”用户组,并给予适当的权限(如读取权限或读写权限)。
-
保存设置: 确认设置后,点击“确定”按钮保存共享设置。
-
检查防火墙和安全设置: 确保没有防火墙或安全软件阻止对共享资源的访问。您可以尝试在目标计算机上暂时禁用防火墙进行测试。
完成上述步骤后,您的共享文件夹应该已经设置好,其他计算机应该能够访问它。请确保在共享设置中谨慎处理权限,以确保文件夹的安全性和隐私性。如果问题仍然存在,您可能需要联系网络管理员或更专业的技术支持,以获取进一步的帮助和解决方案。
import subprocess
import os
# 设置Windows共享信息
share_username = "datagrand"
share_password = "1qaz@WSX"
share_server = "192.168.2.87"
share_folder = "share"
# 构建UNC路径
unc_path = f"\\\\{share_server}\\{share_folder}"
# 使用net use命令进行访问
command = f"net use {unc_path} /user:{share_username} {share_password}"
subprocess.run(command, shell=True)
# 在UNC路径下进行文件操作,例如列出文件
file_list = os.listdir(unc_path)
for file in file_list:
print(file)
# 使用完毕后取消访问
subprocess.run(f"net use {unc_path} /delete", shell=True)
import subprocess
import shutil
import time
def copy_to_linux_share(source_file):
try:
# 设置共享文件夹的本地挂载点
mount_point = "/mnt/bak"
# 替换为实际的 Windows 主机名、用户名和密码
share_folder = "//m.yys.pub/bakups"
windows_username = ""
windows_password = ""
# 使用 mount.cifs 挂载共享文件夹
mount_cmd = f"mount.cifs {share_folder} {mount_point} -o username={windows_username},password={windows_password}"
subprocess.run(mount_cmd, shell=True)
print(mount_cmd)
# 复制文件到共享文件夹,最多尝试 30 次,每次间隔 2 秒
for i in range(30):
try:
shutil.copy(source_file, share_folder.replace('/', '\\'))
break
except Exception as e:
time.sleep(2)
# 卸载共享文件夹
umount_cmd = f"umount {mount_point}"
subprocess.run(umount_cmd, shell=True)
print(f"Linux: File copied successfully to {share_folder}")
except Exception as e:
print(f"Error: {e}")
# 提供 source_file 的值并调用函数
source_file_path = "/path/to/your/file.txt"
copy_to_linux_share(source_file_path)
这个脚本的作用是将文件从本地复制到 Windows 共享文件夹,具体步骤如下:
- 设置共享文件夹的本地挂载点为
/mnt/bak
。 - 替换为实际的 Windows 主机名、用户名和密码,构建
mount.cifs
命令。 - 使用
mount.cifs
命令挂载共享文件夹到本地挂载点。 - 使用
shutil.copy
将文件复制到共享文件夹。脚本会尝试最多 30 次,每次间隔 2 秒。 - 如果复制成功,脚本会输出成功信息;否则,脚本会输出错误信息。
- 使用
umount
命令卸载共享文件夹。
需要注意的是,这个脚本中使用了 subprocess.run
函数执行命令,其中 shell=True
允许通过 shell 解释执行命令。在实际生产环境中,确保仔细验证和过滤用户提供的输入,以防止潜在的安全问题。
本文作者: 永生
本文链接: https://yys.zone/detail/?id=291
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!
发表评论
评论列表 (0 条评论)
暂无评论,快来抢沙发吧!