none
Script Para identificar o SO RRS feed

  • Pergunta

  • Bom dia amigos, é o seguinte, eu preciso copiar um arquivo para alguns usuários sendo que dependendo do departamento do usuário e do SO dele.

    Cada departamento tem uma OU e dentro dessa ou tem usuário que tem XP e Win7 e dependendo do SO o caminho para copiar o arquivo é diferente, então o que eu queria é um Script que primeiro verifique de qual OU o usuário é e dependendo da OU ele execute ou chame outro Script que vai verificar o SO dele e dependendo disso ele copie para o caminho especifico.

    Ex: Se o usuário é da OUX execute \\departamentox\arquivo.txt

    Dentro de arquivo.txt teria outro script que faria o seguinte:

    Se o SO for XP copy \\servidor\departamentox\arquivo.txt "%userprofile%\Application Data\

    Se for Win7 copy  \\servidor\departamentox\arquivo.txt "%userprofile%\AppData\Roaming\


    MCSA+S - MCTS - MCITP - ITIL - STS

    segunda-feira, 29 de abril de 2013 13:14

Respostas

  • Resolvi com esse Script:

    On Error Resume Next

    set objNetwork= CreateObject("WScript.Network")
    Set WShell = CreateObject("Wscript.Shell")
    strDom = objNetwork.UserDomain
    strUser = objNetwork.UserName
    Set objUser = GetObject("WinNT://" & strDom & "/" & strUser &  ",user")

    '============================================='

    For Each objGroup In objUser.Groups

        Select Case objGroup.Name



    Case "GG_CTI" 
    WShell.Run ("\\batutas\profiles$\edidoc\CTI.bat")

    CASE "GG_GIAT"
    WShell.Run ("\\batutas\profiles$\edidoc\GIAT.bat")

    Case "GG_DID" 
    WShell.Run ("\\batutas\profiles$\edidoc\DID.bat")

    Case "GG_CAD"
        WShell.Run ("\\batutas\profiles$\edidoc\CAD.bat")

    CASE "GG_CORG"
    WShell.Run ("\\batutas\profiles$\edidoc\CORG.bat")

    CASE "GG_DCE"
    WShell.Run ("\\batutas\profiles$\edidoc\DCE.bat")

    CASE "GG_DCOM"
    WShell.Run ("\\batutas\profiles$\edidoc\DCOM.bat")

    CASE "GG_DG"
    WShell.Run ("\\batutas\profiles$\edidoc\DG.bat")

    CASE "GG_DIPA"
    WShell.Run ("\\batutas\profiles$\edidoc\DIPA.bat")

    CASE "GG_GC01"
    WShell.Run ("\\batutas\profiles$\edidoc\GC01.bat")

    CASE "GG_GC02"
    WShell.Run ("\\batutas\profiles$\edidoc\GC02.bat")

    CASE "GG_GC03"
    WShell.Run ("\\batutas\profiles$\edidoc\GC03.bat")

    CASE "GG_GC04"
    WShell.Run ("\\batutas\profiles$\edidoc\GC04.bat")

    CASE "GG_GC05"
    WShell.Run ("\\batutas\profiles$\edidoc\GC05.bat")

    CASE "GG_GC06"
    WShell.Run ("\\batutas\profiles$\edidoc\GC06.bat")

    CASE "GG_GC07"
    WShell.Run ("\\batutas\profiles$\edidoc\GC07.bat")

    CASE "GG_MPCO"
    WShell.Run ("\\batutas\profiles$\edidoc\MPCO.bat")

           
        End Select
    next


    MCSA+S - MCTS - MCITP - ITIL - STS

    terça-feira, 30 de abril de 2013 14:38

