none
Script Powershell usar variavel de ambiente do usuário RRS feed

  • Pergunta

  • Srs,

    Tenho um script .ps1 que precisa usar uma variável de ambiente do usuário(ja criada). Ao executar esse script dentro do perfil do usuário não tenho problema, mas, quando esse script eh executado via GPO, um erro surge:

    New-Item : Não é possível localizar a unidade. Não existe uma unidade com o nome 'X'.

    e fica c/ o console no local de onde o .vbs chama o .ps1

    PS Microsoft.PowerShell.Core\FileSystem::\\dom\SysVol\dom\Policies\{A108AD47-03F0-446D-8680-169458B832A1}\User\Scripts\Logon>

    .vbs que chama o .ps1:

    Set objShell1 = CreateObject("Wscript.Shell")
    objShell1.Run("powershell -noexit -file \\dom\SYSVOL\dom\scripts\myscript.ps1")

    penso que a execução desse script está usando o ambiente do usuário..

    dentro do console powershel que fica aberto, ao tentar acessar a unidade x:  Set-Location : Não é possível localizar a unidade...

    mas a unidade está acessível no perfil do usuário.

    o que me dizem??

    Obrigado.



    • Editado Rogerio_57 segunda-feira, 17 de fevereiro de 2014 18:53
    • Editado Fábio JrModerator terça-feira, 18 de fevereiro de 2014 19:34 Código
    segunda-feira, 17 de fevereiro de 2014 18:48

Todas as Respostas

  • Rogério,

    Provavelmente você tem um script que cria o mapeamento X:, consegue confirmar se o script de mapeamento já foi executado antes da execução do Script PowerShell?

    Pode ser isso.


    Fábio de Paula Junior

    terça-feira, 18 de fevereiro de 2014 16:36
    Moderador
  • o mapeamento eh por GPO, no meu script .ps1 eu tenho um Sleep e te asseguro: antes do Script carregar eu acesso  a unidade pelo explorer.

    voce percebeu q o script fica setado p. local do servidor onde fica o script?? pois bem, no logon do usuário a janela do PS fica aberta e de la eu nao consigo acessar a unidade d rede.. eh por isso q acho q deve ser alguma coisa relacionada a ambiente..

    terça-feira, 18 de fevereiro de 2014 18:44
  • E se você abrir outra janela do PowerShell? O X: está disponivel?

    Fábio de Paula Junior

    terça-feira, 18 de fevereiro de 2014 19:04
    Moderador
  • se eu chamar do mesmo console o powershell ele também não v a unidade, mas se for no explorer eu acesso..

    se eu abrir um novo powershell ele acessa.

    se eu acessar o compartilhamento onde esta o script e pedir p. abrir em powershell ele funciona perfeitamente.


    • Editado Rogerio_57 terça-feira, 18 de fevereiro de 2014 19:13
    terça-feira, 18 de fevereiro de 2014 19:11
  • Dê esse comando nessa janela que fica aberta:

     $env:username

    Tem que aparecer o nome do usuário logado. Se estiver aparecendo outro nome é porque o sistema que chama o seu script está usando um usuário diferente e este não tem acesso aos seus drives.


    Fábio de Paula Junior

    terça-feira, 18 de fevereiro de 2014 19:33
    Moderador
  • traz o usuário sim
    terça-feira, 18 de fevereiro de 2014 19:55
  • o script:

     

    cls
    write-output ""
    write-output ""
    $mensagem = "Aguarde a copia do Backup..."
    Write-Host -BackgroundColor Yellow -ForegroundColor Black -Object $mensagem
    write-output ""
    write-output ""

     $usuario = [Environment]::UserName
     $dia = (get-date).day
     $mes = (get-date).month
     $log = "log$dia-$mes.txt"
     $hora = (get-date).Hour
     $minuto = (get-date).Minute
     $segundo = (get-date).Second
     $horaIni = [string]$hora + ":" + [string]$minuto + ":" + [string]$segundo
     $vOutlook = $env:outlook

    if (!(Test-Path W:\$usuario\$log)) #ele entra por que não acha o W:
    {
    $horaFim = (get-date).Hour
        $minutoFim = (get-date).Minute
        $segundoFim = (get-date).Second
    $horaFim = [string]$horaFim + ":" + [string]$minutoFim + ":" + [string]$segundoFim
    New-Item W:\$usuario\$log -type file # o erro acontece aqui
    Add-Content W:\$usuario\$log "Backup iniciado em $dia-$mes as $horaIni, finalizado as $horaFim"

    Write-Host Backup Realizado!!
    Write-Host}

    else
    {
    Write-Host
    Write-Host O Backup ja existe...
    Start-Sleep -s 2
    Write-Host
    }

    terça-feira, 18 de fevereiro de 2014 20:38
  • Manda um print da janela de configurações do seu drive W: . (Abas General e Common)


    Fábio de Paula Junior

    sexta-feira, 21 de fevereiro de 2014 18:57
    Moderador
  • terça-feira, 25 de fevereiro de 2014 13:56
  • A aba Comum também.

    Fábio de Paula Junior

    terça-feira, 25 de fevereiro de 2014 16:46
    Moderador
  • terça-feira, 25 de fevereiro de 2014 18:07
  • Subindo.

    Fábio de Paula Junior

    sexta-feira, 14 de março de 2014 17:43
    Moderador
  • Obrigado esse comando, que você citou, me ajudou a automatizar um Invoke-WebRequest.
    domingo, 29 de setembro de 2019 04:22