作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在寻找实现 PowerShell 提供程序 在 电源外壳。
我一直在想,如果我只是定义类型,然后将它们导入我的 session (导入模块),我应该能够让它们可用。
例如,这个 不工作但它沿着我想要实现的路径。
我显然错过了很多......有人知道这是否可能吗?
# EnvironmentProvider.ps1
$reference_assemblies = (
"System.Management.Automation, Version=1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
# "System.Configuration.Install, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
)
$source = @"
namespace Providers
{
using System.Management.Automation;
using System.Management.Automation.Provider;
[CmdletProvider("Environments", ProviderCapabilities.None)]
public class EnvironmentProvider : DriveCmdletProvider
{
protected override PSDriveInfo NewDrive(PSDriveInfo drive)
{
return new EnvironmentDriveInfo(drive);
}
protected override object NewDriveDynamicParameters()
{
return base.NewDriveDynamicParameters();
}
}
public class EnvironmentDriveInfo : PSDriveInfo
{
public EnvironmentDriveInfo(PSDriveInfo driveInfo) : base(driveInfo)
{
}
}
}
"@
# -ea silentlycontinue in case its already loaded
#
add-type -referencedassemblies $referenced_assemblies -typedefinition $source -language CSharp -erroraction silentlycontinue
new-psdrive -psprovider Environments -name "Environments" -root ""
New-PSDrive : Cannot find a provider with the name 'Environments'.
c:\adminlib>import-module .\EnvironmentProvider.ps1
c:\adminlib>environments:
environments:>ls
dev
qa
staging
production
environments:> cd production
environments\production> [execute actions against production]
environments\production:> cd dev
environments\dev:> [execute actions against dev, etc]
最佳答案
我强烈建议你看看 Oisin 写的东西,怀疑像你这样的人,他们可以捕获它,这可能是非常好的引用。或者也许应该避免什么? ;)
您可以在 codeplex 上找到它:http://psprovider.codeplex.com/
关于powershell - 实现 PowerShell PSProvider *in* PowerShell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10709569/
我正在寻找实现 PowerShell 提供程序 在 电源外壳。 我一直在想,如果我只是定义类型,然后将它们导入我的 session (导入模块),我应该能够让它们可用。 例如,这个 不工作但它沿着我想
简而言之,有没有办法从 shell 中确定一个 PSProvider's 是否存在? path 有一个伴随变量,如果有,那个变量的名字是什么?列出了支持此表示法的内置 PowerShell 提供程序
我是一名优秀的程序员,十分优秀!