Как получить имя пользователя из сети (Windows)?

1

Я использую Files.getOwner() чтобы попытаться сделать журнал папок, создаваемых в сети, однако это возвращает идентификатор, как Files.getOwner() ниже.

S-1-5-21-1027050117-121514058-1707179805-77926 (Unknown)

Каким будет лучший способ получить имя пользователя, а не идентификатор выше?

Теги:
file
networking

2 ответа

0

В Windows 7 с JDK 8, когда я запускаю следующий код Java

System.out.println(Files.getOwner(Paths.get("C:\\test\\test.txt")));

в текстовом файле, который я только что создал, я получаю следующий вывод:

chris-PC\chris_2 (User)

Где chris-PC - мое имя компьютера, а chris_2 - моя учетная запись пользователя Windows. Когда я искал эту проблему, я нашел этот пост, где у кого-то есть такая же проблема, как у вас с диском samba. Ответ представлен следующим образом:

Насколько мне известно, это внутренний идентификатор пользователя, который Windows отображает, когда он не может - по какой-либо причине - перевести его на реальное имя пользователя.

Я не знаю, как Samba предоставляет владельцам файлов и папок Windows, но я бы сказал, что Windows не может найти этого пользователя. Этот пользователь существует в unix, он, вероятно, не имеет никакого отношения к машине Windows, обращающейся к этому ресурсу. Вам, вероятно, придется установить обе системы таким образом, чтобы они могли делиться определениями пользователей (например, поместить их в домен Windows), чтобы иметь возможность отображать имя пользователя в Windows. (Просто гадать.)

Итак, я не уверен, можно ли разумно решить эту проблему.

  • 0
    Хорошо, спасибо в любом случае.
0

Вы можете попробовать System.getProperty("user.name"); Это вернет переменную среды USERNAME.

  • 2
    Я имею в виду имя пользователя владельца папки / файла, а не имя пользователя системы, на которой запущена программа.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню