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