quarta-feira, 16 de janeiro de 2013

Acesso VNC no Linux sem monitor conectado - Debian Ubuntu

Antes voce deve instalar o Servidor VNC x11vnc 
Um detalhe no Xorg é que para iniciar o X voce deve estar com um monitor conectado, o servidor X não inicia sem monitor, na nossa situação temos um servidor que gostariamos de deixar sem monitor mas ao mesmo tempo conectar via VNC para acessar o Grafico, segue a solução para configurar a disponibilidade do Servidor X para o acesso VNC sem monitor.

Vamos utilizar o Xserver Dummy, digite o comando abaixo para instalar:

apt-get install xserver-xorg-video-dummy


Crie o arquivo xorg.conf

touch /etc/X11/xorg.conf



Salve o conteudo dentro do arquivo xorg.conf

##Arquivo xorg.conf para Servidor VNC x11vnc
##
Section "Device"

    Identifier  "Configured Video Device"
    Driver      "dummy"
EndSection

Section "Monitor"
    Identifier  "Configured Monitor"
    HorizSync 31.5-48.5
    VertRefresh 50-70
EndSection

Section "Screen"
    Identifier  "Default Screen"
    Monitor     "Configured Monitor"
    Device      "Configured Video Device"
    DefaultDepth 24
    SubSection "Display"
    Depth 24
    Modes "1024x800"
    EndSubSection
EndSection

##
##Fim do xorg.conf


Reinicie o Gerenciador Grafico
Para GDM (Gnome) digite:

su /etc/init.d/gdm restart



Para KDM (Kde) digite:

su /etc/init.d/kdm restart




Para XDM digite:

su /etc/init.d/xdm restart



Caso queira acessar o Grafico da maquina local ou voltar a configuração original basta renomear ou apagar o arquivo "xorg.conf".







Instalar VNC Server x11vnc no Debian - Ubuntu

No nosso caso usamos o Debian Wheezy Netinstall mas poderá usar para as outras distribuições "Like Debian".
Vamos ao que interessa:

Primeiramente vamos instalar o pacote necessario para execução do Servidor Vnc
No bash digite o comando:


apt-get install x11vnc



Agora vamos configurar o arquivo que armazena a senha de acesso do servidor Vnc


Crie o Diretorio para armazenar o arquivo de senha

mkdir -p /etc/x11vnc



Crie o arquivo de senha dentro de /etc/x11vnc/

touch /etc/x11vnc/vncpasswd



Crie uma senha e armazene dentro do arquivo criado:

x11vnc -storepasswd suasenha /etc/x11vnc/vncpasswd



Crie um arquivo para armazenar o script de inicialização do Servidor Vnc x11vnc

touch /etc/init.d/x11vnc-init


Dê permissão de execução para o script

chmod +x /etc/init.d/x11vnc-init


Copie o conteudo do script abaixo e cole dentro do arquivo "/etc/init.d/x11vnc-init"

#!/bin/bash
# --------------------------------
# /etc/init.d/x11vnc
# --------------------------------

# find xauthority file
find_xauth () {
  FOUND=0
  RETRIES=4
  [ -z "$1" ] || RETRIES="$1"

  [ -e "/var/lib/kdm/" ] &&
     XAUTHFILE_KDM=`find /var/lib/kdm/ -iname "A\:0-*"`
  [ -e "/var/run/xauth/" ] &&
     XAUTHFILE_KDM2=`find /var/run/xauth/ -iname "A\:0-*"`
  [ -e "/var/lib/xdm/authdir/authfiles/" ] &&
     XAUTHFILE_XDM=`find /var/lib/xdm/authdir/authfiles/ -iname "A\:0-*"`
  [ -e "/var/lib/gdm/" ] &&
     XAUTHFILE_GDM=`find /var/lib/gdm/ -iname *Xauth*`

  [ -f "$XAUTHFILE_KDM" ]  && FOUND=1 && XAUTHORITY="$XAUTHFILE_KDM"
  [ -f "$XAUTHFILE_KDM2" ] && FOUND=1 && XAUTHORITY="$XAUTHFILE_KDM2"
  [ -f "$XAUTHFILE_XDM" ]  && FOUND=1 && XAUTHORITY="$XAUTHFILE_XDM"
  [ -f "$XAUTHFILE_GDM" ]  && FOUND=1 && XAUTHORITY="$XAUTHFILE_GDM"

  if [ "$FOUND" -eq "0" ]; then
    if [ "$RETRIES" -gt "0" ]; then
      let "RETRIES-=1"
      find_xauth "$RETRIES"
    else
      echo "carregamento FALHOU (nao foi possivel encontrar uma maneira para me autenticar com o Servidor X)" >>/var/log/x11vnc.log
      exit -1
    fi
  else
    echo "Encontrado o arquivo de autenticacao ($XAUTHORITY)" >>/var/log/x11vnc.log
  fi
}

