¿Cómo utilizo una función en mi perfil en la máquina remota al usar Enter-PSSession
en mi máquina local para abrir una sesión remota de PowerShell?Powershell Remoting Profiles
Respuesta
No puede. Al iniciar una sesión interactiva remota con enter-pssession, se carga un perfil remoto. Además, solo se carga el perfil de nivel de máquina en $ pshome. Si desea funciones remotas disponibles, deberá inicializarlas en el script de inicio de la configuración de la sesión remota. Eche un vistazo a get/set-pssessionconfiguration en el servidor remoto.
¿Cambió algo en la forma en que se manejan estas cosas? Estoy con powershell 5.1 y creé un profile.ps1 en C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ solo para establecer un alias, que funciona cuando se usa el shell localmente. Pero cuando se conecta a esa máquina usando Enter-PSSession, el alias no funciona ... – Alex
@Alex ¿Quizás necesite reiniciar el servicio WinRM en el extremo del servidor? Un reinicio debería hacerlo, pero si esto es un poco pesado, entonces "reinicio-servicio winrm" debería funcionar. O bien, las cosas pueden haber cambiado como dices ... – x0n
echar un vistazo a este
http://jrich523.wordpress.com/2010/07/08/creating-a-profile-for-a-remote-session/
es un trabajo en torno a la creación de un perfil de distancia.
Por Jonz y x0n:
Cuando se utiliza PSSessions con las configuraciones de sesión por defecto, no hay secuencias de comandos para ejecutar perfil.
Al iniciar una sesión interactiva remota con
Enter-PSSession
, se carga un perfil remoto. Además, solo se carga el perfil de nivel de la máquina en$pshome
.
Si quieres una sesión para ser preconfigurado (para cargar funciones personalizadas, complementos, módulos, etc.), añadir un script de perfil a un nuevo sessionconfiguration (para inicializar en el script de inicio de la configuración de sesión remota).
El cmdlet Register-PSSessionConfiguration crea y registra una nueva configuración de sesión en la computadora local. Use Get-PSSessionConfiguration para ver las configuraciones de sesión existentes. Tanto Get-PSSessionConfiguration como Register-PSSessionConfiguration requieren derechos elevados (inicie PowerShell con la opción "Ejecutar como administrador").
En el equipo de destino, donde profile.ps1
contiene todas sus funciones:
Register-PSSessionConfiguration -Name WithProfile -StartupScript $PsHome\Profile.ps1
Para utilizar esta sesión preconfigurado debería escribir, desde el equipo local:
Enter-PSSession -ComputerName $computername -ConfigurationName WithProfile
o
Enter-PSSession -ComputerName $computername -ConfigurationName WithProfile -Credential [email protected]
(donde $computername
es el nombre de host de la re mote server donde registró la configuración de la sesión de pssession).
Una buena fuente de conexión remota de PowerShell es el Administrator's Guide to Powershell Remoting.
Referencias:
Powershell Remoting: Use Functions loaded in Powershell remote Profile? http://jrich523.wordpress.com/2010/07/21/update-creating-a-profile-for-a-remote-session/
comprensión y el uso de PowerShell Perfiles
http://blogs.technet.com/b/heyscriptingguy/archive/2013/01/04/understanding-and-using-powershell-profiles.aspx
Las seis rutas de perfil de Windows PowerShell y utilizar diferentes
Uso actual r, anfitrión actual - consola
$ Inicio [Mi] Documentos \ WindowsPowerShell \ Profile.ps1
usuario actual, todos los hosts
$ Inicio [Mi] Documentos \ Profile.ps1
Todos Los usuarios, actual host - consola
$ PsHome \ Microsoft.PowerShell_profile.ps1
Todos los usuarios, todos los hosts
$ PsHome \ Profile.ps1
usuario actual, Current Host - ISE
$ Inicio [Mi] Documentos \ WindowsPowerShell \ Microsoft.PowerShellISE_profile.ps1
todos los usuarios, Current Host - ISE Microsoft.PowerShellISE_profile.ps1 Perfiles
$ PsHome \
de Windows PowerShell
http://msdn.microsoft.com/en-us/library/bb613488%28VS.85%29.aspx
Este perfil se aplica a todos los usuarios y todas las shells.
% windir% \ system32 \ WindowsPowerShell \ v1.0 \ profile.ps1
Este perfil se aplica a todos los usuarios, pero sólo en la cáscara Microsoft.PowerShell.
% windir% \ system32 \ WindowsPowerShell \ v1.0 \ Microsoft.PowerShell_profile.ps1
Este perfil se aplica sólo al usuario actual, sino que afecta a todas las conchas.
% USERPROFILE% \ Mis documentos \ WindowsPowerShell \ profile.ps1
Este perfil se aplica sólo al usuario actual y la cáscara Microsoft.PowerShell.
% USERPROFILE% \ Mis documentos \ WindowsPowerShell \ Microsoft.PowerShell_profile.ps1
"Además, solo se carga el perfil de nivel de la máquina en $ pshome". ¿Ha cambiado esto en algún momento? Con Windows 8.1 y WIndoes Server 2012, Enter-PSSession no ejecuta ningún perfil de Powershell en la máquina de destino. –
@GreenstoneWalker - Estoy viendo esto también. Con un servidor Win 2008 R2/PS 3.0. – smaglio81
Si no desea depender de una versión o idioma de Windows específico, use: '[Environment] :: GetFolderPath ('MyDocuments')' – mtman
Jason, En mi caso, yo quería tener mi perfil Powershell sígame cuando Remoted en otro ordenador.
He creado una función de envoltura remota que toma un nombre de computadora, crea una sesión, carga su perfil en la sesión y usa enter-pssession.
Aquí es el código de abajo:
function Remote($computername){
if(!$Global:credential){
$Global:credential = Get-Credential
}
$session = New-PSSession -ComputerName $computername -Credential $credential
Invoke-Command -FilePath $profile -Session $session
Enter-PSSession -Session $session
}
Se podría modificar el parámetro de Invoke-Command -FilePath tomar cualquier archivo de su gusto.
- 1. Powershell 2.0 Remoting cargando .Net 4.0 dll
- 2. Move/backup Netbeans FTP profiles
- 3. .NET Remoting y HttpContext.Current
- 4. .Net Remoting vs. WCF
- 5. iOS get Configuration Profiles que están instalados
- 6. ¿Cómo puedo obtener 7za.exe para ejecutar a través de Powershell Remoting?
- 7. Remoting de Powershell: uso de cmdlets de módulo importados en una sesión remota
- 8. ¿WCF realmente reemplaza .NET Remoting?
- 9. Buena .Net Remoting Tutorial/Guía
- 10. C# Remoting - Cómo desactivar CustomErrors
- 11. ¿Está realmente desaprobado el .NET Remoting?
- 12. .NET Remoting, pasando objetos a los métodos
- 13. Obteniendo un error con .NET REMOTING C#
- 14. Trabajando con singletons en .Net Remoting
- 15. Flex - Remoting vs HTTPService - cuándo usar qué?
- 16. NET Remoting y MarshalByRefObject está realmente muerto?
- 17. Remoting desde una aplicación Swing al servidor GWT
- 18. Implementar PowerShell PSProvider * en * PowerShell
- 19. ¿Ejecutar scripts de PowerShell sin instalar PowerShell?
- 20. Powershell llamando al script de Powershell
- 21. Carpeta Ruta del archivo Powershell En Powershell
- 22. Powershell "join"
- 23. PowerShell ParameterBindingException
- 24. Atributos Powershell?
- 25. PowerShell App.Config
- 26. Powershell - Cómo cumplimentar/cerrar un archivo zip en powershell
- 27. ¿Cómo detectar la anidación de Powershell dentro de Powershell?
- 28. ¿Cómo puedo saber si otra aplicación ha registrado un canal de IPC Remoting?
- 29. ¿Qué causa la "violación del protocolo de canal Tcp esperando el preámbulo" en .NET Remoting?
- 30. Aumento de las solicitudes concurrentes en una aplicación .NET Remoting bajo IIS
¿alguna solución final con código fuente completo? – Kiquenet