问题标签 [windows-share]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
7603 浏览

python - Python 无法使用 smb 客户端访问文件

使用这个库:https ://pypi.python.org/pypi/PySmbClient我正在尝试通过smbWindows 机器的共享从我的 Ubuntu 机器访问文件。

共享已启动并运行良好,我可以看到文件,但是当我尝试从 Phyton 脚本访问文件时,我不断收到此错误:

我的代码:

0 投票
1 回答
3270 浏览

ubuntu - Ubuntu 17.10 挂载 smb 共享一直失败

我已经在互联网上搜索了大约 2 个小时,但所有建议的修复都不起作用。希望这里有人知道解决此问题的好方法,或者可以为我指明正确的方向。

SMB 服务器是 Synology NAS。

我从 Ubuntu 12 开始就使用这种方法,但现在它不起作用。我做了以下

  1. 安装 cifs
  2. 编辑 /etc/fstab 并添加下一行

    /li>

我已经做过的故障排除

  1. 确保挂载路径存在且为空(/media//windowsshare)
  2. 尝试了所有可用的 sec= 选项
  3. 将 .smbcredentials 文件的权限从 600 设置为 777
  4. 将服务器名称添加到主机文件以防万一
  5. 尝试添加正确的用户名 = 和密码 = 而不是文件
  6. 尝试使用命令行而不是 fstab

在文件资源管理器(其他位置 -> 连接到服务器)中使用相同的凭据连接到共享时,它可以正常工作。

PS 这是 Ubuntu 17.10 的全新安装

sudo mount -a 显示的错误是:

mount error(95): Operation not supported 请参阅 mount.cifs(8) 手册页(例如 man mount.cifs)

如果我需要提供更多信息,请告诉我。

提前致谢。克里斯

0 投票
1 回答
304 浏览

multithreading - FileSystemWatcher 报告文件在网络共享上可用,但找不到文件

背景

我有一个服务器,它有一个\\Server\Share包含 4 个子文件夹的共享文件夹:

  • 出站决赛
  • 出站暂存
  • 入站决赛
  • 入站暂存

所有文件夹都驻留在同一个物理磁盘和分区上,不使用连接点。

我还有几个 WinForms 客户端(最多 10 个)向这个共享写入和读取文件,每个客户端都在多个线程上工作(最多 5 个)。文件由客户端(总共最多 50 个线程)写入\\Server\Share\OutboundStaging文件夹。每个文件都有一个 GUID 的名称,因此不会被覆盖。一旦文件被完全写入,它就会被客户端移动到\\Server\Share\OutboundFinal文件夹中。在同一台服务器上运行的 Windows 服务会将其拾取、删除、处理,然后将具有相同名称的文件写入文件\\Server\Share\InboundStaging夹。一旦文件被完全写入,它就会被\\Server\Share\InboundFinal服务移动到该文件夹​​中。

此 \\Server\Share\InboundFinal 文件夹由每个 WinForms 客户端的每个线程FileSystemWatcher.WaitForChanged(WatcherChangeTypes.Changed | WatcherChangeTypes.Created, timeOut); 使用FileSystemWatcher.Filter直到文件夹中显示特定文件。

我已经阅读了几个关于FileSystemWatcher行为不正常和不报告 UNC 股票变化的 SO 问题。然而,这对我来说不是这样。

我使用的代码如下所示:

这是抛出异常的使用行。

问题

我会假设 fileWatcher.WaitForChanged 只有在具有正确 GUID 名称的文件位于\\Server\Share\InboundFinal文件夹中时才会继续。这正是 FileSystemWatcher 在本地文件夹上的工作方式,但不适用于通过网络访问的文件共享(本地文件,即使通过共享访问,也倾向于工作)。FileSystemWatcher 报告线程正在等待的文件在 FileSystemWatcher\\Server\Share\InboundFinal文件夹中。但是,当我尝试读取文件时,我得到了 FileNotFoundException。读取线程必须等待 3-15 秒才能读取文件。我尝试使用带有Read共享的 FileStream 打开文件。

什么可能导致这种行为?我该如何解决它?理想情况下,FileSystemWatcher.WaitForChanged(WatcherChangeTypes.Changed | WatcherChangeTypes.Created, timeOut);只有在可以读取文件或发生超时时才应继续执行。

0 投票
0 回答
533 浏览

node.js - 节点 fs.writefile 从 Mac 到 Windows 共享

在 Mac 上开发 Node 应用程序时,我尝试使用 fs 模块将文件写入 Windows 共享。它似乎将整个路径视为文件名,而不是将文件保存到正确的目录,而是将其保存到工作目录。

有没有一种简单的方法可以从 Mac 访问此共享?

0 投票
0 回答
108 浏览

wix - Windows 服务仅在启动时无法通过 UNC 路径访问本地共享

我的 Windows 服务在启动时尝试通过其 UNC 路径访问本地共享。

它具有完整的权限并且路径存在,我可以说,因为在启动后很长时间启动我的服务时,一切正常。

但是,在启动时我遇到了错误

我添加了一个重试机制,如果我不受限制地重试,它就可以工作,但这是一个糟糕的设计,可能会导致掩盖实际错误。

我的服务在安装时配置为依赖LanmanServer( svchost.exe),但我不确定这是否是负责在启动时设置网络共享的服务。找不到关于哪个服务或其他组件的文档。也可能是我错误配置了依赖项。从我的wixproj

0 投票
1 回答
16874 浏览

kubernetes - 从 Kubernetes 部署应用程序使用 Windows SMB 共享

我们正在将旧版 java 和 .net 应用程序从本地 VM 迁移到本地 Kubernetes 集群。

许多这些应用程序利用 Windows 文件共享在其他现有系统之间传输文件。与重新设计所有解决方案以避免使用 samba 共享相比,部署到 Kubernetes 的优先级较低,因此如果我们想要迁移,我们将不得不找到一种方法来保持许多东西的原样。

我们使用 Kubeadm 和 Canal 在 3 台 centos 7 机器上设置了一个 3 节点集群。

除了天蓝色卷,我找不到任何积极维护的插件或库来挂载 SMB。

我想出的是在所有节点上使用相同的挂载点在每个 centos 节点上挂载 SMB 共享,即:“/data/share1”,然后我创建了一个本地 PersistentVolume

和索赔,

并将索赔分配给该应用程序。

它适用于每个副本,但是对于在生产中使用本地卷有很大的警告。我不知道有任何其他方法可以做到这一点,也不知道使用此配置的实际注意事项是什么。

我可以用另一种方式吗?如果我监视挂载点并在挂载失败时禁用 kubernetes 中的节点,这可以吗?

0 投票
1 回答
3540 浏览

docker - 将 Windows 共享挂载到 Kubernetes pod

我们正在将一些 Windows 组件 (.net 4.5) 迁移到 Linux 容器 (.net core)。现有系统是一个文件处理器,它监视共享位置并从那里处理文件。我们不能强制现有系统开始在其他位置放置文件,因此新的容器化应用程序必须从相同的共享位置访问。可以从 docker 容器中看到 Windows 共享吗?如果是,那我该如何使用 Kubernetes 部署文件来实现呢?请指教。问候,

0 投票
2 回答
417 浏览

powershell - Powershell 使 RemoteDrive 会话保持打开状态

最小问题:

执行以下操作后,如何正确处理遗留的远程会话连接:


我正在运行的代码大致如下所示:

我的意图是让一组远程机器都调用exe我机器上的一个坐席,通过远程共享公开。

从广义上讲,我:

  • 以我自己的身份连接到远程机器。
  • 捕捉这种联系。
  • 设置一个连接到我的远程驱动器
    • (这是避免双跳问题所必需的,而无需求助CredSsp参见:https ://docs.microsoft.com/en-us/powershell/scripting/setup/ps-remoting-second-hop )
  • 做一些事情
  • 对所有机器重复此操作。
  • 等到远程进程完成。
  • 重新连接到所有机器以删除驱动器和连接会话。

在这结束时,我仍然有: 在此处输入图像描述

这些会话最终似乎会衰减,但并不可靠,并且它能够使允许的最大会话数饱和,从而导致错误说:


更新:

感谢@jrider 的建议Get-SmbSession。在我的脚本的其余部分返回之后运行它:

我显然不希望这个脚本盲目地关闭每个会话,无论它是否与这个脚本相关,所以我想我想将我的会话映射到 IP 地址并关闭任何具有该 IP 地址的东西?有没有人 JustKnow 必要的 PowerShell 咒语来实现这一目标?

0 投票
2 回答
2630 浏览

docker - 挂载错误(13):权限被拒绝 - 在 docker/kubernetes

我对 kubernetes 和 docker 还很陌生,所以请耐心等待。

我正在尝试在 linux 中挂载一个 Windows 共享,该共享包含在 docker 中,这是一个 kubernetes pod。

我设法在 kubernetes 和 docker 中获得了所有正确的权限来手动挂载共享。但是我需要通过 Dockerfile 来完成,因为它需要自动化。

这是我的 Dockerfile:

这是我的 start-script.sh:

现在应该注意的是,我无权访问任何 docker 命令,它们都是由 kubernetes 处理的。Kubernetes 创建 pod 后,日志将显示:

挂载错误(13):权限被拒绝

参考 mount.cifs(8) 手册页(例如 man mount.cifs)

这让我很困惑,因为如果我登录到 kubernetes pod 并手动运行 mount 命令,它就可以正常安装。我错过了什么?

0 投票
1 回答
2993 浏览

php - 如何使用 php 中的凭据访问网络驱动器文件夹?

我正在编写如下所示的 php 代码,其中我想使用 php 中的凭据访问网络驱动器文件夹(音乐)。正在设置凭据,因为我只想将完全访问权限授予特定用户。

$src_dir = '\\\INVEST-OP-001\test\music'; //线#A

音乐文件夹的完整权限/访问权限授予以下凭据:

问题陈述:

我想知道我应该在 Line#A 的 php 代码中进行哪些更改,以便我可以使用 php.ini 中的凭据访问音乐文件夹。