START_COMMAND="x11vnc"
X11VNC_PARAMS="-ncache -noxrecord -noxfixes -display :0 -noxdamage  -forever -bg"

case "$1" in
  start)

    if [ ! -f /etc/x11vnc/vncpasswd ]; then
      echo " carregamento FALHOU (arquivo '/etc/x11vnc/vncpasswd' nao encontrado)" >>/var/log/x11vnc.log
      echo "   Crie a senha manualmente digitando o comando: x11vnc -storepasswd suasenha /etc/x11vnc/vncpasswd " >>/var/log/x11vnc.log
      exit -1;
    fi

    #su -c "$COMMAND" -l x11vnc &
    if [ $X11VNC_X11 = 1 ]; then
      find_xauth
      START_COMMAND="$START_COMMAND -auth $XAUTHORITY $X11VNC_PARAMS"
    else
      START_COMMAND="$START_COMMAND $X11VNC_PARAMS"
    fi
    OUTPUT=`$START_COMMAND`
    echo "$START_COMMAND" >>/var/log/x11vnc.log
    echo "$OUTPUT" >>/var/log/x11vnc.log
  ;;
  stop)
    pid=`pidof x11vnc`
    if [ -z "$pid" ]
    then
     echo "x11vnc nao esta rodando" >>/var/log/x11vnc.log
     exit -1;
    else
     kill -9 $pid
    echo "x11vnc parado" >>/var/log/x11vnc.log
    fi

  ;;
  *)
    echo "x11vnc Script de Inicializacao"
    echo "Use: $0 (start|stop)"
    echo "$OUTPUT"
  ;;
esac
exit 0

##Fim do script

Para inicializar junto com o Gerenciador de Display (Display Manager) siga as intruções 


Caso o seu gerenciador de Display for o GDM (GNOME) use o comando:
echo "sh /etc/init.d/x11vnc-init start" >>  /etc/X11/gdm/Init/Default /etc/gdm/Init/Default

Caso o seu gerenciador de Display for o KDM (KDE) use o comando:
echo "sh /etc/init.d/x11vnc-init start" >>  /etc/kde*/kdm/Xsetup

Caso o seu gerenciador de Display for o XDM use o comando:
echo "sh /etc/init.d/x11vnc-init start" >>  /etc/X11/xdm/Xsetup 

Caso o seu gerenciador de Display for o CDE use o comando:
echo "sh /etc/init.d/x11vnc-init start" >>  /etc/dt/config/Xsetup


Reinicie o Gerenciador de Display e acesse o Vnc pelo IP da maquina e a porta 5900








quinta-feira, 10 de janeiro de 2013

Instalação do Xen 4.1 no Debian Wheezy 7.0 Netinstall - Script

Neste Post você poderá instalar de forma simples o Xen 4.1 no Debian Wheezy 7.0 e desfrutar desta Incrivel ferramenta gratuita de Virtualização.  O Ambiente foi criado com 3 partições, segue abaixo:

Você tem a liberdade de montar as partições e seus tamanhos conforme sua necessidade, nós usamos o exemplo a seguir:

Hd de 1 TeraByte

Partição Raiz '/' - Tipo: EXT4 - Tamanho: 50 Gb
Partição para os Discos das DOMUs (Maquinas virtuais) - Tipo: Linux LVM - Tamanho: 938 Gb
Partição de Area de troca - Tipo SWAP - Tamanho: 12 Gb

Instalamos o Linux sem configurar a interface de rede local, selecionamos para "Não configurar agora" e prosseguimos a instalação sem rede, poderá usar essa opção conforme sua necessidade.

Para poupar recursos do sistema usamos o Xdm como gerenciador de login e o FluxBox como Gerenciador de Janelas.


