Отобразите подсказку меню и сохраните описание выбора пользователя в качестве переменной в сценарии powershell - PullRequest
0 голосов
/ 24 сентября 2018

К сожалению, не так много, как у Пауэршелла.Чтобы добиться следующего:

Prompt the user with a list of choices: 
1 - gaming
2 - Home Ent
3 - Theatrical
4 - TV and Streaming
5 - VR

Затем, учитывая ответ пользователя (1-5), он сохраняет тип как переменную (т. Е. Если они выбрали 3, то переменная ($ projectType) сохраняетсякак ChoiceDescription для «Theatrical».

Остальная часть сценария создает группы AD, структуру каталогов и устанавливает разрешения. Эта часть я выяснила, но подсказка меню намекает на меня.

Возился с PromptForChoice, но с треском провалился.

Заранее спасибо

РЕДАКТИРОВАТЬ: по совету Васила я знаю, что есть:

Function Get-ProjectType {
    $type=Read-Host "
    1 - gaming
    2 - Home Ent
    3 - Theatrical
    4 - TV and Streaming
    5 - VR
    Please choose Project Type"
    Switch ($type){
        1 {$projectType="Gaming"}
        2 {$projectType="Home Entertainment"}
        3 {$projectType="Theatrical"}
        4 {$projectType="TV & Streaming"}
        5 {$projectType="VR"}
    }
    return $projectType
}

#import the ActiveDirectory Module and define the parent folder path

Import-Module ActiveDirectory
$path = "\\calamedia\edit\$ProjectType"
 $newProjectName = Read-Host -Prompt "Enter Name of Project"
 $newFolderFull = $path + $newProjectName
 Write-Output "New Folder will be: $NewProjectName"
 $confirm = Read-Host "Confirm? Y/N"
 If(($confirm) -ne "y")
 {
     # End
 }
 Else
 {}

 Write-Output "Create AD Groups"
$groupnameRW = "Shared.$newProjectName.RW"
$groupnameR = "Shared.$newProjectName.R"
New-AdGroup $groupNameRW -samAccountName $groupNameRW -GroupScope DomainLocal -path "OU=Projects,OU=Managed Groups,DC=createadvertising,DC=com"
New-AdGroup $groupNameR -samAccountName $groupNameR -GroupScope DomainLocal -path "OU=Projects,OU=Managed Groups,DC=createadvertising,DC=com"

# add the folder itself and remove inherited permissions

Write-Output "Add Folder.."
New-Item $newProjectName -ItemType Directory
Write-Output "Remove Inheritance.."
icacls $newFolderFull /inheritance:d

Однакотеперь кажется, что он сразу переходит к подсказке «Введите имя проекта:» позже в скрипте и ничего не отображает для функции?

1 Ответ

0 голосов
/ 24 сентября 2018

Обновление

Теперь я вижу ваш код, я изменил пример кода таким образом, чтобы вы могли его применить.

Вы можете использовать Read-Host для размещения текста и Switchчтобы получить переменную выбора.

Function Get-ProjectType {
    $type=Read-Host "
    1 - gaming
    2 - Home Ent
    3 - Theatrical
    4 - TV and Streaming
    5 - VR
    Please choose"
    Switch ($type){
        1 {$choice="Gaming"}
        2 {$choice="Home Entertainment"}
        3 {$choice="Theatrical"}
        4 {$choice="TV & Streaming"}
        5 {$choice="VR"}
    }
    return $choice
}

$projectType=Get-ProjectType

А теперь $projectType содержит имя выбора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...