Todas as Respostas

  • rafael,

    acho que vc pode deixar como esta.

    como vc disse o caminho é diferente, se nao existe ele vai ignorar e pular para o proximo script.

    segunda-feira, 29 de abril de 2013 22:11
  • Tiago, a questão do SO eu já resolvi com o seguinte BAT:

    if exist "%userprofile%\AppData\Roaming" (copy "\\batutas\PD\Exten
    sao_libre\Config Edidoc\CAD\Edidoc.cfg" "%userprofile%\AppData\Roaming\LibreOffi
    ce\4\user\config\Edidoc.cfg") else (copy "\\batutas\PD\Extensao_libre\Config Edi
    doc\CAD\Edidoc.cfg" "%userprofile%\Application Data\LibreOffice\4\user\config")

    Porem eu preciso agora de um Script em VB que verifique de qual OU ou Grupo o usuário faz parte e dependendo da OU  ele chame o BAT especifico do departamento dele. Até já encontrei o VB que verificar o grupo só não sei como chamar o BAT pelo VB.


    MCSA+S - MCTS - MCITP - ITIL - STS

    terça-feira, 30 de abril de 2013 11:22
  • Fiz esse Script em VB mas não está funcionando, alguém saberia me dizer o que está errado?

    Const GG_CTI = "cn=GG_CTI"
    Const GG_CAD = "cn=GG_CAD"
    Const GG_CORG= "cn=GG_CORG"
    Const GG_DCE= "cn=GG_DCE"
    Const GG_DCOM= "cn=GG_DCOM"
    Const GG_DG= "cn=GG_DG"
    Const GG_DID= "cn=GG_DID"
    Const GG_DIPA= "cn=GG_DIPA"
    Const GG_GC01= "cn=GG_GC01"
    Const GG_GC02= "cn=GG_GC02"
    Const GG_GC03= "cn=GG_GC03"
    Const GG_GC04= "cn=GG_GC04"
    Const GG_GC05= "cn=GG_GC05"
    Const GG_GC06= "cn=GG_GC06"
    Const GG_GC07= "cn=GG_GC07"
    Const GG_GIAT= "cn=GG_GIAT"
    Const GG_MPCO= "cn=GG_MPCO"

    Dim WShell
    Set WShell = CreateObject("Wscript.Shell")
    Set ADSysInfo = CreateObject("ADSystemInfo")
    Set CurrentUser = GetObject("LDAP://" & ADSysInfo.UserName) 
    strGroups = LCase(Join(CurrentUser.MemberOf))


    If InStr(strGroups, GG_CTI ) Then
    WShell.Run ("\\batutas\profiles$\edidoc\CTI.bat")    
    ElseIf InStr(strGroups, GG_CAD) Then
    WShell.Run ("\\batutas\profiles$\edidoc\CAD.bat")
    ElseIf InStr(strGroups, GG_CORG) Then
    WShell.Run ("\\batutas\profiles$\edidoc\CORG.bat")
    ElseIf InStr(strGroups, GG_DCE) Then
    WShell.Run ("\\batutas\profiles$\edidoc\DCE.bat")
    ElseIf InStr(strGroups, GG_DCOM) Then
    WShell.Run ("\\batutas\profiles$\edidoc\DCOM.bat")
    ElseIf InStr(strGroups, GG_DG) Then
    WShell.Run ("\\batutas\profiles$\edidoc\DG.bat")
    ElseIf InStr(strGroups, GG_DID) Then
    WShell.Run ("\\batutas\profiles$\edidoc\DID.bat")
    ElseIf InStr(strGroups, GG_DIPA) Then
    WShell.Run ("\\batutas\profiles$\edidoc\DIPA.bat")
    ElseIf InStr(strGroups, GG_GC01) Then
    WShell.Run ("\\batutas\profiles$\edidoc\GC01.bat")
    ElseIf InStr(strGroups, GG_GC02) Then
    WShell.Run ("\\batutas\profiles$\edidoc\GC02.bat")
    ElseIf InStr(strGroups, GG_GC03) Then
    WShell.Run ("\\batutas\profiles$\edidoc\GC03.bat")
    ElseIf InStr(strGroups, GG_GC04) Then
    WShell.Run ("\\batutas\profiles$\edidoc\GC04.bat")
    ElseIf InStr(strGroups, GG_GC05) Then
    WShell.Run ("\\batutas\profiles$\edidoc\GC05.bat")
    ElseIf InStr(strGroups, GG_GC06) Then
    WShell.Run ("\\batutas\profiles$\edidoc\GC06.bat")
    ElseIf InStr(strGroups, GG_GC07) Then
    WShell.Run ("\\batutas\profiles$\edidoc\GC07.bat")
    ElseIf InStr(strGroups, GG_GIAT) Then
    WShell.Run ("\\batutas\profiles$\edidoc\GIAT.bat")
    ElseIf InStr(strGroups, GG_MPCO) Then
    WShell.Run ("\\batutas\profiles$\edidoc\MPCO.bat")
    End If


    MCSA+S - MCTS - MCITP - ITIL - STS

    terça-feira, 30 de abril de 2013 13:02
  • Resolvi com esse Script:

    On Error Resume Next

    set objNetwork= CreateObject("WScript.Network")
    Set WShell = CreateObject("Wscript.Shell")
    strDom = objNetwork.UserDomain
    strUser = objNetwork.UserName
    Set objUser = GetObject("WinNT://" & strDom & "/" & strUser &  ",user")

    '============================================='

    For Each objGroup In objUser.Groups

        Select Case objGroup.Name



    Case "GG_CTI" 
    WShell.Run ("\\batutas\profiles$\edidoc\CTI.bat")

    CASE "GG_GIAT"
    WShell.Run ("\\batutas\profiles$\edidoc\GIAT.bat")

    Case "GG_DID" 
    WShell.Run ("\\batutas\profiles$\edidoc\DID.bat")

    Case "GG_CAD"
        WShell.Run ("\\batutas\profiles$\edidoc\CAD.bat")

    CASE "GG_CORG"
    WShell.Run ("\\batutas\profiles$\edidoc\CORG.bat")

    CASE "GG_DCE"
    WShell.Run ("\\batutas\profiles$\edidoc\DCE.bat")

    CASE "GG_DCOM"
    WShell.Run ("\\batutas\profiles$\edidoc\DCOM.bat")

    CASE "GG_DG"
    WShell.Run ("\\batutas\profiles$\edidoc\DG.bat")

    CASE "GG_DIPA"
    WShell.Run ("\\batutas\profiles$\edidoc\DIPA.bat")

    CASE "GG_GC01"
    WShell.Run ("\\batutas\profiles$\edidoc\GC01.bat")

    CASE "GG_GC02"
    WShell.Run ("\\batutas\profiles$\edidoc\GC02.bat")

    CASE "GG_GC03"
    WShell.Run ("\\batutas\profiles$\edidoc\GC03.bat")

    CASE "GG_GC04"
    WShell.Run ("\\batutas\profiles$\edidoc\GC04.bat")

    CASE "GG_GC05"
    WShell.Run ("\\batutas\profiles$\edidoc\GC05.bat")

    CASE "GG_GC06"
    WShell.Run ("\\batutas\profiles$\edidoc\GC06.bat")

    CASE "GG_GC07"
    WShell.Run ("\\batutas\profiles$\edidoc\GC07.bat")

    CASE "GG_MPCO"
    WShell.Run ("\\batutas\profiles$\edidoc\MPCO.bat")

           
        End Select
    next


    MCSA+S - MCTS - MCITP - ITIL - STS

    terça-feira, 30 de abril de 2013 14:38