Как сохранить информацию о диске поставщика Powershell?
В моем поставщике Powershell, который представляет собой слой бизнес-логики над базой данных SQL, диски Powershell соответствуют параметрам подключения к базе данных. Этот набор параметров подключения сохраняется в зашифрованном XML-файле на локальном компьютере. Администратор может добавить эти диски PS на компьютер, предоставив учетные данные SQL Server, которые другой пользователь Powershell может использовать при написании сценариев. Когда администратор запускает New-PSDrive, я добавляю диск в коллекцию и сохраняю его в XML. Когда они Remove-PSDrive, я удаляю диск из постоянного XML. Это отлично работает. Однако при выходе из узла Powershell он вызывает RemoveDrive() для каждого существующего диска. На данный момент я не хочу удалять диски, так как мне нужно, чтобы они сохранялись на компьютере.
Как определить, вызывается ли RemoveDrive() от пользователя, выполняющего вручную Remove-PSDrive, или от хоста, завершающего работу?
Кроме того, я создал пользовательские параметры информации о диске, которые хорошо работают, но я также написал собственный командлет, который используется для добавления и удаления дисков. Как я могу создать (и удалить) psdrives из моего командлета?
1 ответ
Вы можете использовать переопределение InitializeDefaultDrives для этого. Это означает, что вам потребуется постоянное хранилище строк подключения, чтобы вы могли создавать все соответствующие диски при инициализации провайдера. Вы должны иметь возможность переопределить виртуальный метод Stop, чтобы сохранить эту информацию.