По JonZ и x0n:
Когда вы используете pssessions со стандартными конфигурациями сеансов, сценарии профиля не запускаются.
При запуске удаленного интерактивного сеанса с Enter-PSSession
загружается удаленный профиль. Кроме того, загружается только профиль уровня машины в $pshome
.
Если вы хотите, чтобы сеанс был предварительно настроен (для загрузки пользовательских функций, оснасток, модулей и т. Д.), Добавьте скрипт профиля в новую sessionconfiguration (для инициализации их в скрипте запуска настройка удаленного сеанса).
Командлет Register-PSSessionConfiguration создает и регистрирует новую конфигурацию сеанса на локальном компьютере. Используйте Get-PSSessionConfiguration для просмотра существующих конфигураций сеанса. И Get-PSSessionConfiguration, и Register-PSSessionConfiguration требуют повышенных прав (запустите PowerShell с параметром «Запуск от имени администратора»).
На целевом компьютере, где profile.ps1
содержит все ваши функции:
Register-PSSessionConfiguration -Name WithProfile -StartupScript $PsHome\Profile.ps1
Чтобы использовать этот предварительно настроенный сеанс, вы должны набрать с локального компьютера:
Enter-PSSession -ComputerName $computername -ConfigurationName WithProfile
или
Enter-PSSession -ComputerName $computername -ConfigurationName WithProfile -Credential youradminuser@yourtargetdomain
(где $computername
- имя хоста удаленного сервера, на котором вы зарегистрировали конфигурацию pssession).
Хорошим источником информации о удаленном взаимодействии PowerShell является Руководство администратора для удаленного взаимодействия Powershell .
Ссылка:
Powershell Remoting: Использовать функции, загруженные в удаленный профиль Powershell?
http://jrich523.wordpress.com/2010/07/21/update-creating-a-profile-for-a-remote-session/
Общие сведения о профилях PowerShell и их использование
http://blogs.technet.com/b/heyscriptingguy/archive/2013/01/04/understanding-and-using-powershell-profiles.aspx
About_Profiles (Microsoft Docs)
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_profiles
Шесть различных путей профиля Windows PowerShell и использование
Текущий пользователь, текущий хост - консоль
$ Home [My] Документы \ WindowsPowerShell \ Profile.ps1
Текущий пользователь, все хосты
$ Домой [Мои] Документы \ Profile.ps1
Все пользователи, текущий хост - консоль
$ PsHome \ Microsoft.PowerShell_profile.ps1
Все пользователи, все хосты
$ PsHome \ Profile.ps1
Текущий пользователь, Текущий хост - ISE
$ Home [Мои] Документы \ WindowsPowerShell \ Microsoft.PowerShellISE_profile.ps1
Все пользователи, текущий хост - ISE
$ PsHome \ Microsoft.PowerShellISE_profile.ps1
Профили Windows PowerShell
http://msdn.microsoft.com/en-us/library/bb613488%28VS.85%29.aspx
Этот профиль применим ко всем пользователям и всем оболочкам.
% windir% \ system32 \ WindowsPowerShell \ v1.0 \ profile.ps1
Этот профиль применим ко всем пользователям, но только для оболочки Microsoft.PowerShell.
% windir% \ system32 \ WindowsPowerShell \ v1.0 \ Microsoft.PowerShell_profile.ps1
Этот профиль применяется только к текущему пользователю, но влияет на все оболочки.
% UserProfile% \ Мои документы \ WindowsPowerShell \ profile.ps1
Этот профиль применяется только к текущему пользователю и оболочке Microsoft.PowerShell.
% UserProfile% \ Мои документы \ WindowsPowerShell \ Microsoft.PowerShell_profile.ps1
Профили ядра PowerShell
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_profiles
Этот профиль применим ко всем пользователям и всем хостам.
$ env: ProgramFiles \ PowerShell \ 6 \ profile.ps1
Этот профиль применяется ко всем пользователям, но только для текущего хоста.
$ env: ProgramFiles \ PowerShell \ 6 \ Microsoft.PowerShell_profile.ps1
Этот профиль применяется только к текущему пользователю, но влияет на все хосты.
$ env: USERPROFILE \ Documents \ PowerShell \ profile.ps1
Этот профиль применяется только к текущему пользователю и оболочке Microsoft.PowerShell.
$ env: USERPROFILE \ Documents \ PowerShell \ Microsoft.PowerShell_profile.ps1