Usuário com melhor resposta
Login Script – Aplicar .BAT em usuários específicos.

Pergunta
-
Saudações,
Preciso de um script que faça execução de uma .bat quando for tal usuário que estara se autenticando;
Se usuario "PAC"
COPY "\\" + LTRIM(SUBSTR(@USERID, 1, 3)) + "_SERVER\PACOTES$\Script_Loja\xcacls.exe" "C:\windows\system32\"
COPY "\\" + LTRIM(SUBSTR(@USERID, 1, 3)) + "_SERVER\PACOTES$\Script_Loja\SetACL" "C:\windows\system32\"
Depois executar as seguintes bats:
shell ("\\" + LTRIM(SUBSTR(@USERID, 1, 3))+"_SERVER\PACOTES$\Script_Loja\ta\ta.bat")
shell ("\\" + LTRIM(SUBSTR(@USERID, 1, 3))+"_SERVER\PACOTES$\Script_Loja\tb\tb.bat")
Porem preciso que ele faça uma checagem no proximo logon, nao pode executar a bat cada vez que o usuario autenticar por dia, pois existem necessidades de varias autenticações diárias.
Este script sera para dar permissao em arquivos de alguns softwares pois sera removido privilegio administrativo do desktop e alguns softwares precisam destes privilegios nos usuarios autenticados.
alguém tem um exemplo ai? eu já procurei aqui no fórum mão não achei.
OBS: Aceito sujestões em forma de CASE, script será executado via KIX.EXE
Obrigado
Adriano
Respostas
-
Primeiro) Tratando o usuário:
IF @Userid ="PAC"
COPY "\\" + LTRIM(SUBSTR(@USERID, 1, 3)) + "_SERVER\PACOTES$\Script_Loja\xcacls.exe" "C:\windows\system32\"COPY "\\" + LTRIM(SUBSTR(@USERID, 1, 3)) + "_SERVER\PACOTES$\Script_Loja\SetACL" "C:\windows\system32\"
ENDIFSegundo) Rodando script apenas uma vez por dia. Neste caso eu crio um arquivo no final da execução contendo a data em que ele foi executado, da proxima vez que o script for executa eu abro este arquivo (C:\temp\teste.txt) e verifico se a data é a mesma, se for eu saio do script.
;EXISTE ARQUIVO DE CONTROLE COM DATA DE HOJE? $x="" IF Open(3, "C:\TEMP\TESTE.TXT") = 0 $x = ReadLine(3) ;WHILE @ERROR = 0 ; $x = ReadLine(3) ;LOOP Close (3) ENDIF IF $x=@DATE EXIT ENDIF IF @Userid ="PAC" COPY "\\" + LTRIM(SUBSTR(@USERID, 1, 3)) + "_SERVER\PACOTES$\Script_Loja\xcacls.exe" "C:\windows\system32\" COPY "\\" + LTRIM(SUBSTR(@USERID, 1, 3)) + "_SERVER\PACOTES$\Script_Loja\SetACL" "C:\windows\system32\" ENDIF shell ("\\" + LTRIM(SUBSTR(@USERID, 1, 3))+"_SERVER\PACOTES$\Script_Loja\ta\ta.bat") shell ("\\" + LTRIM(SUBSTR(@USERID, 1, 3))+"_SERVER\PACOTES$\Script_Loja\tb\tb.bat") ;CRIA ARQUIVO DE CONTROLE SHELL ("CMD /C ECHO " + @DATE + "> C:\TEMP\TESTE.TXT")
Referencias: http://www.kixtart.org/binary/docs/KiXhelp453.zip
Fábio de Paula Junior- Marcado como Resposta Fábio JrModerator sexta-feira, 31 de agosto de 2012 13:19
Todas as Respostas
-
Primeiro) Tratando o usuário:
IF @Userid ="PAC"
COPY "\\" + LTRIM(SUBSTR(@USERID, 1, 3)) + "_SERVER\PACOTES$\Script_Loja\xcacls.exe" "C:\windows\system32\"COPY "\\" + LTRIM(SUBSTR(@USERID, 1, 3)) + "_SERVER\PACOTES$\Script_Loja\SetACL" "C:\windows\system32\"
ENDIFSegundo) Rodando script apenas uma vez por dia. Neste caso eu crio um arquivo no final da execução contendo a data em que ele foi executado, da proxima vez que o script for executa eu abro este arquivo (C:\temp\teste.txt) e verifico se a data é a mesma, se for eu saio do script.
;EXISTE ARQUIVO DE CONTROLE COM DATA DE HOJE? $x="" IF Open(3, "C:\TEMP\TESTE.TXT") = 0 $x = ReadLine(3) ;WHILE @ERROR = 0 ; $x = ReadLine(3) ;LOOP Close (3) ENDIF IF $x=@DATE EXIT ENDIF IF @Userid ="PAC" COPY "\\" + LTRIM(SUBSTR(@USERID, 1, 3)) + "_SERVER\PACOTES$\Script_Loja\xcacls.exe" "C:\windows\system32\" COPY "\\" + LTRIM(SUBSTR(@USERID, 1, 3)) + "_SERVER\PACOTES$\Script_Loja\SetACL" "C:\windows\system32\" ENDIF shell ("\\" + LTRIM(SUBSTR(@USERID, 1, 3))+"_SERVER\PACOTES$\Script_Loja\ta\ta.bat") shell ("\\" + LTRIM(SUBSTR(@USERID, 1, 3))+"_SERVER\PACOTES$\Script_Loja\tb\tb.bat") ;CRIA ARQUIVO DE CONTROLE SHELL ("CMD /C ECHO " + @DATE + "> C:\TEMP\TESTE.TXT")
Referencias: http://www.kixtart.org/binary/docs/KiXhelp453.zip
Fábio de Paula Junior- Marcado como Resposta Fábio JrModerator sexta-feira, 31 de agosto de 2012 13:19
-
Fábio, bom dia.
Primeiramente obrigado pela ajuda, fico grato por ter ajudado com o script.
Seguinte, existe alguma forma que me faça uma comparação de permissão ? nao gostaria de rodar este script quando o usuario fosse autenticado, pois ele precisa rodar apenas uma vez, após rodado, nao precisa mais, pois se trata de permissao de acesso em diretorios e registro, quando eu remover o acesso de administrador local do desktop, vai dar erro no login script, pois o usuario autenticado nao tera mais acesso para permissionar pastas e arquivos.
Obrigado pela ajuda.
-
Possui dominio?
Pode ser util:
http://technet.microsoft.com/en-us/library/cc756952(WS.10).aspx
Fábio de Paula Junior -
Sim, mas por se tratar de Windows 2000 Server, nao confio em GPO.
Por isso precisaria de uma forma mais fácil, pois pensa, mesmo que eu altere a validação para ANO, em janeiro eu terei problema de aplicar novamente as bats quando o usuario autenticar, como o usuario ja nao sera mais administrador local, pode travar o login scriot e ninguem mais mapear as unidades no logon, isso ira me gerar um grande problema.
Alguma sugestão ?
-