Полезная информация

Заказывай стафф с атрибутикой Mozilla и... пусть все вокруг завидуют тебе! Быть уникальным - быть с Mozilla!
  • Форумы
  •  » Firefox
  •  » Firefox не запускается под учеткой system

№108-02-2018 11:30:32

catapulta
Участник
 
Группа: Members
Зарегистрирован: 16-01-2018
Сообщений: 11
UA: Chrome 57.0

Firefox не запускается под учеткой system

Здравствуйте.
Есть задача запустить firefox из скрипта питон, отработать скрипт, получить результаты по сокету. Скрипт должен запускаться под учетной записью System, где нет рабочего стола, ну или нет такого рабочего стола, который бы устроил firefox.
Firefox отказывается даже загружать первый урл на таких условиях.
Что можно изменить в настройках (в config:about очень много параметров), чтобы ФФ заработал?
ОС Windows 7
От имени system запускаю с помощью планировщика задач (команда AT). Все процессы запускаются (питон и браузер). Вывод питоновского скрипта производится в файл, по его содержимому видно, что скрипт питона отработал, а вот с клиента не пришло ни одного запроса, даже самого первого гет, который был в строке запуска браузера.

От имени обычного пользователя все отлично работает

Спасибо

Отсутствует

 

№208-02-2018 13:35:50

catapulta
Участник
 
Группа: Members
Зарегистрирован: 16-01-2018
Сообщений: 11
UA: Chrome 57.0

Re: Firefox не запускается под учеткой system

Вот код питона.

скрытый текст

Выделить код

Код:

HOST = 'localhost'
PORT=50011
urlPattern='http://localhost:%i/%s'
 
htmlPageHead="HTTP/1.1 %s\r\nServer: Our\r\nCache-Control: no-cache\r\nContent-Language: ru\r\nContent-Type: text/html; charset=utf-8\r\nContent-Length: %i\r\n\r\n"
htmlPageText="<!DOCTYPE HTML><html><head><title>%s</title></head><body><h2>%s</h2></body></html>"

import socket

sock=socket.socket(socket.AF_INET, socket.SOCK_STREAM)        
sock.bind((HOST, PORT))    
sock.listen(40)
sock.settimeout(10)

def receiveData(conn):    
    data=''    
    conn.settimeout(10)
    try:
        while True:        
            r_data = conn.recv(1024).decode()
            data = data + r_data
            if len(r_data) < 1024:
                break            
    except Exception:
        return data
    return data

def connectClient(conn,addr):    
    data=receiveData(conn)        
    if data=='':
        print('EMPTY DATA ')        
    else:
        typeIndex=data.find(' ')
        requestType=data[0:typeIndex]
        print('requestType',requestType)        
        txt=htmlPageText%('Firefox','Firefox the Best')
        answer=htmlPageHead%('200 OK',len(txt))+txt                   
        conn.send(answer.encode())
    conn.close()    

from ctypes import windll
windll.Shell32.ShellExecuteW(0,'open',"C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe",urlPattern%(PORT,'start.html'),0,5)

while True:
    try:
        (conn,addr)=sock.accept()
        connectClient(conn,addr)       
    except Exception:
        print('TIMEOUT')
        break
sock.close()
print('THE END')


Команда назначения запуска браузера из-под учетки system

Выделить код

Код:

AT 14:10 "D:\launchFirefox.cmd"

И сама команда launchFirefox.cmd

Выделить код

Код:

D:
cd D:\python
call python launchFirefox.py >> launchFirefox.txt

Отсутствует

 

№308-02-2018 14:04:20

mokujin
Участник
 
Группа: Members
Зарегистрирован: 17-02-2017
Сообщений: 285
UA: Firefox 45.0

Re: Firefox не запускается под учеткой system

сначала, она ищет как процессы закрывать, потом ей систем привилегии понадобились.... и скрипт какой-та питоновский в FF пихает - не иначе удалено какого-то пишут. Чё пишем, а?
зачем тебе бравзер из-под system ?

