none
Autenticação Power Shell 2.0 RRS feed

  • Pergunta

  • Alguém poderia me ajudar? Vou explicar com detalhes a situação.

    1º - Quero um script para executar uma instalação em rede.

    2º - Nenhum usuário tem acesso de ADM para realizar a instalação.

    3º - Essa autenticação deverá ser feita dentro do script.

    4º - Fiz o script, ele checa o tipo do SO e puxa a instalação da rede.

    5º - O problema está: Ele pede a senha de ADM para realizar a instalação.

    6º - Qual a possibilidade de realizar essa instalação sem interação do usuário e com a autenticação já feita?

    O código que criei para a instalação é simples. Segue abaixo:

    if ($osv = "Windows 7 SP1" -or "Windows 7"){
            Start-process -FilePath "\\Servidor\Softwares$\Java - Offline\jre-7u51-windows-x64.exe"
            $Usuario = “Servidor\WesleyADM”
            $Senha = ConvertTo-SecureString –String “Pass@W0rd” –AsPlainText -Force
            $Credential = New-Object –TypeName System.Management.Automation.PSCredential –ArgumentList $Usuario, $Senha
            Enter-PSSession Server01 -Credential $Credential
        }
        
        else {
            Start-process -FilePath "\\WServidor\Softwares$\Java - Offline\jre-7u51-windows-xi586.exe"
        }

    Eu não consegui autenticar na rede. Temos um domínio aqui e não consegui autenticar. Fica aparecendo a mensagem:

    Enter-PSSession : Falha ao conectar ao servidor remoto com a seguinte mensagem d
    e erro: O WinRM não pode processar a solicitação. O erro a seguir ocorreu durant
    e o uso da autenticação Kerberos: O caminho da rede não foi encontrado.  
     As possíveis causas são:
      -O nome de usuário ou senha especificado é inválido.
      -Kerberos é usado quando não for especificado um método de autenticação ou nom
    e de usuário.
      -Kerberos aceitar nomes de usuário de domínio, mas não nomes de usuário local.
      -O Nome da Entidade de Serviço (SPN) referente ao nome do computador remoto e 
    à porta não existe.
      -Os computadores cliente e remoto estão em domínios diferentes e não há relaçã
    o de confiança entre os dois.
     Depois de verificar os problemas acima, tente o seguinte:
      - Verifique no Visualizador de Eventos se há eventos relacionados à autenticaç
    ão.
      - Altere o método de autenticação, adicione o computador de destino à configur
    ação TrustedHosts do WinRM ou use o transporte HTTPS.
     Observe que os computadores na lista TrustedHosts podem não ser autenticados.
       -Para obter mais informações sobre a configuração do WinRM, execute o seguint
    e comando: winrm help config. Para obter mais informações, consulte o tópico da 
    Ajuda about_Remote_Troubleshooting.
    Em linha:71 caractere:24
    +         Enter-PSSession <<<<  Nobell -Credential $Credential
        + CategoryInfo          : InvalidArgument: (Nobell:String) [Enter-PSSession 
       ], PSRemotingTransportException
        + FullyQualifiedErrorId : CreateRemoteRunspaceFailed

    O que pode ser feito? O que fiz de errado?

    Agradeço desde já a todos.


    quinta-feira, 30 de janeiro de 2014 11:30

Respostas

  • Eu não utilizaria o PowerShell para fazer isso.

    Veja esse link com um exemplo em .BAT.

    @ECHO OFF
    echo Installing Java. . .
    
    set Java32="C:\Users\dpoghosy\Downloads\jre-7u21-windows-i586.exe"
    set Java64="C:\Users\dpoghosy\Downloads\jre-7u21-windows-x64.exe"
    
    
    if not exist %Java32% set missing=%Java32% & goto ERR1
    if not exist %Java64% set missing=%Java64% & goto ERR1
    
    IF NOT DEFINED PROCESSOR_ARCHITEW6432 (
    IF %PROCESSOR_ARCHITECTURE% EQU x86 (
    goto JA32
    ) ELSE (
    goto JA64
    ))
    
    :JA64
    %Java64% /s REBOOT=Suppress
    shutdown.exe /r /t 00
    goto JA32
    
    :JA32
    %Java32% /s REBOOT=Suppress
    shutdown.exe /r /t 00
    goto END
    
    :ERR1
    echo Unable to file: %missing%
    pause
    goto END
    
    :END
    exit

    Ref.:

    "Script to Install Java "

    http://fixitscripts.com/problems/script-to-install-java


    Fábio de Paula Junior

    sexta-feira, 31 de janeiro de 2014 15:40
    Moderador

