【问题标题】:How to pass -m argument to sambal gem?如何将 -m 参数传递给 sambal gem?
【发布时间】:2021-08-24 19:01:18
【问题描述】:

我已经下载了 sambal gem。这是我知道有效的 smbclient 命令:

smbclient \\10.9.167.71\Dept -U CORP\thinger -m SMB2

我想使用这些完全相同的参数来实例化一个 sambal 客户端对象。这是我尝试过的:

client = Sambal::Client.new(domain: 'CORP', host: '10.9.167.71', share: 'Dept', user: 'thinger', password: '--no-pass')

-m SMB2 被排除在等式之外,但我知道它必须存在才能使其工作。查看文档,我认为无法通过此论点。所以我得到这个也就不足为奇了:

Traceback (most recent call last):
    3: from test.rb:6:in `<main>'
    2: from test.rb:6:in `new'
    1: from /usr/local/bundle/gems/sambal-0.2.2/lib/sambal/client.rb:29:in `initialize'
/usr/local/bundle/gems/sambal-0.2.2/lib/sambal/client.rb:67:in `rescue in initialize': Unknown Process Failed!! (Failed to connect): "Failed to connect" (RuntimeError)
/usr/local/bundle/gems/sambal-0.2.2/lib/sambal/client.rb:64:in `initialize'
test.rb:6:in `new'
test.rb:6:in `<main>'

有办法吗?回顾这个结果我什么都看不到,但我似乎没有足够的经验来理解:

https://github.com/johnae/sambal/blob/master/lib/sambal/client.rb

我想尽量避免在我的 ruby​​ 脚本中直接使用 smbclient 命令 - 简单来说,这似乎是一种痛苦的做事方式。不过,如果必须,我会这样做。

【问题讨论】:

    标签: ruby rubygems samba


    【解决方案1】:

    smbclient 的-m 标志是--max-protocol 的别名。

    通过将max_protocol 选项传递给初始化程序,可以在 sambal 中设置此标志。使用您的其他选项,这将如下所示:

    client = Sambal::Client.new(domain: 'CORP', host: '10.9.167.71', share: 'Dept', user: 'thinger', password: '--no-pass', max_protocol: 'SMB2')
    

    【讨论】:

      猜你喜欢
      • 2016-10-28
      • 2012-07-29
      • 2020-10-09
      • 2012-12-21
      • 2012-01-07
      • 2014-05-03
      • 2015-06-26
      • 2012-01-18
      • 2017-07-14
      相关资源
      最近更新 更多