none
Конфигурации PowerShell RRS feed

  • Вопрос

  • Добрый день! 

    есть необходимость создавать новую сесию с предзаданой конфигурацией

    New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri "http://D12-EX2010MAIL/PowerShell/" -Authentication Kerberos

    и есть необходимость использовать convertto-pssecurestring в перделах сессии

    подскажите пожалуйста как решить такую беду?
    24 декабря 2012 г. 14:20

Ответы

  • $test = ConvertTo-SecureString 'da1800' -Force -AsPlainText
    Invoke-Command -Session $s {param($test) new-mailbox -password $test} -Arg $test

    • Помечено в качестве ответа GrayscaleRu 25 декабря 2012 г. 15:03
    25 декабря 2012 г. 11:45
    Отвечающий
  • я не могу выполнить команду ругается на select term, я так понимаю что команду нужно как-то изменить чтоб селект был вне удаленной сессии, но при селекте у меня выполняется команда, которую я должен выполнять в пределах сессии (Get-MailPublicFolder), подскажите как такое реализовать ? чтоб  Get-PublicFolder и Get-MailPublicFolder выполнялись в удаленной сессии  а форматирование вынести за ее пределы?

    Попробовать так:

    $s = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri "http://D12-EX2010MAIL/PowerShell/" -Auhentication Kerberos
    Import-PSSession -Session $s -CommandName Get-PublicFolder,Get-MailPublicFolder
    Get-PublicFolder -Identity "\" -GetChildren -ResultSize unlimited | 
    	select Name,  @{Name='DistinguishedName';Expression={ if ($_.MailEnabled) {(Get-MailPublicFolder -Identity $_.Identity).DistinguishedName}}}


    • Изменено KazunEditor 18 января 2013 г. 11:12
    • Помечено в качестве ответа GrayscaleRu 18 января 2013 г. 11:51
    18 января 2013 г. 10:54
    Отвечающий
  • Все таки не подошло, но разобрался и решил так

    Invoke-Command { Get-PublicFolder -Identity "\" -GetChildren -ResultSize unlimited } -Session (Get-PSSession | where-object {$_.ComputerName -eq 'D12-EX2010MAIL'}) | select Name, MailEnabled, Identity, HasSubFolders, @{Name='DistinguishedName';Expression={ if ($_.MailEnabled) {(Invoke-Command { Get-MailPublicFolder -Identity $Args[0].Identity } -Session (Get-PSSession | where-object {$_.ComputerName -eq 'D12-EX2010MAIL'}) -arg $_).DistinguishedName}}}

    • Помечено в качестве ответа GrayscaleRu 18 января 2013 г. 13:46
    18 января 2013 г. 13:46

Все ответы

  • Добрый день! 

    есть необходимость создавать новую сесию с предзаданой конфигурацией

    New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri "http://D12-EX2010MAIL/PowerShell/" -Authentication Kerberos

    и есть необходимость использовать convertto-pssecurestring в перделах сессии

    подскажите пожалуйста как решить такую беду?

    В чем конкретно проблема?
    24 декабря 2012 г. 14:28
    Отвечающий
  • Проблема в невозможности вызова стандартных CMDlet'ов при заданой конфигурации

    PS D:\Documents and Settings\daxpadmin> New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri "http://D12-E
    X2010MAIL/PowerShell/" -Authentication Kerberos

    Id Name ComputerName State ConfigurationName Availability
    -- ---- ------------ ----- ----------------- ------------
    1 Session1 d12-ex2010mail Opened Microsoft.Exchange Available


    PS D:\Documents and Settings\daxpadmin> Invoke-Command { Get-Date } -Session (Get-PSSession | where-object {$_.ComputerN
    ame -eq 'D12-EX2010MAIL'})
    The term 'Get-Date' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the sp
    elling of the name, or if a path was included, verify that the path is correct and try again.
    + CategoryInfo : ObjectNotFound: (Get-Date:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

    при этом конфигурацию задавать обязательно, иначе Exchange не работает как надо

    24 декабря 2012 г. 14:35
  • 24 декабря 2012 г. 15:41
    Отвечающий
  • неа( nothing changes

    сайт ребутил
    • Изменено GrayscaleRu 24 декабря 2012 г. 15:52
    24 декабря 2012 г. 15:51
  • неа( nothing changes

    сайт ребутил

    Здесь http://blogs.microsoft.co.il/blogs/scriptfanatic/image_4B353487.png настройки изменились? Или попробоввать создать новую конфигурацию,как в статье - Get Full Control over your Exchange remote PowerShell session
    24 декабря 2012 г. 16:16
    Отвечающий
  • Да настройки изменились, но, все таки, проблема не в language restrictions, а в том, что в конфигурации microsoft.exchange повидимому отсутствуют описания Get-Date, convertto-pssecurestring и т. п. сейчас пробую найти как подгрузить несколько конфигураций, либо как их просмотреть и сравнить.. Спасибо! Все так же нуждаюсь в помощи :)
    25 декабря 2012 г. 8:53
  • Да настройки изменились, но, все таки, проблема не в language restrictions, а в том, что в конфигурации microsoft.exchange повидимому отсутствуют описания Get-Date, convertto-pssecurestring и т. п. сейчас пробую найти как подгрузить несколько конфигураций, либо как их просмотреть и сравнить.. Спасибо! Все так же нуждаюсь в помощи :)

    Вывод - Invoke-Command -Session $s {$host.Runspace.SessionStateProxy.LanguageMode}
    25 декабря 2012 г. 9:16
    Отвечающий
  • Вывод пуст..
    25 декабря 2012 г. 9:30
  • Вывод пуст..

    Тогда,как вариант:

    1) Импортировать сессию в текущий сеанс и работать локально

    2) Использовать локальные переменные и передавать их в удаленный сеанс

    25 декабря 2012 г. 11:18
    Отвечающий
  • а можно пример второго? 

    как правильно передать переменную?

    $test = convertto-pssecurestring -string 'da1800'
    Invoke-command {new-mailbox - password $test } -session ...

    25 декабря 2012 г. 11:36
  • $test = ConvertTo-SecureString 'da1800' -Force -AsPlainText
    Invoke-Command -Session $s {param($test) new-mailbox -password $test} -Arg $test

    • Помечено в качестве ответа GrayscaleRu 25 декабря 2012 г. 15:03
    25 декабря 2012 г. 11:45
    Отвечающий
  • Спасибо! буду пробовать
    25 декабря 2012 г. 11:46
  • Все так. Спасибо! Очень помогли :)
    25 декабря 2012 г. 15:04
  • Еще раз добрый день, не стану создавать отдельную ветку. Проблемма та же но порядок куда круче :(

    есть команда:

    Invoke-Command { Get-PublicFolder -Identity "\" -GetChildren -ResultSize unlimited | select Name,  @{Name='DistinguishedName';Expression={ if ($_.MailEnabled) {(Get-MailPublicFolder -Identity $_.Identity).DistinguishedName}}} } -Session (Get-PSSession | where-object {$_.ComputerName -eq 'D12-EX2010MAIL'})

    Сессия была создана следующим образом 

    New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri "http://D12-EX2010MAIL/PowerShell/" -Authentication Kerberos

    Мне обязательно нужно получить в вывод с DistinguishedName (в дальнейшем используется в автоматизации), в то время как от форматирования по select можно отказаться, но желательно сохранить  для  минимизации нагрузки на сеть.
    подскажите пожалуйста как такое провернуть?

    18 января 2013 г. 9:30
  • Вопрос в чем конкретно?

    18 января 2013 г. 9:43
    Отвечающий
  • я не могу выполнить команду ругается на select term, я так понимаю что команду нужно как-то изменить чтоб селект был вне удаленной сессии, но при селекте у меня выполняется команда, которую я должен выполнять в пределах сессии (Get-MailPublicFolder), подскажите как такое реализовать ? чтоб  Get-PublicFolder и Get-MailPublicFolder выполнялись в удаленной сессии  а форматирование вынести за ее пределы?
    18 января 2013 г. 10:46
  • я не могу выполнить команду ругается на select term, я так понимаю что команду нужно как-то изменить чтоб селект был вне удаленной сессии, но при селекте у меня выполняется команда, которую я должен выполнять в пределах сессии (Get-MailPublicFolder), подскажите как такое реализовать ? чтоб  Get-PublicFolder и Get-MailPublicFolder выполнялись в удаленной сессии  а форматирование вынести за ее пределы?

    Попробовать так:

    $s = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri "http://D12-EX2010MAIL/PowerShell/" -Auhentication Kerberos
    Import-PSSession -Session $s -CommandName Get-PublicFolder,Get-MailPublicFolder
    Get-PublicFolder -Identity "\" -GetChildren -ResultSize unlimited | 
    	select Name,  @{Name='DistinguishedName';Expression={ if ($_.MailEnabled) {(Get-MailPublicFolder -Identity $_.Identity).DistinguishedName}}}


    • Изменено KazunEditor 18 января 2013 г. 11:12
    • Помечено в качестве ответа GrayscaleRu 18 января 2013 г. 11:51
    18 января 2013 г. 10:54
    Отвечающий
  • я не могу выполнить команду ругается на select term, я так понимаю что команду нужно как-то изменить чтоб селект был вне удаленной сессии, но при селекте у меня выполняется команда, которую я должен выполнять в пределах сессии (Get-MailPublicFolder), подскажите как такое реализовать ? чтоб  Get-PublicFolder и Get-MailPublicFolder выполнялись в удаленной сессии  а форматирование вынести за ее пределы?

    Попробовать так:

    $s = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri "http://D12-EX2010MAIL/PowerShell/" -Auhentication Kerberos
    Import-PSSession -Session $s -CommandName Get-PublicFolder,Get-MailPublicFolder
    Get-PublicFolder -Identity "\" -GetChildren -ResultSize unlimited | 
    	select Name,  @{Name='DistinguishedName';Expression={ if ($_.MailEnabled) {(Get-MailPublicFolder -Identity $_.Identity).DistinguishedName}}}


    Все успешно отработало! Спасибо, но...

    можно без импорта сессии? сессия используется многои  поразному и тюнить ее крайне не желательно..

    • Изменено GrayscaleRu 18 января 2013 г. 11:30
    • Помечено в качестве ответа GrayscaleRu 18 января 2013 г. 11:50
    • Снята пометка об ответе GrayscaleRu 18 января 2013 г. 11:50
    18 января 2013 г. 11:20
  • ой! а мне подойдет просто import-pssession $s в общем случае.. последний вопрос снимается... спасибо за помощь!
    18 января 2013 г. 11:50
  • Все таки не подошло, но разобрался и решил так

    Invoke-Command { Get-PublicFolder -Identity "\" -GetChildren -ResultSize unlimited } -Session (Get-PSSession | where-object {$_.ComputerName -eq 'D12-EX2010MAIL'}) | select Name, MailEnabled, Identity, HasSubFolders, @{Name='DistinguishedName';Expression={ if ($_.MailEnabled) {(Invoke-Command { Get-MailPublicFolder -Identity $Args[0].Identity } -Session (Get-PSSession | where-object {$_.ComputerName -eq 'D12-EX2010MAIL'}) -arg $_).DistinguishedName}}}

    • Помечено в качестве ответа GrayscaleRu 18 января 2013 г. 13:46
    18 января 2013 г. 13:46