Pregunta

Aceptar aquí es mi problema:

Estoy tratando de ejecutar una secuencia de comandos de forma remota en el servidor.

Soy un administrador en ambas cajas, excepciones de firewall están en su lugar, la administración remota está habilitada, y todo lo demás se ve bien que puedo ver.

invoke-command -ComputerName $ComputerName -ScriptBlock `
{
    cd C:\Windows\System32\inetsrv\; 
    ./appcmd.exe ADD vdir /app.name:<SiteName>/ /path:/<VDir Name> /physicalPath:<Path to files>
}

sigo recibiendo el siguiente error a cambio

ERROR ( hresult:80070005, message:Failed to commit configuration changes. Access is denied.

El servidor que está tratando de ejecutar en un servidor 2k8 cuadro R2 y estoy pensando en el problema es un problema de UAC. ¿Hay alguna forma de conseguir esto para ejecutar como administrador sin tener que hacer clic en Sí en una caja UAC?

Esta pieza de código de tiempo se convertirá en una secuencia de comandos que tendrá que ser completamente automatizado.

Cualquier ayuda sería muy apreciada.

¿Fue útil?

Solución

OK. Después de algunas investigaciones y pruebas que me di cuenta del problema. Después de desactivar el UAC y el firewall y el guión aún no funciona cavé un poco más y descubrí que el problema principal era el Invoke-Command manera ejecuta los comandos. que utiliza las credenciales de la persona que ejecuta la secuencia de comandos para autenticar al servidor y luego intenta utilizar otra cuenta para ejecutar los permisos o reduce los privilegios del usuario, de modo que ciertos comandos no se pueden ejecutar.

He añadido los -Credentials modificador al comando de invocación y todo funciona muy bien ahora. Corregido ejemplo de código a continuación:

$user = New-Object Management.Automation.PSCredential("$UserName", $securePassword)
invoke-command -ComputerName $ComputerName -Credential $user -ScriptBlock ` 
{ 
    cd C:\Windows\System32\inetsrv\;  
    ./appcmd.exe ADD vdir /app.name:<SiteName>/ /path:/<VDir Name> /physicalPath:<Path to files> 
} 

Otros consejos

Este parece indicar que es necesario asegurarse de que usted es un administrador local en el equipo remoto (aunque es cierto que esto es para WMI en concreto). De acuerdo con este puede cambiar una clave de registro para detener la UAC a aplicar inicios de sesión remotos para administradores (buscar LocalAccountTokenFilterPolicy). Eso no debería desactivar el UAC no filtrar el token si utiliza PowerShell / WMI de forma remota con una cuenta de administrador.

Establecer la opción "EnableLUA" (valor DWORD) se encuentra en HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Policies \ System a 0 y reiniciar el sistema.

Esto permite desactivar la UAC sin ningún problema, lo haría para todos sus usuarios, ya sea con o sin el permiso depende de usted, ya que el Vista UAC es tan horrible que yo creo que la gente menos que lo tienen en el mejor (al menos en vista) que son. Thsi truco también funciona en Win7 también.

Diviértete con mi truco del registro:)

P.S .: Pues resulta que los comentarios por lo que se censura que muestran cómo deshabilitar el UAC en lo que se refiere a mi post / hilo con la respuesta anterior (una respuesta diligente fue eliminado).

  

¿Hay alguna forma de conseguir esto para ejecutar como administrador sin tener que hacer clic en Sí en una caja UAC?

Si esto fuera posible, sería derrotar por completo el punto de UAC.

Por lo tanto, parece ser la solución real sólo es desactivar UAC en el cuadro.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top