Отсутствует

 

№408-02-2018 14:31:02

catapulta
Участник
 
Группа: Members
Зарегистрирован: 16-01-2018
Сообщений: 11
UA: Chrome 57.0

Re: Firefox не запускается под учеткой system

mokujin пишет:

сначала, она ищет как процессы закрывать, потом ей систем привилегии понадобились.... и скрипт какой-та питоновский в FF пихает - не иначе говнючка какого-то пишут. Чё пишем, а? зачем тебе бравзер из-под system ?

Надо забрать результаты выполнения большого Js кода, который неохота переписывать на другой язык.
Из под системс его запускает дженкинс.
PS я знаю про nodejs

Отредактировано catapulta (08-02-2018 14:34:59)

Отсутствует

 

№508-02-2018 15:38:32

mokujin
Участник
 
Группа: Members
Зарегистрирован: 17-02-2017
Сообщений: 285
UA: Firefox 45.0

Re: Firefox не запускается под учеткой system

ну а я не знаю, ни про женкинсы ни ноды.жс  да и ладна.
Не то чтоб это сикрет, везде оно в интронэтах валяеццо, но...  пичаль твоя в ntfs rights что случается с 90% искателей запуска, чего бы то ни было под system .

Отсутствует

 

№614-02-2018 14:25:53

catapulta
Участник
 
Группа: Members
Зарегистрирован: 16-01-2018
Сообщений: 11
UA: Chrome 57.0

Re: Firefox не запускается под учеткой system

mokujin пишет:

ну а я не знаю, ни про женкинсы ни ноды.жс  да и ладна.
Не то чтоб это сикрет, везде оно в интронэтах валяеццо, но...  пичаль твоя в ntfs rights что случается с 90% искателей запуска, чего бы то ни было под system .

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

Во-вторых, мы не из-под пользователя запускаем что-то от имени system, а наоборот, из-под system  запускаем что-то, что должно иметь профиль пользователя. Права, я так понимаю, у system'а есть все?

Возникла мысль, что среды окружения как-то переписываются, т.к. из-под system firefox активно пытается достать профиль пользователя, который лежит в папке C:\Users\UserName\AppData\ (искали программой процесс монитор). Вместе с тем переменные APPDATA, LOCALAPPDATA и др указывают верно на системный профиль в папке C:\Windows\System32\config\systemprofile\AppData .

Было много всяких ситуаций: есть профиль в системной папке, нет, требует только системный, требует только пользовательский, требует и то и другое. То ничего в питон не приходит, то приходит эмпти дата (т.е. соединение было разорвано, и что-то все-таки долетело).  Отключали брандмауэр и не отключали. Пробовали на windows 7 и  windows 10.

Факт в том, что конкретно получить выход (т.е. гет запрос на стороне питона) можно только, если запустить ФФ в видимом режиме.
Если планировщиком (команда schtasks) запустить от имени пользователя с ключом /IT (интерактивный режим), то окна запускаются явно, и все отрабатывает.
Таким образом возникает два вопроса:
1 Firefox принципиально запрещает запросы урл в случае, если нет у приложения окна?
2 Как из-под дженкинса запустить явный процесс под пользователем, schtasks не подходит, т.к. в консоль дженкинса выведется сообщение о запуске задачи, ценная информация выведется в консоль назначенной задачи. Хотя запустить скрипт таким образом получилось

В интернете под "firefox в фоновом режиме" понимается многопоточность браузера, а не то что ФФ запустится без окна
Пытались запустить ФФ под новым профилем. И кстати если при запуске профиль не указать, то браузер запускается в автономной режиме и действительно ничего не отправляет наружу.

Может есть у кого какие мысли идеи, кто хорошо знает firefox, буду страшно благодарна.
Спасибо еще раз.

Отсутствует

 
  • Форумы
  •  » Firefox
  •  » Firefox не запускается под учеткой system

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2011 Mozilla Russia
Язык отображения форума: [Русский] [English]