Модераторы: diadiavova, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> запуск процесса от другого юзера, запуск процесса от другого юзера 
V
    Опции темы
gangsterovich
Дата 23.6.2012, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 70
Регистрация: 22.10.2011

Репутация: 1
Всего: 1



использую код вот такой

Код

        Dim pass As New Security.SecureString
        pass.AppendChar("пароль"c)
        Process.Start(Parameters.PutKProgramme, number, pass, System.Environment.MachineName)


все запускается,нормально.но к сожалению если запускать браузер,то юзерагент передается того пользователя,от которого запускается .вобщем неподходит...   подскажите как можно попробовать запустить процесс с поммощью CreateProcessWithLogonW или CreateProcessAsUser  .а то на мдсн не нашел примеров подходящих(
PM MAIL   Вверх
diadiavova
Дата 23.6.2012, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Есть же системная утилита runas. Через нее и запускай.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
gangsterovich
Дата 23.6.2012, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 70
Регистрация: 22.10.2011

Репутация: 1
Всего: 1



не .runas не подходит.так как надо хоть раз,но вводить пароль руками.тоесть вызывает некоторые сложности.
PM MAIL   Вверх
diadiavova
Дата 23.6.2012, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Кто мешает использовать инпутстрим? 


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
gangsterovich
Дата 23.6.2012, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 70
Регистрация: 22.10.2011

Репутация: 1
Всего: 1



эмм...никто)  неслышал про такое.  в командной строке ввести надо значит.это надо фокус установить на командной строке?непонятно..
PM MAIL   Вверх
diadiavova
Дата 23.6.2012, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



При чем командная строка, когда мы говорим о том, чтобы сделать это программно?  Все это делается через класс Process, просто изучи его внимательнее.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
irinazanuda
Дата 28.6.2012, 05:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 911
Регистрация: 23.6.2010

Репутация: 1
Всего: 18




Модератор: Сообщение скрыто.

PM MAIL   Вверх
gangsterovich
Дата 29.6.2012, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 70
Регистрация: 22.10.2011

Репутация: 1
Всего: 1



катит только  CreateProcessWithLogonW.все другие методы не дают результатов
нашел код на vb-6 но при копировании в студию 2010 подчеркиваются функции "LenB"(53 строчка) и  "StrPtr"(55 строчка)   которые вероятно были в 6м бейсике.

Код

Private Const LOGON_WITH_PROFILE = &H1&
Private Const LOGON_NETCREDENTIALS_ONLY = &H2&
Private Const CREATE_DEFAULT_ERROR_MODE = &H4000000
Private Const CREATE_NEW_CONSOLE = &H10&
Private Const CREATE_NEW_PROCESS_GROUP = &H200&
Private Const CREATE_SEPARATE_WOW_VDM = &H800&
Private Const CREATE_SUSPENDED = &H4&
Private Const CREATE_UNICODE_ENVIRONMENT = &H400&
Private Const ABOVE_NORMAL_PRIORITY_CLASS = &H8000&
Private Const BELOW_NORMAL_PRIORITY_CLASS = &H4000&
Private Const HIGH_PRIORITY_CLASS = &H80&
Private Const IDLE_PRIORITY_CLASS = &H40&
Private Const NORMAL_PRIORITY_CLASS = &H20&
Private Const REALTIME_PRIORITY_CLASS = &H100&
Private Type PROCESS_INFORMATION
    hProcess As Long
    hThread As Long
    dwProcessId As Long
    dwThreadId As Long
End Type
Private Type STARTUPINFO
    cb As Long
    lpReserved As Long
    lpDesktop As Long
    lpTitle As Long
    dwX As Long
    dwY As Long
    dwXSize As Long
    dwYSize As Long
    dwXCountChars As Long
    dwYCountChars As Long
    dwFillAttribute As Long
    dwFlags As Long
    wShowWindow As Integer
    cbReserved2 As Integer
    lpReserved2 As Byte
    hStdInput As Long
    hStdOutput As Long
    hStdError As Long
End Type
Private Declare Function CreateProcessWithLogon Lib "Advapi32" Alias "CreateProcessWithLogonW" (ByVal lpUsername As Long, ByVal lpDomain As Long, ByVal lpPassword As Long, ByVal dwLogonFlags As Long, ByVal lpApplicationName As Long, ByVal lpCommandLine As Long, ByVal dwCreationFlags As Long, ByVal lpEnvironment As Long, ByVal lpCurrentDirectory As Long, lpStartupInfo As STARTUPINFO, lpProcessInfo As PROCESS_INFORMATION) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Sub Form_Load()
    Dim lpUsername As String, lpDomain As String, lpPassword As String, lpApplicationName As String
    Dim lpCommandLine As String, lpCurrentDirectory As String
    Dim StartInfo As STARTUPINFO, ProcessInfo As PROCESS_INFORMATION
    lpUsername = "OtherUser"
    lpDomain = ""
    lpPassword = "other_user_password"
    lpApplicationName = "C:\WINNT\NOTEPAD.EXE"
    lpCommandLine = vbNullString 'use the same as lpApplicationName
    lpCurrentDirectory = vbNullString 'use standard directory
    StartInfo.cb = LenB(StartInfo) 'initialize structure
    StartInfo.dwFlags = 0&
    CreateProcessWithLogon StrPtr(lpUsername), StrPtr(lpDomain), StrPtr(lpPassword), LOGON_WITH_PROFILE, StrPtr(lpApplicationName), StrPtr(lpCommandLine), CREATE_DEFAULT_ERROR_MODE Or CREATE_NEW_CONSOLE Or CREATE_NEW_PROCESS_GROUP, ByVal 0&, StrPtr(lpCurrentDirectory), StartInfo, ProcessInfo
    CloseHandle ProcessInfo.hThread 'close the handle to the main thread, since we don't use it
    CloseHandle ProcessInfo.hProcess 'close the handle to the process, since we don't use it
    'note that closing the handles of the main thread and the process do not terminate the process
    'unload this application
    Unload Me