Todas as Respostas

  • Wesley,

    Uma maneira mais segura é você usar scripts de instalação por máquina (script de Start Up/Inicialização) pois estes executam com as credenciais de sistema. Quando você utiliza no script de Logon ele roda com a conta do usuário que está logando. Colocar credenciais dentro de um script não é seguro.

    Sobre seu script, posso estar enganado, mas depois que você deu o start-process não adianta você autenticar depois, ao chamar o start-process você já deveria estar como outro usuário.

    Outra coisa que percebi é que você não colocou parametros de instalação silenciosa na chamada do seu instalador, então qualquer que fosse o usuário que você usasse a instalação ficaria dependendo da intervenção do usuário logado.

    Ref.:

    Assign computer startup scripts

    http://technet.microsoft.com/en-us/library/cc779329(v=ws.10).aspx

    How do I arrange a silent (unattended) Java installation?

    http://java.com/en/download/help/silent_install.xml

    Script Instalação de programa

    http://social.technet.microsoft.com/Forums/pt-BR/33e47ef1-4ea6-4e81-8d9b-f377baf98e6b/script-instalao-de-programa?forum=scriptadminpt


    Fábio de Paula Junior



    quinta-feira, 30 de janeiro de 2014 12:31
    Moderador
  • Fabio, obrigado pela resposta. Mas, ainda nçao entendi. Como estou iniciando na programação shell, ainda não tenho tanta experiência assim. Onde que eu colocaria a autenticação? Como eu faria a instalaçao do java silenciosa? Coloquei o /s e me retornou o seguinte:

    No linha:2 caractere:63

    + "\\WATT\Softwares$\Java - Offline\jre-7u51-windows-i586.exe" /s
    +                                                               ~
    É necessário fornecer uma expressão de valor no lado direito do operador '/'.

    Então, coloquei '/s' dai ele retornou:

    Token ''/s'' inesperado na expressão ou instrução.
        + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
        + FullyQualifiedErrorId : UnexpectedToken

    E agora o que faço?


    sexta-feira, 31 de janeiro de 2014 14:06
  • Eu não utilizaria o PowerShell para fazer isso.

    Veja esse link com um exemplo em .BAT.

    @ECHO OFF
    echo Installing Java. . .
    
    set Java32="C:\Users\dpoghosy\Downloads\jre-7u21-windows-i586.exe"
    set Java64="C:\Users\dpoghosy\Downloads\jre-7u21-windows-x64.exe"
    
    
    if not exist %Java32% set missing=%Java32% & goto ERR1
    if not exist %Java64% set missing=%Java64% & goto ERR1
    
    IF NOT DEFINED PROCESSOR_ARCHITEW6432 (
    IF %PROCESSOR_ARCHITECTURE% EQU x86 (
    goto JA32
    ) ELSE (
    goto JA64
    ))
    
    :JA64
    %Java64% /s REBOOT=Suppress
    shutdown.exe /r /t 00
    goto JA32
    
    :JA32
    %Java32% /s REBOOT=Suppress
    shutdown.exe /r /t 00
    goto END
    
    :ERR1
    echo Unable to file: %missing%
    pause
    goto END
    
    :END
    exit

    Ref.:

    "Script to Install Java "

    http://fixitscripts.com/problems/script-to-install-java


    Fábio de Paula Junior

    sexta-feira, 31 de janeiro de 2014 15:40
    Moderador
  • Só pra responder o que vc questionou:

    Onde que eu colocaria a autenticação? Não sei se esta é a forma correta para utilizar

    Como eu faria a instalaçao do java silenciosa? o /s tem que ficar dentro das aspas, vc colocou pro lado de fora.


    Fábio de Paula Junior

    sexta-feira, 31 de janeiro de 2014 15:43
    Moderador
  • Fábio, muito obrigado mesmo pelas respostas! Mas, deixa eu te perguntar:

    No script .BAT tem algo que eu possa fazer para que ele autentique como usuário adm? Ou ao adicionar ele na GPO ele já vai ser executado como system ou administrador de rede?

    Estou realizando o curso de Power Shell da MVA por isso estava tentando em Power Shell! Mas, vou deixar pronto o .BAT conforme me indicou e após isso tentarei em PS.

    Muito obrigado mesmo!

    sábado, 1 de fevereiro de 2014 10:12
  • Alguém poderia me ajudar? Vou explicar com detalhes a situação.

    1º - Quero um script para executar uma instalação em rede.

    2º - Nenhum usuário tem acesso de ADM para realizar a instalação.

    3º - Essa autenticação deverá ser feita dentro do script.

    4º - Fiz o script, ele checa o tipo do SO e puxa a instalação da rede.

    5º - O problema está: Ele pede a senha de ADM para realizar a instalação.

    6º - Qual a possibilidade de realizar essa instalação sem interação do usuário e com a autenticação já feita?

    O código que criei para a instalação é simples. Segue abaixo:

    if ($osv = "Windows 7 SP1" -or "Windows 7"){
            Start-process -FilePath "\\Servidor\Softwares$\Java - Offline\jre-7u51-windows-x64.exe"
            $Usuario = “Servidor\WesleyADM”
            $Senha = ConvertTo-SecureString –String “Pass@W0rd” –AsPlainText -Force
            $Credential = New-Object –TypeName System.Management.Automation.PSCredential –ArgumentList $Usuario, $Senha
            Enter-PSSession Server01 -Credential $Credential
        }
        
        else {
            Start-process -FilePath "\\WServidor\Softwares$\Java - Offline\jre-7u51-windows-xi586.exe"
        }

    Eu não consegui autenticar na rede. Temos um domínio aqui e não consegui autenticar. Fica aparecendo a mensagem:

    Enter-PSSession : Falha ao conectar ao servidor remoto com a seguinte mensagem d
    e erro: O WinRM não pode processar a solicitação. O erro a seguir ocorreu durant
    e o uso da autenticação Kerberos: O caminho da rede não foi encontrado.  
     As possíveis causas são:
      -O nome de usuário ou senha especificado é inválido.
      -Kerberos é usado quando não for especificado um método de autenticação ou nom
    e de usuário.
      -Kerberos aceitar nomes de usuário de domínio, mas não nomes de usuário local.
      -O Nome da Entidade de Serviço (SPN) referente ao nome do computador remoto e 
    à porta não existe.
      -Os computadores cliente e remoto estão em domínios diferentes e não há relaçã
    o de confiança entre os dois.
     Depois de verificar os problemas acima, tente o seguinte:
      - Verifique no Visualizador de Eventos se há eventos relacionados à autenticaç
    ão.
      - Altere o método de autenticação, adicione o computador de destino à configur
    ação TrustedHosts do WinRM ou use o transporte HTTPS.
     Observe que os computadores na lista TrustedHosts podem não ser autenticados.
       -Para obter mais informações sobre a configuração do WinRM, execute o seguint
    e comando: winrm help config. Para obter mais informações, consulte o tópico da 
    Ajuda about_Remote_Troubleshooting.
    Em linha:71 caractere:24
    +         Enter-PSSession <<<<  Nobell -Credential $Credential
        + CategoryInfo          : InvalidArgument: (Nobell:String) [Enter-PSSession 
       ], PSRemotingTransportException
        + FullyQualifiedErrorId : CreateRemoteRunspaceFailed

    O que pode ser feito? O que fiz de errado?

    Agradeço desde já a todos.


    Fábio, não consegui resolver dessa forma. Utilizei o Bat que me passou porém ele continua pedindo senha de adm local para funcionar.

    O que faço agora?

    segunda-feira, 3 de fevereiro de 2014 12:06
  • Wesley,

    Primeiro o script tem que funcionar em testes. Você testou como administrador? Instalou o java sem pedir credenciais? Erro de acesso negado?

    Depois disso você tem que colocar como script de Inicialização (leia os links que passei). O compartilhamento onde estão os instaladores devem ter acesso para as máquinas já que quem vai executar o script é a conta da máquina.  a gpo deve ser atribuída para computadores. Reinicie o computador e verifique se o Java foi instalado ou se o processo de instalação está rodando.


    Fábio de Paula Junior

    segunda-feira, 3 de fevereiro de 2014 12:37
    Moderador
  • Fábio, eu testei ele. Colocamos como script de inicialização do usuario user10. dai ele iniciou normalmente e após isso apareceu a janela do controle de conta.

    No caso a gpo teria que ser adicionada à OU Computers certo? Assim sendo, teria como eu acessar e executar com o meu nome de usuário adm da rede? Ou teria que ser local?

    A situação é, a senha de ADM é igual de todos os computadores. 

    Eu testei como adm, local e de rede. Funciona. O único problema é esse. Ele pede para autenticar...

    segunda-feira, 3 de fevereiro de 2014 17:52
  • Wesley,

    Confira se é nesta parte da GPO que vc está colocando o script.


    Fábio de Paula Junior

    segunda-feira, 3 de fevereiro de 2014 19:39
    Moderador
  • Não... Vou testar aqui conforme me mostrou e aviso qualquer coisa! 

    Obrigado pela paciência!

    Até mais

    segunda-feira, 3 de fevereiro de 2014 19:41