Имя: Пароль:
IT
Админ
Найти файлы по SUID владельца в win2003
0 Asmody
 
08.06.12
12:09
в записях квот в windows 2003 висят безымянные строки с SUID'ами. Подозреваю, что это "останки" уволенных сотрудников. Как бы попроще вычислить файлики с этими "мертвыми" владельцами?
1 smaharbA
 
08.06.12
13:16
dir /q /s \* | findstr /v /i "%USERDOMAIN% BUILTIN" | findstr /r "^[0-3][0-9]\.[0-1][0-9]\.[0-9][0-9]"
2 smaharbA
 
08.06.12
13:24
cmd /v:on /q /c "for /f "tokens=4,*" %a in ('dir /q /s c:\* ^| findstr /v /i "%USERDOMAIN%\ BUILTIN\ %COMPUTERNAME%\" ^| findstr /r "^[0-3][0-9]\.[0-1][0-9]\.[0-9][0-9]"') do echo %~dpnxb"
3 Asmody
 
08.06.12
13:28
класс! спасибо!
4 Asmody
 
08.06.12
13:30
как-то оно пути не так выводит
5 smaharbA
 
08.06.12
13:31
ну не класс конечно
не помешала бы утилита подобная файнд как в ненавистных мне системах ))
6 smaharbA
 
08.06.12
13:32
(4) во втором случае да, там подстановка путей так себе камси-камса
лучше дир делать по папкам, а не от корня
7 Asmody
 
08.06.12
13:48
напоролся на глюк: у папки владелец "мертвый", пытаюсь заменить, говорит: "не могу, унаследован от родителя", лезу к родителю, а там всё ОК
8 Asmody
 
08.06.12
13:54
ой, чует моё сердце, что там ошибки на ФС. а оно на шифрованном рейде…
9 smaharbA
 
08.06.12
14:18
@set @x=0;/*
echo off
set parent=c:\Почта
for /r "%parent%" %%x in (*) do (
   cscript //nologo /e:javascript "%~0" "%%~x"
)
exit /b
*/
if (WScript.Arguments.length==0) WScript.Quit();
var e=new Enumerator(GetObject("winmgmts:").execquery("ASSOCIATORS OF {Win32_LogicalFileSecuritySetting='" + WScript.Arguments.Item(0) + "'} WHERE AssocClass=Win32_LogicalFileOwner ResultRole=Owner"));
for (;!e.atEnd();e.moveNext())
{
   if (!e.item().AccountName)
       WScript.StdOut.WriteLine(WScript.Arguments.Item(0) + ' == ' + e.item().SID);
}
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн