Сценарий Powershell для входа в контрольную точку режима Expert с компьютера Windows - PullRequest
1 голос
/ 12 марта 2019

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

Import-Module SshShell
#!/usr/bin/expect
$IP = Read-Host -Prompt 'Enter the device ip address='
$username = Read-Host -Prompt 'Username='
$password = Read-Host -Prompt 'Please enter $username password='
$elevatedPrompt = "#"
$filepath ="C:\"
$filename ="_HC_"
$outfile = $filepath+$IP+$filename+$ext
$s = New-SshSession -SshHost $IP -User $username -Password $password
$expertp = Read-Host -Prompt "Please enter Expert password"
Send-SshCommand $s "expert" 
Send-SshCommand $s -Command $expertp -Expect $elevatedPrompt 
Send-SshCommand $s "date" | Out-File $outfile -Append
Send-SshCommand $s "uptime" | Out-File $outfile -Append
Close-SshSession $s

Проблема в том, что я не мог попасть в подсказку «expert», когда я запускаю этот скрипт, получаю следующий результат. (предположим, что "abcdefg" является значением $ expertp)

fw1> expert
Enter expert password:
Wrong password. 
fw1> 
Send-SshCommand : Result not match expected pattern '#'.
Command result:
fw1> abcdefg                                       
CLINFR0329  Invalid command:'abcdefg'.
fw1> 
fw1> 
At line:21 char:1
+ Send-SshCommand $s -Command $expert -Expect $elevatedPrompt
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidResult: (C60.SshShellPow....SendSshCommand:SendSshCommand) [Send-SshCommand], Exception
    + FullyQualifiedErrorId : -2,C60.SshShellPowerShellModule.Cmdlets.SendSshCommand
 C:\windows\system32>

Поскольку тот же сценарий я использую для Bluecoat Proxy, и он просто работает нормально (вместо «эксперта» используйте команду «enable», чтобы войти в режим включения в Bluecoat). Результат при использовании для прокси будет следующим:

prox01>enable
Enable Password:
Enable Password:
prox01#

Подвох здесь в том, что скрипт пытается войти в режим «включения» прокси-сервера на него со второй попытки (как показано в журналах выше), однако в контрольной точке «эксперт» работает очень быстро, и его запрашивают только один раз, и если предоставленный пароль был неправильный, он не сработает для второго запроса, если не будет повторно введена команда «expert». Но в bluecoat, таком как Cisco, он будет трижды запрашивать друг друга при вводе неверных учетных данных.

У меня есть требование использовать наши индивидуальные учетные данные пользователя (для подотчетности) для регистрации брандмауэра контрольных точек (который будет работать только в режиме клиша!), Чтобы позже войти в экспертный режим и мне нужно выполнить команды проверки работоспособности контрольной точки.

Я знаю, что изменение пользовательской привилегии для входа в меня напрямую в экспертный режим командой: "chsh -s / bin / bash username", однако это не будет отвечать моим требованиям здесь из-за подотчетности. Я очень стараюсь, чтобы мой скрипт работал, что помогает мне использовать один и тот же скрипт для прокси и брандмауэра, работающего на Windows-машине.

...