Получить доменного владельца файла в Windows 7

1. 16 28.07.16 14:15 Сейчас в теме
Коллеги, подскажите, кто и как реализовывал получение свойства файла - владелец (учетная запись в домене) в Windows?

Нашел рабочий вариант в C#
string user = System.IO.File.GetAccessControl(path).GetOwner(typeof(System.Security.Principal.NTAccount)).ToString();
Найденные решения
3. LevRusakov 16 09.01.17 11:15 Сейчас в теме
Да, вернулся к теме и всё просто.

	Скрипт = Новый COMОбъект("ADsSecurityUtility");
	
	Сообщить(Скрипт.GetSecurityDescriptor(ИмяФайла, 1, 1).owner);

Но тут исключение надо отработать в случае, например, отсутствия файла.
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. v3rter 28.07.16 14:56 Сейчас в теме
Есть VB скрипты https://blogs.technet.microsoft.com/heyscriptingguy/2004/10/07/how-can-i-determine-the-owner-of-a-file/
для файла
On Error Resume Next
strComputer = “.”
Set objWMIService = GetObject(“winmgmts:” _
      & “{impersonationLevel=impersonate}!\\” & strComputer & “\root\cimv2”)
strFile = “C:\Scripts\My_script.vbs”
Set colItems = objWMIService.ExecQuery _
    (“ASSOCIATORS OF {Win32_LogicalFileSecuritySetting='” & strFile & “‘}” _
        & ” WHERE AssocClass=Win32_LogicalFileOwner ResultRole=Owner”)
For Each objItem in colItems
    Wscript.Echo objItem.ReferencedDomainName
    Wscript.Echo objItem.AccountName
Next
Показать

для папки
On Error Resume Next
strComputer = “.”
Set objWMIService = GetObject(“winmgmts:” _
      & “{impersonationLevel=impersonate}!\\” & strComputer & “\root\cimv2”)
strFile = “C:\Scripts”
Set colItems = objWMIService.ExecQuery _
    (“ASSOCIATORS OF {Win32_LogicalFileSecuritySetting='” & strFile & “‘}” _
        & ” WHERE AssocClass=Win32_LogicalFileOwner ResultRole=Owner”)
For Each objItem in colItems
    Wscript.Echo objItem.ReferencedDomainName
    Wscript.Echo objItem.AccountName
Next
Показать


В 1С подключение будет выглядеть как-то так:
ПолучитьCOMОбъект("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2");


Альтернативный вариант - разбирать результаты команд типа
DIR /Q "c:\windows\system32\notepad.exe"

или более удобной для разбора
wmic datafile where name='c:\\windows\\system32\\notepad.exe'


П.С. Возможно, кавычки в скопипащеных VB-скриптах придется заменить на стандартные.
LevRusakov; +1 Ответить
3. LevRusakov 16 09.01.17 11:15 Сейчас в теме
Да, вернулся к теме и всё просто.

	Скрипт = Новый COMОбъект("ADsSecurityUtility");
	
	Сообщить(Скрипт.GetSecurityDescriptor(ИмяФайла, 1, 1).owner);

Но тут исключение надо отработать в случае, например, отсутствия файла.
Оставьте свое сообщение
Вакансии
Программист 1С/разработчик 1С
Ставрополь
зарплата от 100 000 руб. до 250 000 руб.
Полный день

Ведущий разработчик 1С (Внутренний учет)
Москва
зарплата от 200 000 руб.
Полный день

Инженер - программист 1С/разработчик 1С (middle)
Иркутск
зарплата от 100 000 руб. до 180 000 руб.
Полный день

Программист 1С
Иркутск
зарплата от 100 000 руб. до 180 000 руб.
Полный день

Ведущий разработчик 1С
Новосибирск
зарплата от 120 000 руб. до 150 000 руб.
Полный день