Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Запуск ps скрипта из bat скрита

Ответить
Настройки темы
CMD/BAT - Запуск ps скрипта из bat скрита

Старожил


Сообщения: 208
Благодарности: 5

Профиль | Отправить PM | Цитировать


Доброго времени суток.
Подскажите пожалуйста, как можно из bat файла, вызвать ps скрпит с повышенными привилегиями?
Вариант приведенный ниже, через runas не работает(
Если подскажите, как можно спрятать пароль, будет вообще замечательно.
Код: Выделить весь код
@echo off
set message=%~2

set posh=%SystemRoot%\System32\WindowsPowerShell\v1.0\PowerShell.exe -command ". 'C:\Scripts\test.ps1'"
set pass=p@$$w0rd

if "%message%"=="test" (
    echo %pass% | runas /user:domain\user %posh%
)

Отправлено: 15:07, 11-04-2016

 

Ветеран


Сообщения: 1758
Благодарности: 966

Профиль | Цитировать


pogo, Пароль можно вводить только в интерактивном режиме. runas не принимает параметров в виде пароля, в том числе через пайп.

Отправлено: 15:20, 11-04-2016 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Старожил


Сообщения: 208
Благодарности: 5

Профиль | Отправить PM | Цитировать


Foreigner,
Тогда это не подходит(( Интерактивный режим не подходит.
Есть ещё какие-то варианты?

Отправлено: 15:23, 11-04-2016 | #3


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата pogo:
Есть ещё какие-то варианты? »
Что мешает запускать пакетный файл с административными привилегиями (по ПКМ)?

Отправлено: 15:41, 11-04-2016 | #4


Старожил


Сообщения: 208
Благодарности: 5

Профиль | Отправить PM | Цитировать


Iska,
То что скрипт будет запускаться gsm модемом по смс.

Отправлено: 15:54, 11-04-2016 | #5


Ветеран


Сообщения: 1259
Благодарности: 861

Профиль | Отправить PM | Цитировать


Несколько вариантов:

1) Использовать psexec , где можно указать пароль и логин.

-u Specifies optional user name for login to remote
computer.
-p Specifies optional password for user name. If you omit this
you will be prompted to enter a hidden password.
-h If the target system is Vista or higher, has the process
run with the account's elevated token, if available.

2) Создать задачу в task scheduler и выполнить скрипт, лучший вариант
3) Пароль можно указать, но пользователю явно придеться нажать Да/Yes ,т.к. UAC не даст запустить, только отключение. Сохраняем скрипт и выполняем его, а из него будет уже вызваться основной:

Код: Выделить весь код
$pass = ConvertTo-SecureString 'P@$$w0rd1' -AsPlainText -Force 
$creds = New-Object System.Management.Automation.PSCredential ("domain\user", $pass)
$ScriptName = 'C:\Scripts\test.ps1'
$arg = "Start-Process powershell -Verb RunAs -ArgumentList '-ExecutionPolicy ByPass -File $ScriptName'"
Start-Process powershell -Credential $creds  -ArgumentList $arg
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:56, 11-04-2016 | #6


Старожил


Сообщения: 208
Благодарности: 5

Профиль | Отправить PM | Цитировать


Kazun,
Большое спасибо!
Тоже думал по поводу таска в планировщике, но почему то показалось что решение костыль, и есть лучше. Но что-то погуглив прихожу к мнению что это самый меньший костыль из имеющихся.

Дабы не разводить ещё тем, подскажите, в bat-скриптах, можно как-то скрыть пароль, аналогично posh? Когда пасс конвертируется в SecureString выгружается в файл и оттуда уже берется?
Вариант конечно тоже так себе по надежности, но хоть бы не в plaintext

Отправлено: 16:01, 11-04-2016 | #7


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


pogo, никак. А зачем Вам там пароль? Вы же его введёте один раз «ручками» в Диспетчере задач.

Отправлено: 16:09, 11-04-2016 | #8


Старожил


Сообщения: 208
Благодарности: 5

Профиль | Отправить PM | Цитировать


Iska,
Там всё намного костыльнее получается( в батнике запускается ещё один exe с указание login\pass для другого доступа.

Отправлено: 16:28, 11-04-2016 | #9


Забанен


Сообщения: 793
Благодарности: 260

Профиль | Цитировать


Цитата pogo:
Подскажите пожалуйста, как можно из bat файла, вызвать ps скрпит с повышенными привилегиями?
Эх, MVP'эшники, вечно все усложняют... pogo, сохраните код ниже как бат-файл и запустите.
Код: Выделить весь код
<# :
  @echo off
    setlocal
      set "self=%~f0" % rem : полный путь до командного сценария
      2>nul powershell /noprofile /executionpolicy bypass^
      "&{[ScriptBlock]::Create((gc '%self%') -join [Char]10).Invoke(@(&{$args}'%self%'))}"||(
        echo:PowerShell has not been found.
      )
    endlocal
  exit /b
#>

if (!(New-Object Security.Principal.WindowsPrincipal(
  [Security.Principal.WindowsIdentity]::GetCurrent()
)).IsInRole(
  [Security.Principal.WindowsBuiltInRole]::Administrator
)) {
  $proc = New-Object Diagnostics.Process
  $proc.StartInfo.FileName = $args[0]
  $proc.StartInfo.LoadUserProfile = $false
  $proc.StartInfo.Domain = [Environment]::UserDomainName
  $proc.StartInfo.UserName = $(Read-Host 'Имя пользователя')
  $proc.StartInfo.Password = $(Read-Host 'Пароль' -as)
  $proc.StartInfo.UseShellExecute = $false
  $proc.Start()
}
else {
  Write-Host Здесь мог бы быть Ваш код -for green
  Write-Host Нажмите любую клавишу для продолжения... -NoNewline
  $host.UI.RawUI.ReadKey('NoEcho, IncludeKeyDown') | Out-Null
  ''
}

Отправлено: 18:34, 11-04-2016 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Запуск ps скрипта из bat скрита

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBS/WSH/JS - Запуск скрипта при выходе из системы. datafile4 Скриптовые языки администрирования Windows 11 13-04-2014 23:43
Запуск скрипта из текущей директории lampich Программирование и базы данных 0 28-12-2012 23:56
2008 R2 - Запуск скрипта vbs из GP teleonomic Windows Server 2008/2008 R2 0 06-12-2011 11:32
VBS/WSH/JS - [решено] Как запустить bat'ник из скрипта напрямую? vivera864864 Скриптовые языки администрирования Windows 1 28-05-2011 14:26
FreeBSD - Запуск .sh скрипта из-под apache fantik Общий по FreeBSD 0 30-06-2009 10:28




 
Переход