Добрый день!
В PowerShell вы можете использовать класс `OpenFileDialog` или `SaveFileDialog` из пространства имен `System.Windows.Forms` для создания окна выбора файлов. В вашем случае, поскольку вы хотите указать место сохранения PST-файла, вам понадобится использовать `SaveFileDialog`. Вот пример кода, который показывает, как вызвать окно выбора файла и получить выбранный путь:
```powershell
# Загружаем необходимые сборки
Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing
# Создаем форму
$form = New-Object System.Windows.Forms.Form
$form.Text = "Выбор файла для сохранения"
$form.Size = New-Object System.Drawing.Size(400, 300)
# Создаем кнопку для открытия диалога сохранения
$btnSave = New-Object System.Windows.Forms.Button
$btnSave.Text = "Сохранить как..."
$btnSave.Location = New-Object System.Drawing.Point(150, 100)
$form.Controls.Add($btnSave)
# Обработка нажатия на кнопку
$btnSave.Add_Click({
$saveFileDialog = New-Object System.Windows.Forms.SaveFileDialog
$saveFileDialog.Filter = "PST files (*.pst)|*.pst|All files (*.*)|*.*"
$saveFileDialog.Title = "Выберите место для сохранения PST-файла"
# Если пользователь нажал OK в диалоге
if ($saveFileDialog.ShowDialog() -eq [System.Windows.Forms.DialogResult]::OK) {
$selectedPath = $saveFileDialog.FileName
[System.Windows.Forms.MessageBox]::Show("Выбранный путь: $selectedPath", "Информация", [System.Windows.Forms.MessageBoxButtons]::OK, [System.Windows.Forms.MessageBoxIcon]::Information)
# Здесь вы можете добавить код для работы с выбранным путем
}
})
# Отображаем форму
$form.Add_Shown({$form.Activate()})
[void] $form.ShowDialog()
```
### Объяснение кода:
1. **Загрузка необходимых сборок**: Здесь вы загружаете `System.Windows.Forms` и `System.Drawing`, чтобы использовать GUI-элементы.
2. **Создание формы**: Создается основная форма, на которой будет размещена кнопка.
3. **Создание кнопки**: Создается кнопка "Сохранить как...", по нажатию на которую открывается диалоговое окно выбора файла.
4. **Обработка нажатия на кнопку**: При нажатии на кнопку создается экземпляр `SaveFileDialog`, к которому можно установить фильтры для типов файлов (в данном случае только для файлов PST). После того, как пользователь выберет файл и нажмет "OK", путь к файлу сохраняется в переменной `$selectedPath` и показывается в сообщении.
5. **Отображение формы**: Форма отображается в диалоговом режиме.
С помощью этого кода вы сможете реализовать выбор пути для сохранения PST-файла в своем графическом интерфейсе PowerShell.