Cómo ejecutar un script de PowerShell desde una aplicación remota como un usuario específico

Cómo ejecutar un script de PowerShell desde una aplicación remota como un usuario específico

Tengo una aplicación que puede ejecutar un script de PowerShell en una máquina remota con Windows. Estoy intentando asignar una unidad de red utilizando un script de PowerShell. Cuando se ejecuta el mismo script en el punto final, el script funciona bien y puede asignar una unidad de red. Pero cuando se ejecutó el mismo script desde mi aplicación, se realizó el mapeo de una unidad de red, pero como una unidad de red desconectada.

Ahora, mis observaciones: descubrí que mi aplicación está ejecutando el script con NT Authority\Systemcuenta. Puede deberse a esto que la unidad de red asignada sea visible para un usuario específico como una unidad desconectada. ¿¡¡Estoy en lo correcto!!?

Ahora, el problema: ¿Qué puedo hacer para asignar una unidad de red disponible para todos los usuarios? ¿O puedo ejecutar mi script de PowerShell como un usuario específico, de modo que la unidad se asigne únicamente a ese usuario?

De todos modos, ya intenté ejecutar mi script de PowerShell como un usuario diferente de mi aplicación usando Start-Processy Invoke-Commandarroja un error, dice ejecutar, winrm quickconfigque tampoco funcionó.

¿Alguna ayuda? ¡¡Apreciado!!

Respuesta1

Cuando se asigna desde NT Authority\Systemla unidad, se mostrará como desconectado, pero debería funcionar:Asignar una unidad de red para que la utilice un servicio

NOTA: La unidad asignada recién creada aparecerá ahora para TODOS los usuarios de este sistema, pero la verán como "Unidad de red desconectada (Z:)". No dejes que el nombre te engañe. Puede que diga que está desconectado, pero funcionará para todos.

Además, mapear una unidad NT Authority\Systemes la única forma (aunque no compatible oficialmente) de hacer que una unidad de red esté disponible para todos los usuarios.

Si desea asignar una unidad para un usuario específico, deberáejecutar PowerShell como un usuario diferente. Pero también significa que tendrías que obtener credenciales para ese usuario.

Esto se puede mitigar mediante la manipulación de tokens, pero es complicado. VerManipulación de tokens de invocaciónfunción y su ImpersonateUserparámetro.

información relacionada