首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PowerShell:如何以编程方式从SnapIn安装驱动器

PowerShell:如何以编程方式从SnapIn安装驱动器
EN

Stack Overflow用户
提问于 2019-03-04 00:08:40
回答 2查看 0关注 0票数 0

我在C#中创建了一套自定义cmdlet和提供程序。我还有一个PowerShell SnapIn,负责注册cmdlet和提供程序。我已导出控制台会话,以便我可以使用-PSConsoleFile参数启动PowerShell以自动加载我的快照。

每当我使用快照运行PS时,我也想安装一个驱动器。实际上,我希望在PS会话开始时运行以下命令:

new-psdrive -name [drivename] -psprovider FileSystem -root [本地文件系统上文件夹的路径]

我已经尝试将上面的命令放在.ps1文件中并使用-command和.ps1文件的路径启动PS,同时指定-NoExit标志。该脚本确实运行,但驱动器未在后续会话中映射。

是否有一种简单的方法可以快速创建新的psdrive?我还研究了从FileSystemProvider派生但它是密封的。我考虑以编程方式运行NewPSDriveCommand,但似乎不支持。

我错过了一些简单的东西吗?

谢谢!

编辑:我忘了提到我不想使用配置文件来尽可能地完成此操作。我想将此快照分发给其他人,我宁愿他们不必编辑他们的配置文件以使一切工作。

EN

回答 2

Stack Overflow用户

发布于 2019-03-04 08:32:14

您可以在snapin中创建一个PSDrive。有一种方法可以覆盖InitializeDefaultDrives作为提供程序的一部分。

例:

代码语言:javascript
复制
protected override Collection<PSDriveInfo> InitializeDefaultDrives()
        {
            Collection<PSDriveInfo> drives = new Collection<PSDriveInfo>();

            drives.Add(new PSDriveInfo(
                "YourDriveName",
                ProviderInfo,
                "YourDriveRoot",
                "Description of Your Drive",
                null));

            return drives;
        }

重新阅读之后的问题和评论:您可能能够从Microsoft.PowerShell.Core命名空间获取对文件系统providerinfo对象的引用...我还没有测试过,但是...

PowerShell的FileSystem提供程序信息是:

代码语言:javascript
复制
PS C:\scripts\PowerShell> Get-PSProvider filesystem | fl *


ImplementingType : Microsoft.PowerShell.Commands.FileSystemProvider
HelpFile         : System.Management.Automation.dll-Help.xml
Name             : FileSystem
PSSnapIn         : Microsoft.PowerShell.Core
ModuleName       : Microsoft.PowerShell.Core
Module           :
Description      :
Capabilities     : Filter, ShouldProcess
Home             : H:\
Drives           : {C, A, D, H...}
票数 0
EN

Stack Overflow用户

发布于 2019-03-04 09:41:34

您可以尝试将语句添加到Powershell全局或环境配置文件中。两者都位于%username%\ My Documents \ WindowsPowerShell。您的全局配置文件名为profile.ps1,并且为每个shell命名了您的环境配置文件(默认的Powershell环境为Microsoft.PowerShell_profile.ps1)。

我在profile.ps1文件中有几个new-psdrive语句。这种方法的缺点是等待Powershell连接所有这些PSDrives,如果它们在慢速服务器上。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100000983

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档