End Sub



на 6м бейсике попытался сделать библиотеку из этой функции и подключить ее  в vb.net  .не прокатило( ошибка выскакивает,когда хочу импортировать в ссылки
мысли есть?


Это сообщение отредактировал(а) gangsterovich - 29.6.2012, 17:21
PM MAIL   Вверх
irinazanuda
Дата 29.6.2012, 21:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 911
Регистрация: 23.6.2010

Репутация: 1
Всего: 18




Модератор: Сообщение скрыто.

PM MAIL   Вверх
gangsterovich
Дата 29.6.2012, 21:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 70
Регистрация: 22.10.2011

Репутация: 1
Всего: 1



а по делу?
PM MAIL   Вверх
gangsterovich
Дата 1.7.2012, 18:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 70
Регистрация: 22.10.2011

Репутация: 1
Всего: 1



решение такое сделал.модуль запуска написал на vb6  и совместил с vb.net.универсальность чуток урезалась,но всеже сделал)
PM MAIL   Вверх
Бамбукос
Дата 3.7.2012, 10:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 3.7.2012

Репутация: нет
Всего: нет




Модератор: Сообщение скрыто.

PM MAIL   Вверх
diadiavova
Дата 15.7.2012, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Цитата(gangsterovich @  1.7.2012,  19:58 Найти цитируемый пост)
решение такое сделал.модуль запуска написал на vb6  и совместил с vb.net.универсальность чуток урезалась,но всеже сделал)

На самом деле стандартный запуск процесса дает возможность запуска с правами, определенными в другой учетной записи. Пример запуска блокнота с правами записи test с паролем test
Код

        Dim si As New ProcessStartInfo("notepad.exe")
        With si
            .WorkingDirectory = "C:\Windows\System32\"
            .LoadUserProfile = False
            .UserName = "test"
            .Password = New Security.SecureString()
            .Password.AppendChar("t"c)
            .Password.AppendChar("e"c)
            .Password.AppendChar("s"c)
            .Password.AppendChar("t"c)
            .UseShellExecute = False
        End With
        Process.Start(si)



--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
gangsterovich
Дата 15.7.2012, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 70
Регистрация: 22.10.2011

Репутация: 1
Всего: 1



diadiavova,я рад что вы вернулись)  ща попробую
PM MAIL   Вверх
gangsterovich
Дата 15.7.2012, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 70
Регистрация: 22.10.2011

Репутация: 1
Всего: 1



дядья вова,где туплю?  

 
Код

Dim si As New ProcessStartInfo("1.txt")
        With (si)
            .WorkingDirectory = "C:\Users\2222\Desktop\"
            .LoadUserProfile = False
            .UserName = "2222"
            .Password = New Security.SecureString()
            .Password.AppendChar("1"c)
            .UseShellExecute = False
        End With
        Process.Start(si)


при таком коде-ошибка-"не удается найти указаный файл".хотя он есть.а при запуска примера вашего-все работает
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума VB .NET
diadiavova
  • Прежде чем задать вопрос, воспользуйтесь поиском: возможно Ваш вопрос уже обсуждался и на него был получен ответ.
  • Если такой же вопрос не найден, не стоит задавать свой вопрос в любую тему, создайте новую.
  • Заголовок темы должен отображать ее суть.
  • Содержание поста должно описывать проблему понятно, но в то же время, по возможности, лаконично. Сначала следует описать суть вопроса, потом можно привести пример кода, не вынуждайте других участников угадывать в чем Ваша проблема - телепатов здесь нет.
  • Будьте взаимно вежливы и дружелюбны.
  • При оформлении сообщений используйте форматирование, примеры кода заключайте в теги [CODE=vbnet][/CODE].
  • Также ознакомьтесь с общими правилами, действующими на всем форуме.
  • Если вопрос решен, не забывайте помечать тему решенной(вверху темы есть ссылка). Кроме того, если Вы хотите отблагодарить участников, оказавших помощь в решении, можно повысить им репутацию, в случае, если у Вас менее 100 сообщений в форуме и функция изменения репутации Вам недоступна, можете написать сюда.
  • Общие вопросы по программированию на платформе .NET обсуждаются здесь.
  • Литература по VB .NET обсуждается здесь.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, diadiavova.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB .NET | Следующая тема »


 




[ Время генерации скрипта: 0.1199 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.