Один мой старый товарищ говорил: «Любой вопрос глуп. Глупый - не спрашивать»
Я новичок в системном администраторе Windows (всего 3/4 месяца), а недавно я начал работать над PowerShell 2.0.
Я администрирую набор служб Windows, одна из них попытается выполнить команду «Start-Service» как часть сценария PowerShell. Эта служба Windows работает под учетной записью домена «ATG \ Boot» как часть группы администраторов.
Но Start-Service / Stop-Service всегда не работает по этой причине:
Stop-Service: Служба «Службы отчетов SQL Server (MSSQLSERVER) (ReportServer)» не может быть остановлена из-за следующей ошибки: не удается открыть службу ReportServer на компьютере ». В строке: 1 символ: 13 + Stop-Service <<<< Отчет + CategoryInfo: CloseError: (System.ServiceProcess.ServiceController: ServiceController) [Stop-Service],
ServiceCommandException + FullyQualifiedErrorId: CouldNotStopService, Microsoft.PowerShell.Commands.StopServiceCommand
Эта ошибка воспроизводится, когда я запускаю сценарий из оболочки, но работает правильно, когда я запускаю сценарий с опцией «Запуск от имени администратора».
Я хотел бы посочувствовать, что пользователь входит в группу локальных администраторов.
Любые идеи?
Включен ли UAC? Вероятно, вам придется заставить скрипт поднять себя. Это, вероятно, означает, что ваш скрипт отобразит приглашение UAC.
Это был первый поисковый запрос по запросу powershell uac.
Вот сценарий, который я использую для остановки службы SQL Server. При использовании start-process с переключателем -runas отдельный процесс PowerShell будет запущен от имени администратора. Вам будет предложено ввести UAC.
Start-Process powershell.exe -argumentlist '-noprofile -command get-service -Name "MSSQL`$R2" | ? {$_.Status -eq "Running"} | Stop-Service -Force' -verb runas
У меня есть запись в блоге на эту тему.