Как использовать psexec без прав администратора на целевой машине?


27

Можно ли использовать psexecдля выполнения команды на удаленном компьютере, не имея прав администратора на удаленном компьютере?

Я попытался запустить psexec \\<machine> -u <username> -p <password>, где <username>и не <password>являются правами администратора, но я получаю сообщение об ошибке "Отказано в доступе"

Я могу без проблем использовать удаленный рабочий стол на удаленной машине с теми же учетными данными.

На моем локальном компьютере установлена ​​64-разрядная версия Windows 7 Enterprise, а на удаленном компьютере - 64-разрядная версия Windows Server 2008. У меня есть права администратора на локальной машине.

РЕДАКТИРОВАТЬ : Для всех людей, которые понижают этот вопрос: я не пытаюсь обойти какие-либо меры безопасности. Я уже могу запустить процесс на удаленном компьютере, запустив его на удаленном компьютере и запустив его. Я просто ищу способ командной строки сделать то, что я уже могу сделать через графический интерфейс.


Это плохой вопрос, потому что на этом сайте мы возражаем, чтобы конечные пользователи спрашивали нас, как обойти системы безопасности. Возможно, вам следует прочитать это: meta.serverfault.com/questions/1659/… , а затем прочитать FAQ.
Джон Гарденье

7
Я не пытаюсь обойти какую-либо систему безопасности. Я пытаюсь сделать что-то, что я уже могу сделать через графический интерфейс, а не через командную строку, что мне кажется более удобным. Пожалуйста, объясните мне, как это обходит систему безопасности.
HC4 - восстановить Монику

4
Много раз, когда у человека, являющегося администратором, есть веские причины для поиска способа запуска процесса без использования полных административных прав. Иногда, конечно, это невозможно или нецелесообразно, но если несколько настроек системы могут изменить различие между полным открытием системы и настройкой доступа к ней с использованием более ограниченной учетной записи, то часто бывает полезно сделать работа должна была выполняться под более ограниченной учетной записью.
Шеннон Вагнер

8
Я управляю хостами Windows, Linux и UNIX в своей должности, и если бы я отвечал на вопрос пользователя, нападая на него за то, что он задал вопрос, я бы вскоре остался без работы. Этот человек не запрашивает способ обойти административные права. Он запрашивает метод использования PSEXEC с ограниченными правами для запуска процесса, который он уже имеет права для запуска через графический интерфейс.
Роберт Эберс

Ответы:


26

Как найдено по адресу: /programming/534426/psexec-help-needed

У вас должны быть права администратора на цель, так как часть psexec запускает службу Windows на цели, и вам нужны права администратора, чтобы сделать это.

psexec копирует файл psexecsvc в общий ресурс администратора, а затем с помощью удаленного управления запускает службу, использующую этот файл. Он открывает именованные каналы и использует их для дальнейшего общения. Когда это закончено, это прибирает за собой.

Хотя я не могу найти официальную документацию, которая говорит то же самое.


5

Попросите быть локальным администратором на машине.

Изменить: Или запустить команду как запланированное задание. Или используйте параметр -l в PsExec: Запустите процесс как пользователь с ограниченными правами (удаляет группу «Администраторы» и разрешает только привилегии, назначенные группе «Пользователи»). В Windows Vista этот процесс выполняется с низким уровнем целостности. Смотрите здесь: http://technet.microsoft.com/en-us/sysinternals/bb897553 . Извините, но RTFM!

Например: чтобы запустить Internet Explorer с ограниченными правами, используйте эту команду:

psexec -l -d "c: \ program files \ internet explorer \ iexplore.exe"

Обратите внимание, что пароль передается в виде открытого текста на удаленную систему.


1
Системные администраторы не позволят этого, и в этом не должно быть необходимости. Это не обязательно в Linux.
HC4 - восстановить Монику

4
@ HighCommander4, какая разница, важно ли это в Linux? Это среда Windows. Хватит сравнивать яблоки с апельсинами.
Джон Гарденье

2
@John: я просто объяснял, что я не пытаюсь делать что-то, что требует прав администратора. У меня есть две машины с учетной записью на каждой, и я пытаюсь удаленно запустить процесс на одной машине с другой машины. Это кажется мне очень естественным, и абсурдно требовать права администратора для этого.
HC4 - восстановить Монику

@ HighCommander4, то, что вы пытаетесь сделать, это административный доступ к удаленному компьютеру, требует административного доступа в Windows. Хотя это может показаться вам абсурдным, это имеет смысл для тех, кто должен управлять сетью Windows.
Джон Гарденерс

4
@John: Что такое «административный» в запуске программы от вашего имени?
HC4 - восстановить Монику

2

Нет, не в полезной форме. Почему вы хотите сделать это, а не быть администратором?


2
Попросите администратора домена сделать это за вас. Что не должно быть проблемой, если только то, что вы делаете, является подозрительным, верно?
Сафадо

2
Попросить моего администратора домена сделать то, что для меня? Я уже могу запустить процесс путем удаленного доступа к компьютеру с помощью учетной записи без прав администратора и запуска процесса под этой учетной записью, то есть самому процессу не требуются права администратора. Я просто хочу иметь возможность делать это из командной строки, а не удаленного рабочего стола в машину.
HC4 - восстановить Монику

