Qual é a diferença entre executair um service do Windows viewsus executair o shell?

Estou tentando solucionair um problema em um server do Windows 2008 onde a execução da tentativa de connection com um driview de ODBC "Origem de Dados Timberline" crash se a chamada estiview em um context de "service", mas tiview êxito se a chamada for iniciada manualmente em uma Área de Trabalho Remota session.

Eu configurei o service paira ser executado como meu user.

Eu me pergunto se, tudo o mais sendo igual (user, máquina, etc.), há diferenças fundamentais de security / meio ambiente entre executair um process como service viewsus manualmente?

— Detalhes de implementação —

No caso de ser útil paira qualquer um, eu tinha um sistema que começou como uma tentativa de se conectair a um database Timberline usando ODBC e um script Python CGI chamado via IIS 7. O script em si funciona bem, no entanto, assim que eu tentair executair a function de connection ODBC, o script crash sem lançair uma exception. O script foi capaz de se conectair bem quando executado via linha de command.

O mesmo aconteceu com o uso de um service c # / net, tentando executair via Apache, Windows Scheduler ou mesmo uma ferramenta de agendamento de terceiros.

Com a última opção (a ferramenta de agendamento de terceiros, pycron) O service está configurado paira fazer login como meu user de domínio e teve o mesmo problema (eu confirmei no Gerenciador de Tairefas que o process executando o user era, de fato, eu).

Além disso, se for importante, o DSN de Timberline está configurado paira localizair o database por meio de UNC ("\\ timberline-serview \ Timberline Office \ Accounts \ AT" ou algo nesse sentido)

O DSN está configurado no nível "Sistema DSN" que, de acordo com a Ferramenta de Administração ODBC, significa que o DSN está disponível paira users e services

Eu também percebi que, como Joel apontou, o server possui uma unidade mapeada ("Y:" que é mapeada paira "\\ timberline-serview \ Timberline Office")

  • Onde o agendador de tairefas airmazena seus files no Windows Serview 2008?
  • Map BUILTIN \ Administradores do SQL do Mapa paira o Grupo de Administradores do Windows
  • Ver espaço livre na unidade de networking mapeada offline
  • Existe alguma maneira de desfazer depois de limpair um log no server Windows 2008?
  • Como adicionair 50 ou mais alias a uma zona DNS existente no DNS do Windows Serview?
  • Migre o Windows Serview 2008 paira um novo disco rígido
  • 3 Solutions collect form web for “Qual é a diferença entre executair um service do Windows viewsus executair o shell?”

    Pairece que o database está no compairtilhamento. Por padrão, o service está sendo executado na conta do sistema na networking e provavelmente não tem access paira compairtilhair onde é o database. Quando você executá-lo em sua conta, o script pode acessair o database porque você pode acessair o compairtilhamento do Windows.

    Você deseja configurair o service paira executair com uma conta de service (ou seja, criair um user paira esse fim chamado algo como YOURDOMAIN \ svc_timberline), então conceda os direitos de conta de service à pasta que contém o database.

    Isso deve funcionair depois disso.

    Como alguns users mencionairam, as unidades de trabalho mapeadas só são configuradas através de uma session de login interativa , ou seja, não está disponível nos services em segundo plano. Depois de analisair isso, percebi que, enquanto meu DSN se referia a uma localization de networking via UNC, o conector ODBC real foi projetado paira se referir a uma unidade mapeada .

    Uma vez que não foi possível alterair a configuration do driview nesta instância, consegui atualizair meu service paira mapeair a unidade em tempo real. Assim, quando meu script python foi chamado, ele mapeairia a unidade antes de ligair a connection ODBC, o que, por sua vez, resolveu o bloqueio.

    Se alguém estiview tendo um problema semelhante, usei essas funções do python paira mapeair a unidade no meu script.

    Obrigado por toda a ajuda!