Почему я не вижу winlogon.exe, использующего Python поверх Cygwin?

Это файл, который я ищу на компьютере с Windows XP

C:\Windows\System32\winlogon.exe

Я отобразил расширения файлов для всех файлов, проверил «Показать скрытые файлы», проверил «Показать скрытые системные файлы», и я могу видеть файл с помощью проводника, но не могу видеть файл с python. Я даже не могу увидеть файл, используя:

os.system( 'dir C:/Windows/System32/winlogon.exe' )

Я могу увидеть файл с помощью командной строки, запустив

dir C:\Windows\System32\winlogon.exe

документация Python: "На некоторых платформах это функция может вернуть False, если не предоставлено разрешение на выполнение os.stat() для запрошенного файла, даже если путь физически существует».

Я хотел бы использовать обычные библиотеки Python, чтобы сделать это. Я также пробовал команду open(). Как мне найти этот файл с помощью Python?

Примечание. Я использую Python27 под Cygwin в Windows XP. Это потому, что я работаю в сети, и мне проще писать сценарии, которые запускаются из Linux, ssh в клиент Cygwin sshd для Windows, чтобы запускать вещи.


person SomeGuyOnAComputer    schedule 07.11.2013    source источник
comment
Наверняка уже нашли? И вряд ли удивлен, что ОС не позволяет вам получить к нему доступ   -  person Jon Clements♦    schedule 07.11.2013
comment
чего вы на самом деле пытаетесь достичь здесь? определенно больше, чем просто посмотреть, существует ли файл   -  person Joran Beasley    schedule 07.11.2013
comment
@JoranBeasley, за исключением случая проверки существования (здесь всегда так), я не вижу никакой цели, которая, возможно, не является злонамеренной.   -  person Jon Clements♦    schedule 07.11.2013
comment
Мне просто нужно иметь возможность определить, существует ли файл. Если это так, мой сценарий скажет, что он существует. Я работаю в сфере сетевой безопасности, поэтому мы стараемся противодействовать злонамеренным действиям, удаляя важные файлы с помощью MD5.   -  person SomeGuyOnAComputer    schedule 07.11.2013
comment
Почему именно этот файл? Чего вы пытаетесь достичь?   -  person Jon Clements♦    schedule 07.11.2013
comment
win32api, вероятно, поможет сделать то, что вы пытаетесь сделать (при условии, что это не злонамеренный) ... но в основном, если в его окнах есть этот файл ... но вам будет очень трудно получить к нему доступ из python   -  person Joran Beasley    schedule 07.11.2013
comment
Я работаю в компании, которая MD5s важные системные файлы. Если мы не можем обнаружить определенный файл, то мы не можем выполнить его MD5. Вот в чем причина.   -  person SomeGuyOnAComputer    schedule 07.11.2013
comment
Я думаю, что причина, по которой я не смогу увидеть этот файл, заключается в том, что это может быть 64-битный файл. Я использую 64-битную XP на виртуальной машине, но случайно установил 32-битную версию Cygwin. Я устанавливаю новый 64-битный cygwin с демоном sshd, чтобы проверить, не связана ли проблема с архитектурой.   -  person SomeGuyOnAComputer    schedule 07.11.2013
comment
ВОТ ЭТО ДА. Это было проблемой. По-видимому, 32-битный cygwin может видеть только 32-битные файлы, а 64-битный cygwin может видеть все файлы. Я предполагаю, что это была вовсе не проблема с питоном. Спасибо за помощь, ребята!   -  person SomeGuyOnAComputer    schedule 07.11.2013
comment
хорошая находка :) ... странно, интересно, 32-битный python страдает теми же проблемами ... потому что я не запускаю cygwin (хотя я использую 32-битный python), и я не вижу этот файл из python, вы должны опубликовать его как ответ и принять его через несколько дней, когда вы можете   -  person Joran Beasley    schedule 07.11.2013


Ответы (1)


Проблема заключалась в том, что я использовал 64-битную Windows с 32-битным Cygwin. По-видимому, 32-битный Cygwin может видеть только 32-битные файлы, а 64-битный Cygwin может видеть все файлы.

Источник: http://cygwin.com/ml/cygwin/2006-01/msg00444.html

Это может быть верно для всех 32-битных приложений, работающих в 64-битной среде. Еще одна причина, по которой многие 32-битные приложения обновляются до 64-битных, если приложения планируют запускать на существующих 64-битных машинах.

person SomeGuyOnAComputer    schedule 08.11.2013