1
Можно ли установить ssh на Windows Server без прав администратора? Если да, не могли бы вы указать мне ссылку? Я пробовал OpenSSH, но, похоже, требуются права администратора.
HC4 - восстановить Монику

1
@tony roth: вам не нужны повышенные привилегии для запуска демона SSH в Linux. Вам просто нужны повышенные привилегии для запуска его на привилегированном порту (0-1023). Вы можете настроить как клиент, так и сервер для использования непривилегированного порта, без необходимости повышенных разрешений на любой машине.
HC4 - восстановить Монику

2
И на самом деле мне удалось настроить OpenSSH на сервере Windows без каких-либо привилегий администратора, запустив демон SSH на непривилегированном порту. Продолжайте и опускайте меня за то, что я осмелился взять на себя инициативу по повышению моей производительности на работе, не посоветовавшись сначала со святыми сисадминами.
HC4 - восстановить Монику


0

Решением будет использование сценария AutoIT для входа на удаленный рабочий стол по расписанию с вашей рабочей станции. Ваша папка запуска запускает ваш процесс с помощью пакетного сценария или другого сценария AutoIT (так что вы можете отменить его, если выполняете другую работу). Это не командная строка, но она автоматизирует вашу работу в соответствии с параметрами, заданными вашим системным администратором. Надеюсь, это поможет.


-1

Вероятно, есть способ сделать это. Это, вероятно, так же просто, как редактирование разрешений WMI на машине. Если это невозможно, то использование WinRM определенно подойдет.

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


2
Я не понимаю, как я пытаюсь что-то «обойти». Системные администраторы хотят, чтобы я мог запускать процессы на этом компьютере, иначе я бы не смог подключиться к нему удаленно. Все, что я хочу, - это способ запуска процесса с использованием командной строки, а не интерфейса удаленного рабочего стола. Теперь я мог бы поспорить сисадминами об этом, или я мог просто найти способ сделать это сам. Я думал, что сообщество профессиональных сисадминов будет пытаться помочь мне, а не читать мне лекции.
HC4 - восстановить Монику

@HighCommander - Ответ в том, что системные администраторы должны предоставить вам эту возможность. Вы не можете сделать это самостоятельно, поскольку у вас нет прав администратора на компьютере. Если они действительно одобряют это, попросите их предоставить вам права, необходимые для того, чтобы делать то, что вам нужно.
Джейсон Берг

-1

`const string subkey =" Software \ Sysinternals \ PsExec ";

        if (Environment.Is64BitOperatingSystem)
        {
            // For 64 Bit PC
            RegistryKey registryKey64 = RegistryKey.OpenBaseKey(RegistryHive.CurrentUser, RegistryView.Registry64);
            RegistryKey NDPKey64 = registryKey64.OpenSubKey(subkey);
            if (NDPKey64 != null)
            {
                Registry.CurrentUser.OpenSubKey(subkey, true).SetValue("EulaAccepted", 1, RegistryValueKind.DWord);
            }
            else
            {
                RegistryKey regKey64 = registryKey64.OpenSubKey("Software", true);
                regKey64.CreateSubKey("Sysinternals\\PsExec", RegistryKeyPermissionCheck.ReadWriteSubTree);
                Registry.CurrentUser.OpenSubKey(subkey, true).SetValue("EulaAccepted", 1, RegistryValueKind.DWord);
            }
        }
        else
        {
            //For 32 bit PC
            RegistryKey registryKey32 = Registry.CurrentUser.OpenSubKey(subkey);
            if (registryKey32 != null)
            {
                Registry.CurrentUser.OpenSubKey(subkey, true).SetValue("EulaAccepted", 1, RegistryValueKind.DWord);
            }
            else
            {
                RegistryKey regKey32 = Registry.CurrentUser.OpenSubKey("Software", true);
                regKey32.CreateSubKey("Sysinternals\\PsExec", RegistryKeyPermissionCheck.ReadWriteSubTree);
                Registry.CurrentUser.OpenSubKey(subkey, true).SetValue("EulaAccepted", 1, RegistryValueKind.DWord);
            }
        }`

4
Один верный способ привлечь к себе внимание системы - опубликовать идентичные ответы на старые вопросы. Просто сбросить код без объяснения причин тоже не здорово. Пожалуйста, обновите ваши ответы, объяснив, что делает код и как он решает проблему с OP.
user9517 поддерживает GoFundMonica

1
Хорошо, иногда событие PsExec, хотя оно установлено, не будет вызывать другие exe-файлы по запросу. Проблема состоит в том, чтобы установить значение EORDAccepted DWORD равным 1. Я не смог найти страницу, которая обсуждает эту проблему, поэтому добавил здесь.
Shyam

-1

Почему кто-то не просто говорит, что это невозможно? Мне нужно сделать что-то подобное (Remote Exec SAS Program), к которому у меня есть доступ, если я подключусь к этому серверу по протоколу RDP (т. Е. У меня есть вход в систему с сервера. У меня есть файловая система с доступом к папке с исходным кодом, и у меня есть доступ для запуска SAS).

Никакой сисадмин - его / ее здравый смысл предоставит мне полные права администратора для этого окна только для удаленного выполнения. По сути, PSTools - это инструмент системного администратора, не предназначенный для использования при развертывании реальных решений для систем ИТ.


1
Эта напыщенная речь не отвечает на вопрос вообще.
Flup

На самом деле это так. +1
Амит Найду
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.