Cómo remoto ejecutar una ELEVADA remota de scripts en PowerShell

Tengo dos servidores:

  • serverA (windows 2003 server)
  • serverB (windows 7)

ServerA contiene una carpeta con un archivo de proceso por lotes (de implementar.bat), que debe ser ejecutado desde un elevado powershell. En ServerA, si lo ejecuto desde un símbolo normal o powershell se produce un error. Si lo ejecuto desde un símbolo del sistema elevado funciona. (ejecutar como administrador).

El problema que tengo es cuando intento ejecutar el archivo de lotes de serverB el uso de un control remoto de ejecución de powershell. Yo soy capaz de ejecutar con este comando:

Invoke-Command -computername serverA .\remotedeploy.ps1

El contenido de remotedeploy.ps1 es:

cd D:\Builds\build5
.\Deploy.bat

He mirado un montón de preguntas en stackoverflow sobre:

  • Ejecutar un powershell remoto (Esto funciona para mí)
  • Ejecutar un local de powershell con privilegios elevados (puedo hacerlo)

Esta pregunta es acerca de ambos al mismo tiempo. Así que la pregunta exacta es:

Es posible ejecutar una ELEVADA REMOTA de scripts en PowerShell?

OriginalEl autor Oscar Foley | 2012-05-23

2 Kommentare

  1. 1

    Intenta cambiar remoteDeploy.ps1 para empezar CMD.EXE con la elevación de los derechos :

    cd D:\Builds\build5
    start-process CMD.EXE -verb runas -argumentlist "-C",".\Deploy.bat"
    Creo que he intentado esto, pero me pidió una contraseña (no es una opción, ya que necesito que se ejecute en un script de compilación) y al parecer no hay ninguna opción para poner una contraseña. Voy a tratar ahora de nuevo sólo para estar seguro.
    No funciona. Cuando se ejecuta localmente un formulario windows forms símbolo del sistema me pide permiso y cuando me la ejecución remota, se congela debido a la misma cuenta de windows de forma pronta, supongo.
    Se parece a la forma de trabajo, pero yo uso el real credenciales de administrador, cuando me cree mi se han agregado.
    ¿Qué estás usando en implementar.murciélago que deben ser elevados. El programa no debe usar interfaz de usuario.
    Estoy usando un SQLCompare herramienta. Me las he arreglado para dejar de necesitar permisos elevados. La interfaz de usuario que aparece es la de «runas» interfaz de usuario me pide que confirme si quiero ejecutar el proceso con permisos elevados.

    OriginalEl autor JPBlanc

  2. 2

    Si usted está usando PowerShell 4, se puede ejecutar el comando con el Estado Deseado de Configuración, que se ejecutan como SYSTEM:

    Invoke-Command -ComputerName ServerA -ScriptBlock {
        configuration DeployBat
        {
            # DSC throws weird errors when run in strict mode. Make sure it is turned off.
            Set-StrictMode -Off
    
            # We have to specify what computers/nodes to run on.
            Node localhost 
            {
                Script 'Deploy.bat'
                {
                    # Code you want to run goes in this script block
                    SetScript = {
                        Set-Location 'D:\Builds\build5'
                        # DSC doesn't show STDOUT, so pipe it to the verbose stream
                        .\Deploy.bat | Write-Verbose
                    }
    
                    # Return $false otherwise SetScript block won't run.
                    TestScript = { return $false }
    
                    # This must returns a hashtable with a 'Result' key/value.
                    GetScript = { return @{ 'Result' = 'RUN' } }
                }
            }
        }
    
        # Create the configuration .mof files to run, which are output to
        # 'DeployBot\NODE_NAME.mof' directory/files in the current directory. The default 
        # directory when remoting is C:\Users\USERNAME\Documents.
        DeployBat
    
        # Run the configuration we just created. They are run against each NODE. Using the 
        # -Verbose switch because DSC doesn't show STDOUT so our resources pipes it to the 
        # verbose stream.
        Start-DscConfiguration -Wait -Path .\DeployBat -Verbose
    }

    OriginalEl autor Aaron Jensen

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea