Я новичок в написании сценариев Powershell, и я работаю над скриптом Powershell для управления пользователями, но у меня возникла странная ошибка.Импорт-PSSession сбой в скрипте, работает в оболочке
Следующий код работает, когда я запускаю его из командной строки, но не тогда, когда он запускается из сценария:
$UserCredential = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionURI http://servername/Powershell/ -Authentication Kerberos -Credential $UserCredential -AllowRedirection
Import-PSSession $Session
Когда я запускаю его в сценарии с Param()
блока на первой линии, то терпит неудачу со следующей ошибкой:
Import-PSSession: Cannot bind argument to parameter 'Path' becuase it is an empty string.
я могу получить Import-PSSession
работать, если я удалю свой Param()
блок, но я не уверен, как принимать аргументы командной строки для моего сценария иначе. Как я могу сохранить блок Param()
(или, вообще говоря, принять аргументы командной строки) и все еще иметь возможность импортировать сеанс PS?
Я использую Powershell v2 на сервере Windows 2008 R2, который пытается подключиться к серверу Exchange 2010.
Update:
У меня есть сценарий, названный ManageUser.ps1
, что я бегу из строки Powershell как
.\ManageUser.ps1 -disableUser -username someuser
Сценарий начинается так:
Param(
[switch]$disableUser,
[string]$username
)
$UserCredential = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionURI http://servername/Powershell/ -Authentication Kerberos -Credential $UserCredential -AllowRedirection
Import-PSSession $Session
#more stuff past here...
Он терпит неудачу на Import-PSSession
. Но, если я удалю весь Param(...)
, будет работать импорт сеанса. Надеюсь, этого достаточно, чтобы вы это поняли!
Вы хотите, чтобы люди устранить код, не показывая свой код? Как вы пишете блок 'param()'? Как вы называете сценарий? – TessellatingHeckler
@TessellatingHeckler Извините, я думал, что дал достаточно информации. Я обновил свой вопрос сейчас. Пожалуйста, дайте мне знать, если есть что-то еще, что было бы полезно знать! Благодарю. – Logan
Просто интересно, пытаетесь ли вы добавить параметр -AllowClobber в Import-PSSession? Возможно, есть некоторые настройки параметров по умолчанию, которые происходят в фоновом режиме Powershell? – SamuelWarren