System.Management.Automation.PowerShell не возвращает результаты для Get-Website из IIS - PullRequest
0 голосов
/ 03 октября 2018

Мы используем System.Management.Automation.PowerShell для выполнения сценариев PowerShell.

Все работало нормально для многих сценариев, пока нам не нужно установить некоторые свойства веб-сайта в IIS (ServerAutostart и т. Д.).

Мы создали скрипт PS1, который работает, как мы и ожидали, однако после выполнения через C # он вылетает.После некоторого исследования я извлек проблемную часть:

Сценарий PS1:

# Set execution policy
Set-ExecutionPolicy Unrestricted -Scope Process -Force
Set-ExecutionPolicy Unrestricted -Scope LocalMachine -Force
Set-ExecutionPolicy Unrestricted -Scope CurrentUser -Force

# Import modules
Import-Module WebAdministration
Import-Module IISAdministration -MinimumVersion 1.1.0.0

# Getting IIS Sites
$iisSite = Get-IISSite

If ($iisSite)
{
    Write-Host "$($iisSite.Count) IISSites were found"
} 
else 
{
    Write-Error "IISSite was not found"
}

$webSite = Get-Website

# Getting Web Sites

If ($webSite)
{
    Write-Host "$($webSite.Count) WebSites were found"
} 
else 
{
    Write-Error "WebSites was not found"
} 

Если я запускаю его через Windows PowerShell ISE, он отлично работает:

23 IISSites were found
23 WebSites were found

Однако, если скрипт выполняется через C # и System.Management.Automation.PowerShell, он возвращает следующее:

23 IISSites were found
WebSites was not found

В чем разница?Почему Get-IISSite работает, а Get-Website нет?Права доступа?Недостающие модули?

Чтобы установить свойства WebSite, нам нужно работать с ним через Get-WebSite.К сожалению, это кажется концептуальной проблемой ...

Спасибо за вашу помощь ...

1 Ответ

0 голосов
/ 04 октября 2018

Проблема вызвана предпочтением 32-битного режима на вкладке Build в 64-битной системе.

Предпочтение 32-битному режиму

После снятия отметки все работает хорошо.

см. Метод Powershell Invoke не генерирует исключение и не возвращает результат

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...