Foi optado pelo uso do Virt-Manager para o Gerenciamento das maquinas virtuais, ele facilita a criação, administração e visualização da sua VM, também poderá gerenciar o seu grupo de volumes lógicos, criando volumes lógicos no momento da criação da VM, isto tudo via interface gráfica.



Após a instalação crie um arquivo "script.sh" com o conteudo Abaixo e dê permissão de execução:



#!/bin/bash

function pause(){
   read -p "$*"
}

pause 'Este Script ira instalar o Xen 4.1 no Debian Wheezy, pressione [ENTER] para continuar...'

echo 'Etapa de Configuracao das interfaces de rede LoopBack  e Eth0   '
echo -n 'Deseja configurar as interfaces de rede ? s/n  ' ; read resposta

if [ $resposta == "s" ] ; then
                pause 'O sistema ira configurar a rede, pressione [ENTER] para continuar...'
                echo 'auto lo' > /etc/network/interfaces
                echo 'iface lo inet loopback' >> /etc/network/interfaces
                echo '' >> /etc/network/interfaces
                echo 'auto eth0' >> /etc/network/interfaces
                echo 'iface eth0 inet dhcp' >> /etc/network/interfaces
fi

echo 'Serviço de rede'
echo -n 'Deseja reiniciar Servico de rede ? s/n  ' ; read resposta

if [ $resposta == "s" ] ; then
echo 'Reiniciando os serviços de rede...'
                /etc/init.d/networking restart
fi

echo 'Arquivos de enderecos de repositorio'
echo -n 'Deseja configurar os arquivos de endereco dos repositorios ? s/n  ' ; read resposta

if [ $resposta == "s" ] ; then
                echo 'deb http://security.debian.org/ wheezy/updates main contrib non-free' > /etc/apt/sources.list
echo 'deb-src http://security.debian.org/ wheezy/updates main contrib non-free' >> /etc/apt/sources.list
echo 'deb http://ftp.br.debian.org/debian/ wheezy main contrib non-free' >> /etc/apt/sources.list
echo 'deb-src http://ftp.br.debian.org/debian/ wheezy main contrib non-free' >> /etc/apt/sources.list
echo 'Arquivos de configuração de repositorio configurados...'
fi

echo 'Atualizacao de endereços de repositorio'
echo -n 'Deseja atualizar os enderecos dos repositorios ? s/n  ' ; read resposta

if [ $resposta == "s" ] ; then
apt-get update
fi

echo 'Instalacao de pacotes necessarios'
echo -n 'Deseja instalar os pacotes para instalacao do Servidor Xen ? s/n  ' ; read resposta

if [ $resposta == "s" ] ; then
apt-get install xen-linux-system-3.2.0-4-amd64 xen-utils-4.1 xen-tools sudo xserver-xorg xserver-xorg-core xorg fluxbox xdm xenwatch virt-manager firmware-realtek openssh-server vim less -y
fi

echo 'Configuracao do Gestor de Inicialização GRUB'
echo -n 'Deseja configurar o Grub para o Servidor Xen ? s/n  ' ; read resposta

if [ $resposta == "s" ] ; then
mv /etc/grub.d/10_linux /etc/grub.d/50_linux
echo "" >> /etc/default/grub
echo "# Disable OS prober to prevent virtual machines on logical volumes from appearing in the boot menu." >> /etc/default/grub
echo "GRUB_DISABLE_OS_PROBER=true" >> /etc/default/grub
echo "" >> /etc/default/grub
echo "# Xen boot parameters for all Xen boots" >> /etc/default/grub
echo 'GRUB_CMDLINE_XEN="dom0_mem=1024M"' >> /etc/default/grub
update-grub2
fi

echo 'Copiar Bibliotecas do XEN para o Virt-Manager'
echo -n 'Deseja copiar as bibliotecas do Servidor Xen para o Virt-Manager ? s/n  ' ; read resposta

