powerShell6

advertisement
Основы безопасности
• Расширение файла .ps1, используемое для
идентификации сценариев Windows PowerShell
регистрируется в Microsoft Windows® как
невыполнимый тип файла .
• Оболочка не ищет скриптовые файлы в текущем
каталоге.
• Внутри оболочки есть скрипт под названием Execution
Policy, который определяет перечень разрешенных
сценариев. По умолчанию разрешенные сценарии
отсутствуют.
Не стоит менять конфигурацию настроек безопасности
оболочки до тех пор, пока вы не будете отдавать себе
полный отчет о возможных последствиях.
Политики исполнения
• Всего существует пять настроек политики выполнения:

Restricted: сценарии не выполняются, за исключением
некоторых скриптов с цифровой подписью от Microsoft

RemoteSigned: Разрешено выполнение, но удаленные
скрипты должны быть подписаны

AllSigned: Разрешено выполнение, все скрипты должны
быть подписаны

Unrestricted: Разрешено выполнение любых скриптов

Bypass: Полностью обходят политику безопасности
• Три метода изменить политику:

Group Policy

Administrators: командлет Set-ExecutionPolicy

Users: используя параметр powershell.exe
Доверенные скрипты
• Доверенный скрипт – подписанный цифровым
сертификатом, которому доверяет Ваш компьютер

Требует Certification Authority

Требует digital certificate

Требует Цепочки доверия к доверенному СА

Политики RemoteSigned или AllSigned
<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!-<!--
SIG # Begin signature block -->
MIIXXAYJKoZIhvcNAQcCoIIXTTCCF0kCAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB -->
gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR -->
AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUVjLbCjAz9Hb6bPt9NeoVABfG -->
fvKgghIxMIIEYDCCA0ygAwIBAgIKLqsR3FD/XJ3LwDAJBgUrDgMCHQUAMHAxKzAp -->
BgNVBAsTIkNvcHlyaWdodCAoYykgMTk5NyBNaWNyb3NvZnQgQ29ycC4xHjAcBgNV -->
BAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEhMB8GA1UEAxMYTWljcm9zb2Z0IFJv -->
b3QgQXV0aG9yaXR5MB4XDTA3MDgyMjIyMzEwMloXDTEyMDgyNTA3MDAwMFoweTEL -->
MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v -->
bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEjMCEGA1UEAxMaTWlj -->
cm9zb2Z0IENvZGUgU2lnbmluZyBQQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw -->
ggEKAoIBAQC3eX3WXbNFOag0rDHa+SU1SXfA+x+ex0Vx79FG6NSMw2tMUmL0mQLD -->
TdhJbC8kPmW/ziO3C0i3f3XdRb2qjw5QxSUr8qDnDSMf0UEk+mKZzxlFpZNKH5nN -->
sy8iw0otfG/ZFR47jDkQOd29KfRmOy0BMv/+J0imtWwBh5z7urJjf4L5XKCBhIWO -->
sPK4lKPPOKZQhRcnh07dMPYAPfTG+T2BvobtbDmnLjT2tC6vCn1ikXhmnJhzDYav -->
8sTzILlPEo1jyyzZMkUZ7rtKljtQUxjOZlF5qq2HyFY+n4JQiG4FsTXBeyS9UmY9 -->
Using Parameters
• Параметризованные скрипты могут иметь позиционные
и именованные параметры

Этот блок:

Может быть исполнен

Or using this ./myscript
command line
with named
parameters:
'localhost'
'Administrator'
Param (
$computerName,
$userName
)
./myscript –computerName 'localhost' –userName 'Administrator'
Запрос параметра у пользователя
• FИногда вам может потребоваться запрос данных у
пользователя, в случае, если вам не хватает значений
некоторых параметров. Для решения этой задачи
используется командлет Read-Host. Например, чтобы
запросить у пользователя параметр, значение которого
у вас отсутствует, используйте Read-Host как часть
значения по умолчанию:
Param (
$computerName = $(Read-Host 'Enter computer name'),
$userName = $(Read-Host 'Enter user name')
)
Download