Я предполагал, что просто помещу следующее в файл с именем filename.ps1 и запущу его так:
powershell.exe -noexit 'filename.ps1'
Он работает, но ничего не делает.
Внутри filename.ps1 у меня есть две строки:
Import-Module ServerManager
Add-WindowsFeature RDS-RD-Server -restart
Что я упускаю или делаю не так?
Для политики выполнения задано значение RemoteSigned. и отдельные команды работают внутри PS без сценария.
Команда, которую я использовал: powershell.exe -noexit 'filename.ps1' Она требует только одинарных> кавычек, если в пути к имени файла есть пробел. Я удалил одинарные кавычки, и по какой-то причине это сработало. Я не совсем понимаю, почему это сработало ...
Помещая кавычки, ваш вывод возвращает только цитируемый текст. Если ваша команда выглядела так:
powershell.exe -noexit & 'filename.ps1'
он выполнит сценарий, потому что у него есть оператор вызова (&)
Есть ли способ запустить команду powershell.exe в пакетном файле от имени администратора? Если мне нужно щелкнуть правой кнопкой мыши и запустить от имени администратора, это побеждает> цель массовой автоматизации.
Запуск командного файла, который запускает сценарий, кажется интуитивно противоречивым ... На какой мощности вы пытаетесь запустить сценарий?
@Sephethus - это ответ на вопрос в ваших комментариях, а не на опубликованный вопрос (пока у вас недостаточно репутации, чтобы прокомментировать этот обмен)
«Есть ли способ запустить команду powershell.exe в пакетном файле от имени администратора? Это противоречит цели массовой автоматизации, если мне придется щелкнуть ее правой кнопкой мыши и запустить от имени администратора. - Сефетус вчера»
Да - если вы вызываете команду удаленно на списке серверов, она запускает команду от имени администратора, потому что только локальные администраторы имеют разрешения (по умолчанию) для удаленного вызова команд с помощью PowerShell.
Дайте мне знать, если вам нужен образец кода.