如何保留Powershell提供商的驱动器信息?

时间:2009-08-11 17:59:35

标签: c# powershell cmdlet powershell-provider

在我的Powershell提供程序中,它是SQL数据库上的业务逻辑层,Powershell驱动器等同于数据库连接设置。此连接设置集合将持久保存到本地计算机上的加密XML文件中。管理员可以在计算机上添加这些PS驱动器,提供SQL Server凭据,另一个Powershell用户在编写脚本时可能会使用这些凭据。当管理员运行New-PSDrive时,我会在集合中添加一个驱动器并将其保存到XML。当他们删除-PSDrive时,我从持久性XML中删除驱动器。这很好用。但是,当Powershell主机退出时,它会为每个现有驱动器调用RemoveDrive()。此时我不想删除驱动器,因为我需要它们才能在计算机上保留。

如何确定是否从用户手动执行Remove-PSDrive或主机退出调用RemoveDrive()?

另外,我创建了自定义驱动器信息参数,但是我还编写了一个自定义cmdlet,用于添加和删除驱动器。如何从cmdlet创建(和删除)psdrives?

1 个答案:

答案 0 :(得分:0)

您可能希望使用InitializeDefaultDrives覆盖。这意味着您需要拥有连接字符串的持久存储,以便在提供程序初始化时创建所有适当的驱动器。您应该能够覆盖Stop虚方法以保存此信息。