понедельник, 21 января 2013 г.

PsExec: Make sure that the default admin$ share is enabled on COMPNAME

При запуске PsExec получаем ошибку:
e:\Программы\Sysinternals>psexec \\COMPNAME -u admin -p adminpass cmd.exe /c hostname

PsExec v1.98 - Execute processes remotely
Copyright (C) 2001-2010 Mark Russinovich
Sysinternals - www.sysinternals.com

Couldn't access COMPNAME:
═х эрщфхэ ёхЄхтющ яєЄ№.

Make sure that the default admin$ share is enabled on COMPNAME.

Решение данной проблемы следующее.

1. Необходимо проверить, что имеется общий ресурс admin$:
c:\>net share

Общее имя   Ресурс                        Заметки

-------------------------------------------------------------------------------
ADMIN$       C:\WINDOWS                      Удаленный Admin
C$           C:\                             Стандартный общий ресурс
IPC$                                         Удаленный IPC

Если есть общие папки, но нет именно admin$, то следует выполнить команду:
net share admin$ /yes

Если общих папок вообще нет, то
  • для Windows 2000 Professional необходимо создать параметр и выполнить перезагрузку:
    reg add "HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" /v AutoShareWks /t REG_DWORD /d 1
    shutdown /r /t 0
  • для Windows 2000 Server необходимо создать параметр и выполнить перезагрузку:
    reg add "HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" /v AutoShareServer /t REG_DWORD /d 1
    shutdown /r /t 0
  • для Windows XP Home такая возможность в принципе не поддерживается
  • для Windows XP Professional/Corporate зайти в меню проводника "Сервис" > "Свойство папки". На вкладке "Вид" в "Дополнительных параметрах" необходимо снять галочку "Использовать простой общий доступ к файлам (рекомендуется)".


  • для Windows Vista/7/8 выполнить команду и перезагрузить компьютер (взято отсюда и отсюда):
    reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System" /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1
    shutdown /r /t 0
    После перезагрузки общий ресурс должен появиться.

2. Включить в настройках сетевого адаптера "Служба доступа к файлам и принтерам сетей Microsoft":


3. Проверить в брандмауэре исключение правила "Общий доступ к файлам и принтерам":


Теперь команды выполняются:
e:\Программы\Sysinternals>psexec \\COMPNAME -u admin -p adminpass cmd.exe /c hostname

PsExec v1.98 - Execute processes remotely
Copyright (C) 2001-2010 Mark Russinovich
Sysinternals - www.sysinternals.com


COMPNAME
cmd.exe exited on COMPNAME with error code 0.

Полезно почитать:
http://en.wikipedia.org/wiki/Administrative_share
http://forum.ru-board.com/topic.cgi?forum=8&topic=2911&start=0
http://forum.ixbt.com/topic.cgi?id=7:36444

2 комментария:

  1. А выполнить net share admin$ /yes - чем не вариант?

    ОтветитьУдалить
    Ответы
    1. Ваш вопрос ввёл в меня в ступор. Я думаю, одно дело, когда служба Server не запущена (или какой компонент ОС отвечает за это) и поэтому нет общих папок, а другое когда служба работает, но убран общий доступ и Вами указанная команда предоставит доступ к ресурсу admin$. Хотя её безусловно надо также попробовать, если есть общие папки кроме admin$.

      Спасибо!

      Удалить