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

1. LevRusakov 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);

Но тут исключение надо отработать в случае, например, отсутствия файла.
Оставьте свое сообщение
Вакансии
Разработчик
Москва
зарплата от 150 000 руб. до 170 000 руб.
Полный день

Аналитик 1С
Москва
зарплата от 150 000 руб. до 200 000 руб.
Полный день

Ведущий программист 1С (Оперативный учет)
Санкт-Петербург
зарплата от 280 000 руб. до 310 000 руб.
Полный день

Ведущий программист 1С (ДО)
Санкт-Петербург
зарплата от 280 000 руб. до 310 000 руб.
Полный день

Ведущий Инженер - программист 1С
Новокузнецк
зарплата от 100 000 руб.
Полный день