标签: smb

如何使用 smbclient 以双面模式打印?

因为我不想向 CUPS 提供有关公司打印机的任何信息,因为我怀疑即使我不在公司网络上它也会尝试访问它,所以我使用以下“脚本”在公司打印机上打印文档由 Windows 打印服务器管理:

smbclient "//printserv.acme.corp/BUILDING0PRINTER1" "password" -c "print /tmp/my.pdf" -U "username" -W "Domain"
Run Code Online (Sandbox Code Playgroud)

该打印机是HP MFP,可以很好地进行双面打印。但是,我的命令不打印双面打印。

我的问题是:如何以双面模式打印 PDF(以便使用纸张的两面,也称为长边翻转)?

我不介意通过在前面添加一些奇怪的 PCL 或 Postscript 命令来扩展我的“脚本”,但我不希望 CUPS 搜索打印机(并可能将我的密码发送到以太中)。

printing smb

4
推荐指数
1
解决办法
875
查看次数

smb(Windows 共享链接)开放协议更改

是否可以指示我的 Windows 8.1 计算机在 Windows 资源管理器中打开如下链接:smb://c:\path to somefolder\?现在,Internet Explorer 会自动响应打开 smb:// 链接的请求,并显示没有安装此类链接 (smb) 的应用程序 - [在商店中查找应用程序]

(我遇到这个问题的原因是因为我在我的机器上使用 mediawiki,并且在某些页面上有文件夹和文件的链接。我希望能够从网络上的任何计算机上单击它们并能够查看该文件/立即文件夹)。

非常感谢。

smb

4
推荐指数
1
解决办法
1万
查看次数

Docker 与共享 Windows 文件夹

我正在尝试从 Docker for Windows 上的 docker 容器中访问远程共享文件夹。

在容器内部运行时dir \\target\share会产生“找不到网络路径。”。可以从容器内部 ping 目标,并且可以从主机系统访问共享。

使用的图像是microsoft/dotnet-framework:4.7.2-sdk,我正在运行它,仅带有-it测试选项。

我错过了什么才能让它发挥作用?

smb docker docker-for-windows

4
推荐指数
1
解决办法
1385
查看次数

文件存在时抛出FileNotFoundException

我正面临这个奇怪的问题.

我正在尝试将位于另一台计算机上的文件作为共享资源读取:

\\remote-machine\dir\MyFileHere.txt
Run Code Online (Sandbox Code Playgroud)

当我运行一个独立的应用程序(16行java文件)时,一切都很好.但是,当我尝试使用相同的类和相同的方法从服务器"引擎"(这是一个应用程序引擎,非常类似于Java EE Application Server,您可以运行Java程序)读取相同的文件时,"FileNotFoundException"被扔了.

我虽然我会获得某种权限,所以我将资源映射为驱动器:K:\

重新运行我的java文件,读取,很好.

在"引擎" - > FileNotFoundException中重新运行我的java文件.

当我将文件复制到本地计算机(C:\ MyFileHere.txt)时,不会抛出异常.

可能导致此FileNotFoundExcecption的原因是什么?

我正在使用Java 1.5

据我所知,引擎几乎透明地使用java.

任何人都面临类似的事情?

附加问题?什么是解决此问题的好方法?我开始考虑提供服务这些文件的tomcat安装并通过http读取它们,但我认为这太多了,这就是为什么SMB协议首先用于它的原因不是吗?也许我无论如何都无法打开插座.

安全管理器可能是原因(我之前从未使用过,但我知道它存在)

如果出现这种情况,是否会抛出SecurityException?

非常感谢.

编辑

解决了.谢谢史蒂夫W.

事实证明,该引擎是使用ZeroG的"LaunchAnywhere"启动的.因此,创建一个.exe,然后将使用指定的应用程序运行JVM.

它自己的这个应用程序是Launcher.当它启动引擎时,不知何故(我无法弄清楚为什么或如何)拥有JVM进程的用户是SYSTEM.史蒂夫指出,该用户没有NETWORK访问权限,因此无法从共享资源或映射驱动器中读取.

解决方法(当我向制造商报告时)是创建一个.cmd文件来手动启动引擎.由于它将手动启动,因此用户可以访问网络.

我使用了SysInternals的"Process Explorer"来确切地知道用于运行引擎应用程序的命令行.

真是一团糟!

感谢那些发布答案的人.

java io smb jvm filenotfoundexception

3
推荐指数
1
解决办法
6736
查看次数

使用 PowerShell 枚举 Linux SMB 共享

我可以列出我自己电脑的共享,没有问题:

gwmi Win32_Share
Run Code Online (Sandbox Code Playgroud)

但是当我尝试

gwmi Win32_Share -computer myserver
Run Code Online (Sandbox Code Playgroud)

myserver运行 BusyBox 的 HP MediaVault mv2120在哪里。我得到回复:Get-WmiObject : The RPC server is unavailable. (Exception from HRESULT: 0x800706BA)

有什么办法可以做到这一点吗?

powershell wmi smb

3
推荐指数
1
解决办法
2922
查看次数

在桌面上挂载 SMB 网络共享

我正在尝试通过 python 将 smb 网络共享安装到桌面上,我不希望将共享安装在文件夹中,但是所有其他安装的共享都是(如果我在 OSX 中使用“连接到服务器”,我想要我的 python 安装要安装在同一位置)。这是当前的Python代码:

directory = os.path.expanduser('~/Desktop')
directory = os.path.normpath(directory)
os.system("mount_smbfs //server/servershare " + directory)
Run Code Online (Sandbox Code Playgroud)

