如何使用Ruby从服务获取Windows域中的用户名?

时间:2013-08-28 08:51:29

标签: ruby windows

我需要在Windows中获取域用户的名称。

以下是我尝试获取名称的方式,但它们都返回了域名:

1

...
ENV['username'] # or ENV['USERNAME'] or ENV['userid']
...

2

...
require 'etc'
puts Etc.getlogin
...

第3

...
require 'dl/win32'

def get_user_name
  api = Win32API.new(
    'advapi32.dll',
    'GetUserName',
    'PP',
    'i'
  )

  buf = "\0" * 512
  len = [512].pack('L')
  api.call(buf,len)

  buf[0..(len.unpack('L')[0])]
end
...

4

这样返回字符串"system"

...
require 'win32ole'
network=WIN32OLE.new("Wscript.Network")
puts network.username
... 

如何获取用户名或配对域\用户名?

1 个答案:

答案 0 :(得分:0)

无法运行系统命令并将其存储在变量中。

u = `WhoAmI /user` 

现在u有您处理的用户信息,不是吗?