Назад | Перейти на главную страницу

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

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

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

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

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

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

Как найдено по адресу: https://stackoverflow.com/questions/534426/psexec-help-needed

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

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

Хотя я не могу найти ОФИЦИАЛЬНУЮ документацию, в которой говорится то же самое.

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

Изменить: Или запустите команду как запланированную задачу. Или используйте переключатель -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"

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

Нет, бесполезно. Зачем вам это делать, а не быть админом?

Возможно, вам лучше использовать команды Powershell:

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

`const string subkey =" Программное обеспечение \ 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);
            }
        }`

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

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

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

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