我只是在阅读一些powershell脚本,我发现其中有些是这样写的:$ExecutionContext.InvokeCommand.GetCommand
或[System.Management.Automation.CommandTypes]::Cmdlet)
或[System.Reflection.Assembly]::ReflectionOnlyLoadFrom($_.FullName)
我的意思是我在哪里可以找到他们?在Microsoft上是否有任何页面列出了它们中的每一个及其正确含义?谢谢
答案 0 :(得分:5)
您搜索了什么?
所有文档都可以在线获得,做您所看到的事情是很平常的事情。所以,只要您看到此用例...
[System.
...这是为了满足目标而调用Windows .Net库。所有这些都在MSDN和.Net文档站点上进行了介绍。
'powershell using .net classes'
示例退货
PowerShell: How to Create and Use Classes
PowerShell可以使用以下命令创建.Net Framework类 Add-Type Jump cmdlet。要创建类,可以使用C#语言 用于定义类。 C#是Visual Studio的一部分,但具有 Visual Studio不需要创建用于以下用途的类 电源外壳。 C#类定义可以是PowerShell的一部分 脚本文件。无需担心安装任何DLL文件。
$PeopleDefinition=@"
using System;
using System.Collections;
using System.Collections.Generic;
namespace People
{
public enum Gender
{
Unknown,
Male,
Female
}
public class Person {}
public class Persons {}
public class People {}
public static class Factory {}
}
"@
Add-Type -TypeDefinition $PeopleDefinition
Remove-Variable PeopleDefinition
$People = [People.Factory]::BuildPeople()
$Person = $People["Person"]
'powershell using .net namespace'
示例返回:
Discover the Dot NET Namespace and WMI Class-Powershell
.NET命名空间-Powershell
此Blog中的所有脚本都是使用.NET命名空间编写的,因此我们没有 模块依赖性。
如今,Powershell中提供了许多模块。对于 我们的日常操作非常有帮助。如果我们使用内置模块 挑战很少,例如如果使用“ ActiveDirectory”模块; 该模块在Domain Controler中可用,或者您需要安装 手动操作。在这种情况下,如果我们要管理广告;我们需要 “ ActiveDirectory”模块。这就是我提出这个话题的原因 在此博客中。如果使用.NET命名空间,则不需要 模块。
如果我们使用.NET命名空间而不是Powershell Module 在所有Windows 2008系统中可用。我们也没有任何模块 Windows 2008中可用于管理Microsoft PKI。
给出几个重要的命名空间,这些可以使我们的生活更轻松并且我们可以 在没有Powershell模块的情况下编写我们自己的代码。
- 我们可以管理我们的Active Directory
NameSpace
[System.DirectoryServices.ActiveDirectory]
只需使用确切的字符串也可以搜索您专门要求的项目的文档/信息/示例/说明。
$ExecutionContext.InvokeCommand.GetCommand
PowerShell Tip: To write a Proxy Function
[System.Management.Automation.CommandTypes]::Cmdlet]
[System.Reflection.Assembly]::ReflectionOnlyLoadFrom]
Loads an assembly into the reflection-only context, given its path.
更新
我也打算从Microsoft添加这些内容。
.NET API browser 欢迎使用.NET API浏览器-您可以一站式购买Microsoft的所有基于.NET的API。开始搜寻 在下面的框中输入任何托管API。您可以了解更多 有关我们博客文章中的API浏览器的信息。如果您有任何反馈意见, 在GitHub上的MicrosoftDocs / feedback存储库中创建新问题。
How to: Call Native DLLs from Managed Code Using PInvoke
以及用于查找内容的工具,如上述.Net允许的内容。
PInvoke.net主要是一个Wiki,允许开发人员查找,编辑和 添加PInvoke *签名,用户定义的类型以及任何其他信息 与从托管代码调用Win32和其他非托管API有关 (用C#或VB.NET等语言编写)。
这是一个较旧的PowerShell工具,用于浏览类,名称空间,但是它很慢,因为选择列表时需要很长时间才能填充。
这是一个PowerShell应用程序,可在资源管理器中显示对象 输入用PowerShell编写的应用程序。 PowerShell对象浏览器 显示任何对象的属性和子对象/集合 PowerShell / .Net框架对象。有关如何使用的说明 这个