PHP и выполнение команд модуля Powershell ConfigMgr

У меня есть сценарий PowerShell, чтобы получить все компьютеры из коллекции ConfigMgr 2012R2. Скрипт работает от ISE и Shell:

Import-Module (Join-Path (Split-Path $env:SMS_ADMIN_UI_PATH) ConfigurationManager.psd1)
cd "S01:\"$all = Get-CMDevice -CollectionName "All Systems"foreach ($entry in $all) {
write-host $entry.Name
}

Как только я пытаюсь запустить скрипт с сайта, основанного на PHP, ничего не происходит, и массив Output остается пустым. Мне кажется, что модуль загружен без проблем — потому что, если я изменю скрипт на:

$all = Get-Command -Module ConfigurationManager

он помещает все доступные команды в массив php, который затем возвращается на мой сайт.

К сожалению, Get-Command не требует переключения пути выполнения на сайт ConfigMgr, и поэтому я думаю, что это общая проблема. Если я изменяю скрипт на что-то, что печатает текущее местоположение (get-location), он показывает мне родительский каталог скрипта PowerShell, а не сайт, который я пытался изменить, используя cd «S01: \»

Кто-нибудь, кто выяснил те же проблемы, или я что-то забыл?

0

Решение

На всякий случай, если кто-то сталкивается с подобными проблемами: используйте «предпочтение ошибок» powershells для принудительного прерывания сценария при ошибках и используйте «$ _» для распечатки описания ошибки последнего элемента errostack (в php вы должны использовать print_r для выхода функции exec).

После этого он даст важные советы. В моем случае это привело меня к простому «отказу в доступе», который произошел, потому что я забыл предоставить соответствующие SCCM-разрешения учетной записи, с которой работал мой веб-сервис.

Надеюсь, поможет.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]