Usuário com melhor resposta
script de logon

Pergunta
-
Prezados,
Eu tenho o script abaixo, mas preciso fazer alguns ajustes.
Caso não exista o arquivo XXX.cmd, ele tem que copiar para a máquina do usuário.
depois ele precisa executar esse arquivo.
E caso não exista a pasta no servidor, ele deve criar tb
Ex. no meu servidor, eu tenho uma pasta chamada XXXX e dentro dele tem mais duas pastas.
No AD, a pasta base do usuário é U:\servidor\%username%. Se é o primeiro logon do usuário na rede, ele deve criar essas pastas no meu servidor, caso ele já tenha as pastas, não precisa criar.
E executar um inventário todo 1 dia útil do mês!!
Existe essa possibilidade??? fico no aguardo!
'####################################################################################
'####################### BACKUP DOS FAVORITOS E DESKTOP #########################
'####################################################################################strPasta = "C:\bkp"
Set FSo = CreateObject("Scripting.FileSystemObject")
Apagar_Arquivos(strPasta)
Sub Apagar_Arquivos(Pasta)
set folder = FSO.getFolder (Pasta)
if folder.Subfolders.count > 0 then
for each SubFolder in folder.Subfolders
SubFolder.delete
next
End If End SubDim objShell
Const OverwriteExisting = TRUE
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.CreateFolder("C:\bkp\sistema")
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.CopyFile "\\serv\NETLOGON\bkp.cmd" , "c:\bkp\", OverwriteExisting
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run("c:\bkp\bkp.cmd")
Respostas
-
Caso não exista o arquivo XXX.cmd, ele tem que copiar para a máquina do usuário.
if not exist c:\XXX.txt COPY \\seuserver\seushare\XXX.txt c:\
depois ele precisa executar esse arquivo.
call xxx.cmd
E caso não exista a pasta no servidor, ele deve criar tb
Ex. no meu servidor, eu tenho uma pasta chamada XXXX e dentro dele tem mais duas pastas.
if not exist "\\seuserver\seushare\XXXX\nul" ( MD "\\seuserver\seushare\XXXX\" MD "\\seuserver\seushare\XXXX\Pasta 1" MD "\\seuserver\seushare\XXXX\Pasta 2" )
No AD, a pasta base do usuário é U:\servidor\%username%. Se é o primeiro logon do usuário na rede, ele deve criar essas pastas no meu servidor, caso ele já tenha as pastas, não precisa criar.
if not exist "U:\servidor\%username%\nul" MD "U:\servidor\%username%"
E executar um inventário todo 1 dia útil do mês!!
:: Pega o dia do mes for /F "tokens=2 skip=2 delims=," %%D in ('WMIC Path Win32_LocalTime Get Day /Format:csv') do SET DIA=%%D IF %DIA%==1 CALL :SUB_1 IF %DIA%==2 CALL :SUB_2 IF %DIA%==3 CALL :SUB_3 echo fim do script :: fim do script goto :eof :SUB_1 :: Pega dia da semana (0=Domingo, 1=Segunda, ..., 6=Sabado) for /F "tokens=2 skip=2 delims=," %%D in ('WMIC Path Win32_LocalTime Get DayOfWeek /Format:csv') do SET DW=%%D :: se for domingo ou sabado sai da rotina IF %DW%==0 goto :EOF IF %DW%==6 goto :EOF echo faz INVENTARIO goto :eof :SUB_2 :: Pega dia da semana (0=Domingo, 1=Segunda, ..., 6=Sabado) for /F "tokens=2 skip=2 delims=," %%D in ('WMIC Path Win32_LocalTime Get DayOfWeek /Format:csv') do SET DW=%%D :: se dia 2 for segunda então é o primeiro dia util IF %DW%==1 echo faz INVENTARIO goto :eof :SUB_3 :: Pega dia da semana (0=Domingo, 1=Segunda, ..., 6=Sabado) for /F "tokens=2 skip=2 delims=," %%D in ('WMIC Path Win32_LocalTime Get DayOfWeek /Format:csv') do SET DW=%%D ECHO DW=%DW% :: se dia 3 for segunda então é o primeiro dia util IF %DW%==1 echo faz INVENTARIO goto :eof
Existe essa possibilidade??? fico no aguardo!
Juntando tudo.
if not exist c:\XXX.txt COPY \\seuserver\seushare\XXX.txt c:\ call xxx.cmd if not exist "\\seuserver\seushare\XXXX\nul" ( MD "\\seuserver\seushare\XXXX\" MD "\\seuserver\seushare\XXXX\Pasta 1" MD "\\seuserver\seushare\XXXX\Pasta 2" ) if not exist "U:\servidor\%username%\nul" MD "U:\servidor\%username%" :: substituir echo faz INVENTARIO pela chamado do seu inventario :: Pega o dia do mes for /F "tokens=2 skip=2 delims=," %%D in ('WMIC Path Win32_LocalTime Get Day /Format:csv') do SET DIA=%%D IF %DIA%==1 CALL :SUB_1 IF %DIA%==2 CALL :SUB_2 IF %DIA%==3 CALL :SUB_3 echo fim do script :: fim do script goto :eof :SUB_1 :: Pega dia da semana (0=Domingo, 1=Segunda, ..., 6=Sabado) for /F "tokens=2 skip=2 delims=," %%D in ('WMIC Path Win32_LocalTime Get DayOfWeek /Format:csv') do SET DW=%%D :: se for domingo ou sabado sai da rotina IF %DW%==0 goto :EOF IF %DW%==6 goto :EOF echo faz INVENTARIO goto :eof :SUB_2 :: Pega dia da semana (0=Domingo, 1=Segunda, ..., 6=Sabado) for /F "tokens=2 skip=2 delims=," %%D in ('WMIC Path Win32_LocalTime Get DayOfWeek /Format:csv') do SET DW=%%D :: se dia 2 for segunda então é o primeiro dia util IF %DW%==1 echo faz INVENTARIO goto :eof :SUB_3 :: Pega dia da semana (0=Domingo, 1=Segunda, ..., 6=Sabado) for /F "tokens=2 skip=2 delims=," %%D in ('WMIC Path Win32_LocalTime Get DayOfWeek /Format:csv') do SET DW=%%D ECHO DW=%DW% :: se dia 3 for segunda então é o primeiro dia util IF %DW%==1 echo faz INVENTARIO goto :eof
Fábio de Paula Junior
- Sugerido como Resposta Fábio JrModerator segunda-feira, 17 de dezembro de 2012 16:56
- Marcado como Resposta Fábio JrModerator terça-feira, 18 de dezembro de 2012 11:29