if [ $resposta == "s" ] ; then
mkdir -p /usr/lib/xen-default/
mkdir -p /usr/lib64/xen/
cp /usr/lib/xen-4.1/* -rv /usr/lib/xen-default/
cp /usr/lib/xen-4.1/* -rv /usr/lib64/xen/
fi

echo 'Configuracao do HOST Xen (DOMAIN 0)'
echo -n 'Deseja configurar os parametros necessarios no Servidor Xen ? s/n  ' ; read resposta

if [ $resposta == "s" ] ; then
sed -i 's|(enable-dom0-ballooning yes)|(enable-dom0-ballooning no)|g' /etc/xen/xend-config.sxp
sed -i 's|#(xend-http-server no)|(xend-http-server yes)|g' /etc/xen/xend-config.sxp
sed -i 's|#(xend-unix-server no)|(xend-unix-server yes)|g' /etc/xen/xend-config.sxp
sed -i 's|# (network-script network-bridge)|(network-script network-bridge)|g' /etc/xen/xend-config.sxp
sed -i 's|(dom0-min-mem 196)|(dom0-min-mem 1024)|g' /etc/xen/xend-config.sxp
sed -i 's|XENDOMAINS_SAVE=/var/lib/xen/save|XENDOMAINS_SAVE=""|g' /etc/default/xendomains
sed -i 's|XENDOMAINS_RESTORE=true|XENDOMAINS_RESTORE=false|g' /etc/default/xendomains
fi

echo 'Configurar a rede Bridge xenbr0'
echo -n 'Deseja Configurar a rede Bridge xenbr0 ? s/n  ' ; read resposta

if [ $resposta == "s" ] ; then
echo '' >> /etc/network/interfaces
echo 'auto xenbr0' >> /etc/network/interfaces
echo 'iface xenbr0 inet dhcp' >> /etc/network/interfaces
echo 'bridge_ports eth0' >> /etc/network/interfaces
echo 'bridge_stp on' >> /etc/network/interfaces
echo 'bridge_maxwait 0' >> /etc/network/interfaces
echo 'bridge_fd 0' >> /etc/network/interfaces
ifconfig xenbr0 up
/etc/init.d/networking restart
brctl addbr xenbr0
fi


#FIM









sexta-feira, 7 de dezembro de 2012

Instalando Xen 4.0 no Debian Squeeze 6.0.5 NetInstall

Distribuição usada para instalação: Debian Squeeze 6.0 netinstall 64 bits.
Devido ser um servidor de maquinas virtuais, leve em conta os riscos futuros e monte com Espelhamento de disco e LVM para abrigar os discos das Vm's pois ajudará na performance e no gerenciamento dos volumes.

Sugestão para criação das partições:

Exemplo de particionamento usando Raid e Lvm em um disco de 1 TeraByte.
Raid via software, Raid 1 (Espelhamento) e LVM (Logical Volume Manager) com a estrutura abaixo:

Partição para os arquivos de boot ( /boot )
/dev/md0 = 100 MB

Partição para raiz ( / )
/dev/md1 = 3000 MB

Partição para os arquivos variaveis ( /var )
/dev/md2 = 1000 MB

Partição para area de troca ( Swap )
/dev/md3 = 8000 MB

Partição para o LVM ( Volume Lógico )
/dev/md4 = 988000 MB

Monte o sistema de arquivos conforme suas necessidades, usamos Ext4 nas partições e o LVM para armazenar os discos das VM's.

Durante a instalação, quando aparecer a tela chamada:

"Configurando a rede via DHCP" , clique em cancelar e selecione a opção:

"Não Configurar agora a rede"

e prossiga com a instalação.


Após a conclusão da instalação do Sistema Operacional, configure o a rede para conectar a internet:

# echo >> 'auto eth0' /etc/network/interfaces && echo 'iface eth0 inet dhcp' >> /etc/network/interfaces

# /etc/init.d/networking restart


Instale o Servidor SSH

apt-get install openssh-server



Configure o arquivo de Repositorio conforme segue:


#
deb cdrom:[Debian GNU/Linux 6.0.5 _Squeeze_ - Official amd64 NETINST Binary-1 20120512-20:40]/ squeeze main

deb http://security.debian.org/ squeeze/updates main
deb-src http://security.debian.org/ squeeze/updates main
deb ftp://ftp.debian.org/debian/ stable main
deb-src ftp://ftp.debian.org/debian/ stable main
deb http://ftp.debian.org/debian/ squeeze-updates main
deb-src http://ftp.debian.org/debian/ squeeze-updates main


Atualize os repositorios:

# apt-get update


Instale os pacotes necessarios:

# apt-get install linux-image-xen-amd64 xen-hypervisor-4.0-amd64 xen-tools vim sudo openssh-server xserver-xorg xserver-xorg-core x-window-system-core x-window-system fluxbox xdm xenwatch virt-manager vim






Depois do sistema instalado e inicializado, crie uma nova partição, alocando o espaço livre que você deseja usar para suas máquinas virtuais Domu. Entre outras vantagens, o Xen tem muito melhor desempenho IO de disco, se você usar LVM ao invés de imagens de disco. Crie o grupo de volume assim, atribuindo o md4 a sua partição vazia LVM.

Instale o pacote de suporte a LVM


# apt-get install lvm2


Crie o volume fisico

# pvcreate /dev/md4

Crie o grupo do Volume

# vgcreate xen-vol /dev/md4


xeninstalldebiansqueeze.sh


#!/bin/bash

echo 'auto lo' > /etc/network/interfaces && echo 'iface lo inet loopback' >> /etc/network/interfaces && echo 'auto eth0' >> /etc/network/interfaces && echo 'iface eth0 inet dhcp' >> /etc/network/interfaces

/etc/init.d/networking restart

echo 'deb http://security.debian.org/ squeeze/updates main' > /etc/apt/sources.list
echo 'deb-src http://security.debian.org/ squeeze/updates main' >> /etc/apt/sources.list
echo 'deb ftp://ftp.debian.org/debian/ stable main' >> /etc/apt/sources.list
echo 'deb-src ftp://ftp.debian.org/debian/ stable main' >> /etc/apt/sources.list
echo 'deb http://ftp.debian.org/debian/ squeeze-updates main' >> /etc/apt/sources.list
echo 'deb-src http://ftp.debian.org/debian/ squeeze-updates main' >> /etc/apt/sources.list

apt-get update

apt-get install linux-image-xen-amd64 xen-hypervisor-4.0-amd64 xen-tools vim sudo openssh-server xserver-xorg xserver-xorg-core x-window-system-core x-window-system fluxbox xdm xenwatch virt-manager xen-qemu-dm-4.0 vim -y

mv /etc/grub.d/10_linux /etc/grub.d/50_linux
echo "" >> /etc/default/grub
echo "# Disable OS prober to prevent virtual machines on logical volumes from appearing in the boot menu." >> /etc/default/grub
echo "GRUB_DISABLE_OS_PROBER=true" >> /etc/default/grub
echo "" >> /etc/default/grub
echo "# Xen boot parameters for all Xen boots" >> /etc/default/grub
echo 'GRUB_CMDLINE_XEN="dom0_mem=1024M"' >> /etc/default/grub


mkdir -p /usr/lib64/xen/
cp /usr/lib/xen-4.0/* -rv /usr/lib64/xen/


sed -i 's|(enable-dom0-ballooning yes)|(enable-dom0-ballooning no)|g' /etc/xen/xend-config.sxp
sed -i 's|#(xend-http-server no)|(xend-http-server yes)|g' /etc/xen/xend-config.sxp
sed -i 's|#(xend-unix-server no)|(xend-unix-server yes)|g' /etc/xen/xend-config.sxp
sed -i 's|# (network-script network-bridge)|(network-script network-bridge)|g' /etc/xen/xend-config.sxp
sed -i 's|(dom0-min-mem 196)|(dom0-min-mem 1024)|g' /etc/xen/xend-config.sxp
sed -i 's|XENDOMAINS_SAVE=/var/lib/xen/save|XENDOMAINS_SAVE=""|g' /etc/default/xendomains
sed -i 's|XENDOMAINS_RESTORE=true|XENDOMAINS_RESTORE=false|g' /etc/default/xendomains

update-grub2

pvcreate /dev/sda3
vgcreate xen-vol /dev/sda3



--------------------------------------------------------------------------------------




































terça-feira, 11 de setembro de 2012

Tutorial Root Mini Pc Android 4.0.4 Media Player Minix H24


Como fazer ROOT no seu Minix Media Player H24 TV Box



Ele vem com o processador Allwinner (Cortex A8) A10 e com Android 4.0,  já traz algum divertimento.

Este dispositivo vem com a entrada USB OTG. Mas infelizmente nós não temos o cabo para este dispositivo, aquele cabo USB com duas pontas macho. Então somente poderemos conectar neste dispositivo pela Rede sem Fio Wifi. Siga os proximos passos:

AVISO: É somente sua as responsabilidades e consequencias de realizar os passos a seguir. Não me responsabilizo pelo seu dispositivo, explosão, desintegração, etc. Se talvez voce perder a garantia do aparelho ou torna-lo um peso de papel. Você foi avisado !

1.       Habilite o Wifi. Conecte o Wifi no seu Access Point ou Roteador

2.       Adicione uma conta no Google e entre no Google Play Store.

3.       Instale o Aplicativo chamado "Wifi Adb", tem um icone com um besouro vermelho.

4.        Instale o Busybox installer

5.        Instale o Superuser

6.       Execute o aplicativo "Wifi Adb"

7.       Clique no botão "Turn On"  . Ele vai mostrar o IP e a Porta do seu dispositivo. Precisaremos dessas informaçoes para o proximo passo.

8.       No seu Desktop ou Notebook, e instale o Adb Shell Tools para acessa-lo remotamente.

9.       Entre na pasta que está o Adb Shell Tools e execute o comando abaixo para conectar no dispositivo:
               adb connect 192.168.100.5

          Onde 192.168.100.5 será seu ip que o Wifi Adb estará mostrando.

          Se der tudo certo voce receberá a mensagem:
              connected to 192.168.100.5:5555

         Entre no prompt de comando do Adb digitando o comando abaixo:
              adb shell

         Aparecerá o prompt abaixo:
              root@android:/ #

10.   Isso indica que o seu aparelho ja está rootado. Entretanto, ele nao tem o Aplicativo superuser instalado, e os aplicativos que exigem Root nao funcionarão como esperando ainda.

11.   Vá em frente e instale o aplicativo superuser atraves do Google Play Store. Ainda assim o a raiz do Prompt nao aparece ainda. Mas, o proximo passo irá substituir o arquivo em /system.xbin/su para resolver isso.

12.  Faça Download  do Superuser-3.1.3-arm-signed.zip onde tem o arquivo (su) que irá funcionar. Extraia ele na pasta onde o adb.exe está presente, na pasta do Adb Shell Tools.

13.   Continuando no Adb Shell.

Remonte o acesso ao diretorio de acesso remoto:
         adb remount

Acesso o Prompt remoto do dispositivo:
         adb shell

Renomeie o arquivo 'su' original:
         mv /system/xbin/su /system/xbin/su.old

Saia do prompt remoto:
         exit

Dentro do diretorio onde esta o novo arquivo 'su' execute o comando abaixo para envia-lo para o dispositivo:
          adb push su /system/xbin/su

Dê premissão de dono para o arquivo 'su':
          adb shell chown 0.0 /system/xbin/su

Dê permissão de 775 para o arquivo 'su'
          adb shell chmod 06755 /system/xbin/su

Reinicie o equipamento
          adb reboot

14.    Agora o dispositivo deverá estar rootado.

15.   Não desligue a opção de "Permitir acesso Root" no aplicativo "Superuser". Isto pode causar problemas.

segunda-feira, 28 de novembro de 2011

Script VBS para sincronização de arquivos

O Script compara o caminho de origem com o de destino, caso o caminho de destino não exista, ele será criado, caso já exista será comparada a data de modificação da origem com o destino, caso a origem seja mais atual que o destino, será copiado o arquivo atual para o caminho de destino.

Segue o script do arquivo VBS:



Set objFSO = CreateObject("Scripting.FileSystemObject")
Const objStartFolder = "R:" 'Declara a constante da pasta de origem
Const DestinationFolder = "C:\Linx" 'Declara constante da pasta de destino

Set objFolder = objFSO.GetFolder(objStartFolder)
Wscript.Echo Replace(objFolder.Path,objStartFolder,DestinationFolder)
dim PastaDestino
PastaDestino = Replace(objFolder.Path,objStartFolder,DestinationFolder)
If objFSO.FolderExists(PastaDestino) Then ' Verifica se o diretório a processar existe no destino
'Caso exista, informa em um echo
Set objFolderD = objFSO.GetFolder(PastaDestino)
WScript.Echo "Verificando " & PastaDestino
Else
'Caso não exista, cria e informa a criação em echo
Set objFolderD = objFSO.CreateFolder(PastaDestino)
WScript.Echo "Verificando " & PastaDestino
End If

Set colFiles = objFolder.Files
For Each objFile in colFiles
If NOT objFSO.FileExists(PastaDestino & "\" & objFile.Name) Then 'Se não existir arquivos na pasta de destino e no nome do arquivo do objeto
'Se o arquivo não existir no diretório de destino da cópia.
objFile.Copy PastaDestino & "\"
Wscript.Echo "Copiando: " & PastaDestino & "\" & objFile.Name
Else
If objFile.DateLastModified > objFSO.GetFile(PastaDestino & "\" & objFile.Name).DateLastModified Then
'Se o arquivo é mais recente que o arquivo de destino da cópia lá
objFile.Copy PastaDestino & "\", True
Wscript.Echo "Copiando: " & PastaDestino & "\" & objFile.Name
End If
End If
Wscript.Echo PastaDestino & "\" & objFile.Name
Next
Wscript.Echo

ShowSubfolders objFSO.GetFolder(objStartFolder)

Sub ShowSubFolders(Folder)
For Each Subfolder in Folder.SubFolders
'Poderá incluir diretorios que não serão copiados.
If InStr(Subfolder.Path,"\imagens") < 2 and InStr(Subfolder.Path,"\Words") < 2 and InStr(Subfolder.Path,"\PACOTE") < 2 and InStr(Subfolder.Path,"Report\outros") < 2 and InStr(Subfolder.Path,"\Linx_5.8") < 2 and InStr(Subfolder.Path,"\View") < 2 and InStr(Subfolder.Path,"\Logo") < 2 and InStr(Subfolder.Path,"\PROJETO ETIQUETAS PAULOLINX") < 2 Then
'Se a pasta não é parte das pastas proibidas acima, ele libera a copia...
Wscript.Echo Replace(Subfolder.Path,objStartFolder,DestinationFolder)
Set objFolder = objFSO.GetFolder(Subfolder.Path)
PastaDestino = Replace(objFolder.Path,objStartFolder,DestinationFolder)
'---------------- Tratamento de pastas
If objFSO.FolderExists(PastaDestino) Then ' Verifica se o diretório a processar existe no destino
'Caso exista, informa em um echo
Set objFolderD = objFSO.GetFolder(PastaDestino)
WScript.Echo "Verificando " & PastaDestino
Else
'Caso não exista, cria e informa a criação em echo
Set objFolderD = objFSO.CreateFolder(PastaDestino)
WScript.Echo "Verificando " & PastaDestino
End If
'---------------- /Tratamento de pastas
Set colFiles = objFolder.Files
For Each objFile in colFiles
If NOT objFSO.FileExists(PastaDestino & "\" & objFile.Name) Then 'Se não existir arquivos na pasta de destino e no nome do arquivo do objeto
'Se o arquivo não existir no diretório de destino da cópia lá.
objFile.Copy PastaDestino & "\"
Wscript.Echo "Copiando: " & PastaDestino & "\" & objFile.Name
Else
If objFile.DateLastModified > objFSO.GetFile(PastaDestino & "\" & objFile.Name).DateLastModified Then
'Se o arquivo é mais recente que o arquivo de destino da cópia lá
objFile.Copy PastaDestino & "\", True
Wscript.Echo "Copiando: " & PastaDestino & "\" & objFile.Name
End If
End If
'Wscript.Echo PastaDestino & "\" & objFile.Name
'Wscript.Echo objFile.Name
Next
Wscript.Echo
ShowSubFolders Subfolder
End If
Next
End Sub
Wscript.Echo "O Linx foi sincronizado com o servidor"

quinta-feira, 28 de julho de 2011

Exemplo de Script Logon em VbScript para Active directory

'Impedindo exibição de error para o usuário
on error resume next

'SINCRONIZA HORARIO ESTAÇÃO x SERVIDOR
Set wshShell = CreateObject("WScript.Shell")
wshShell.Run "NET TIME \\pdcsrv01 /SET /Y", 0, True

'LIMPA UNIDADES DE REDE
Set WSHNetwork = WScript.CreateObject("WScript.Network")
on error resume next
WSHNetwork.RemoveNetworkDrive "G:", True, True
WSHNetwork.RemoveNetworkDrive "H:", True, True
WSHNetwork.RemoveNetworkDrive "I:", True, True
WSHNetwork.RemoveNetworkDrive "J:", True, True
WSHNetwork.RemoveNetworkDrive "K:", True, True
WSHNetwork.RemoveNetworkDrive "L:", True, True
WSHNetwork.RemoveNetworkDrive "M:", True, True
WSHNetwork.RemoveNetworkDrive "N:", True, True
WSHNetwork.RemoveNetworkDrive "O:", True, True
WSHNetwork.RemoveNetworkDrive "P:", True, True
WSHNetwork.RemoveNetworkDrive "Q:", True, True
WSHNetwork.RemoveNetworkDrive "R:", True, True
WSHNetwork.RemoveNetworkDrive "S:", True, True
WSHNetwork.RemoveNetworkDrive "T:", True, True
WSHNetwork.RemoveNetworkDrive "U:", True, True
WSHNetwork.RemoveNetworkDrive "V:", True, True
WSHNetwork.RemoveNetworkDrive "X:", True, True
WSHNetwork.RemoveNetworkDrive "Y:", True, True
WSHNetwork.RemoveNetworkDrive "w:", True, True
WSHNetwork.RemoveNetworkDrive "Z:", True, True
WScript.DisconnectObject WSHNetwork
'FIM DO LIMPA UNIDADES

Dim strComputername, strDomain, strUser, strIp, strLoc, wshshell

Set wshShell = CreateObject("WScript.Shell")
strComputername = wshShell.ExpandEnvironmentStrings("%COMPUTERNAME%")
strDomain = wshShell.ExpandEnvironmentStrings("%userdomain%")
strUser = wshShell.ExpandEnvironmentStrings("%USERNAME%")

'Wscript.Echo strUser


'CONECTA UNIDADES DE REDE
Set objNet = CreateObject("Wscript.Network")

'MAPEIA DIRETORIO PESSOAL
objNet.MapNetworkDrive "U:","\\stgsrv01\home_"&strUser & "$"

'MAPEIA DIRETORIO DO LINX
objNet.MapNetworkDrive "L:","\\appsrv04\l"

'MAPEIA DIRETORIO DO MODARIS E DIAMINO
objNet.MapNetworkDrive "Z:","\\stgsrv01\lectra"

'MAPEIA DIRETORIO DO INVESTRONICA
objNet.MapNetworkDrive "X:","\\sqlsrv02\x"

'MOSTRA O CAMINHO DO DIRETORIO PESSOAL
' WScript.Echo "U:","\\stgsrv01\home_"&strUser & "$"

'C:\Documents and Settings\ti01\Dados de aplicativos\Microsoft\Internet Explorer\Quick Launch
'C:\Users\marcelo.souza\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar

'CRIA ICONE DO LINX NO DESKTOP
set WshShell = WScript.CreateObject("WScript.Shell")
strDesktop = WshShell.SpecialFolders("Desktop")
set oUrlLink = WshShell.CreateShortcut(strDesktop & "\Visual Linx 8.lnk")
oUrlLink.TargetPath = "L:\Linx_sql\LINX\VisualLinx.exe"
oUrlLink.IconLocation = "L:\Linx_sql\LINX\VisualLinx.exe"
oUrlLink.Save

'CRIA ATALHO DO DIRETORIO PESSOAL NO DESKTOP
strAppPath = "U:\"
Set wshShell = CreateObject("WScript.Shell")
objDesktop = wshShell.SpecialFolders("Desktop")
set oShellLink = WshShell.CreateShortcut(objDesktop & "\Diretorio Pessoal.lnk")
oShellLink.TargetPath = strAppPath
oShellLink.WindowStyle = "1"
oShellLink.Description = "Diretorio Pessoal"
oShellLink.Save

'COPIA ICONE DO MODARIS NO DESKTOP
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set Wshs = WScript.CreateObject("WScript.Shell")
Const OverwriteExisting = true
usrProfile = Wshs.ExpandEnvironmentStrings("%UserProfile%")
objFSO.CopyFile "\\pdcsrv01\netlogon\Modaris Diamino Server.rdp" , usrProfile & "\Desktop\", OverwriteExisting

'ENVIA O COMANDO PARA APERTAR A TECLA F5 PARA ATUALIZAR OS ICONES NO DESKTOP
WshShell.SendKeys "{F5}"


'WScript.Quit