当我运行上面的代码时,发生了一些奇怪的事情。在查找器中,我的家有一个房子的图标,我的用户名更改为安装名称,这有点搞砸了。

python macos smb share mount

3
推荐指数
1
解决办法
8816
查看次数

如何使用JCIFS移动(不复制)文件?

我想知道如何使用JCIFS将文件从SMB共享中的一个文件夹移动到另一个文件夹.

首先,没有任何move()方法.

然后,这种方法:

SmbFile smbFromFile = new SmbFile("smb://...pool/from-here/the-file.pdf", auth);
SmbFile smbToFile = new SmbFile("smb://...pool/to-here/the-file.pdf", auth);
smbFromFile.renameTo(smbToFile);
Run Code Online (Sandbox Code Playgroud)

抛出异常, "The system cannot find the path specified."

重命名仅适用于同一路径.改变参数没有帮助.

现在,我正在使用

smbFromFile = new SmbFile("smb://...pool/from-here/the-file.pdf", auth);
smbToFile = new SmbFile("smb://...pool/to-here", auth);
smbFromFile.copyTo(smbToFile);
smbFromFile.delete();
Run Code Online (Sandbox Code Playgroud)

这感觉有些不对劲.

不幸的是,在文档中我没有找到任何关于移动文件的信息.

有人有更多的信息吗?它应该是SMB的一部分,对(SMB_COM_MOVE)?

smb jcifs

3
推荐指数
1
解决办法
4968
查看次数

使用PowerShell设置新的smb共享时出错

我正在编写一个PowerShell脚本,它将在c驱动器上设置文件夹结构,然后将这些文件夹转换为共享.

使用New-SmbSharecmdlet时,我收到1332或50错误.

使用域我得到1332错误

New-SmbShare -Name "InstallerFiles" -Path "C:\SoftwareDistribution\InstallerFiles" -ContinuouslyAvailable $true -ReadAccess "domain\Authenticated Users"

New-SmbShare : No mapping between account names and security IDs was done. 
At line:1 char:1
+ New-SmbShare -Name "InstallerFiles" -Path "C:\SoftwareDistribution\InstallerFile ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (MSFT_SMBShare:ROOT/Microsoft/Windows/SMB/MSFT_SMBShare) [New-SmbShare], CimException
    + FullyQualifiedErrorId : Windows System Error 1332,New-SmbShare
Run Code Online (Sandbox Code Playgroud)

如果我删除域名,我会得到50错误.

New-SmbShare -Name "InstallerFiles" -Path "C:\SoftwareDistribution\InstallerFiles" -ContinuouslyAvailable $true -ReadAccess "Authenticated Users"

New-SmbShare : The request is not supported. 
At line:1 char:1
+ New-SmbShare -Name "InstallerFiles" -Path "C:\SoftwareDistribution\InstallerFile …
Run Code Online (Sandbox Code Playgroud)

windows powershell smb

3
推荐指数
1
解决办法
5857
查看次数

如何使共享文件夹与Vagrant和Hyper-V一起使用?

后:

  1. 启用Microsoft Hyper-V,如下所述:

https://docs.microsoft.com/zh-cn/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v

  1. 暂时停用我的防病毒软件(Avast)

  2. 以管理员模式启动我的命令行程序(例如“以管理员身份运行”),

  3. 使用Hyper-V实例启动Vagrant(2.2.3):

$ vagrant up

使用以下示例Vagrantfile:

Vagrant.configure("2") do |config|
  config.vm.box = "bento/ubuntu-16.04"
  config.vm.provider "hyperv"
  config.vm.network "public_network"
  config.vm.synced_folder ".", "/vagrant", type: "smb"
  config.vm.provider "hyperv" do |h|
    h.enable_virtualization_extensions = true
    h.linked_clone = true
  end
end
Run Code Online (Sandbox Code Playgroud)
  1. 选择External Virtual Switchswitch to attach to the Hyper-V instance

  2. 在Hyper-V实例启动期间由Vagrant提示时输入Windows(Admin)用户的用户名和密码

我收到以下错误:

Failed to mount folders in Linux guest. This is usually because
the "vboxsf" file system is not available. Please verify that
the guest additions are properly installed …
Run Code Online (Sandbox Code Playgroud)

windows smb hyper-v vagrant

3
推荐指数
1
解决办法
1129
查看次数

如何在 Go 中检测文件夹中的隐藏文件 - 跨平台方法

我正在通过 golang 中的 filePath.Walk 方法迭代已安装的文件夹,但它也会返回隐藏文件。我必须跳过那些隐藏文件。对于 MaxOS 和 Linux,我们可以通过.文件名中的前缀来检测隐藏文件,但是对于 Windows,当我尝试使用GetFileAttributes提供的这种方法时"syscall",它不会检测到这些方法并抛出错误。

使用下面的方法来获取文件

err := filepath.Walk(prefix, func(docPath string, f os.FileInfo, err error) error {

以下是我尝试检测隐藏文件的方法

import (
  "runtime"
  "syscall"
)

func IsHiddenFile(filename string) (bool, error) {

if runtime.GOOS == "windows" {
    pointer, err := syscall.UTF16PtrFromString(filename)
    if err != nil {
        return false, err
    }
    attributes, err := syscall.GetFileAttributes(pointer)
    if err != nil {
        return false, err
    }
    return attributes&syscall.FILE_ATTRIBUTE_HIDDEN != 0, nil
} else {
    // unix/linux …
Run Code Online (Sandbox Code Playgroud)

windows smb mount system-calls go

3
推荐指数
1
解决办法
1736
查看次数