首页 > 解决方案 > 在哪里可以找到一些 powershell 语法

问题描述

我只是在阅读一些 powershell 脚本,我发现在其中一些脚本中写有如下内容:$ExecutionContext.InvokeCommand.GetCommandOR [System.Management.Automation.CommandTypes]::Cmdlet)OR[System.Reflection.Assembly]::ReflectionOnlyLoadFrom($_.FullName)我的意思是我在哪里可以找到它们的含义?microsoft 上是否有任何页面列出了它们中的每一个及其正确含义?谢谢

标签: powershell

解决方案


你搜索了什么?

所有文档都可以在线获得,并且做你所看到的是很常见的事情。所以,任何时候你看到这个用例......

[System.

...这是调用 Windows .Net 库以满足目标需求。这在 MSDN 和 .Net 文档站点上都有介绍。

'使用 .net 类的 powershell'

示例返回

PowerShell:如何创建和使用类

PowerShell 能够使用 Add-Type Jump cmdlet 创建 .Net Framework 类。要创建类,可以使用 C# 语言来定义类。C# 是 Visual Studio 的一部分,但不必拥有 Visual Studio 来创建在 PowerShell 中使用的类。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 使用 .net 命名空间'

示例返回:

发现 Dot NET 命名空间和 WMI 类-Powershell

.NET 命名空间-Powershell

本博客中的所有脚本都是使用 .NET 命名空间编写的,因此我们没有模块依赖关系。

现在,Powershell 中有很多可用的模块。对于我们的日常操作,这些非常有帮助。如果我们使用内置模块,则很少有挑战,例如如果我们使用“ActiveDirectory”模块;该模块在域控制器中可用,或者您需要手动安装。在这种情况下,如果我们想管理我们的广告;我们需要“ActiveDirectory”模块。这就是我将这个主题放在这个博客中的原因。如果您使用 .NET 命名空间,则不需要模块。

如果我们使用 .NET 命名空间而不是所有 Windows 2008 系统中可用的 Powershell 模块。此外,我们在 Windows 2008 中没有任何可用于管理 Microsoft PKI 的模块。

鉴于很少有重要的命名空间可以让我们的生活更轻松,我们可以在没有 Powershell 模块的情况下编写自己的代码。

  1. 我们可以管理我们的 Active Directory
NameSpace
[System.DirectoryServices.ActiveDirectory]

您特别要求的项目的 Docs/info/examples/explanations 也可以通过使用该确切字符串进行搜索。

$ExecutionContext.InvokeCommand.GetCommand

PowerShell 提示:编写代理函数

[System.Management.Automation.CommandTypes]::Cmdlet]

定义 MSH 可以执行的命令类型

[System.Reflection.Assembly]::ReflectionOnlyLoadFrom]

在给定路径的情况下,将程序集加载到仅反射上下文中。

更新

我也打算从微软添加这些。

.NET API 浏览器欢迎使用 .NET API 浏览器 - 您可以一站式购买 Microsoft 提供的所有基于 .NET 的 API。通过在下面的框中键入开始搜索任何托管 API。您可以在我们的博客文章中了解有关 API 浏览器的更多信息。如果您有任何反馈,请在 GitHub 上的 MicrosoftDocs/反馈存储库中创建一个新问题。

平台调用 (P/Invoke)

如何:使用 PInvoke 从托管代码调用本机 DLL

以及这个查找东西的工具,比如上面的 .Net 允许的。

什么是 PInvoke.net?

PInvoke.net 主要是一个 wiki,允许开发人员查找、编辑和添加 PInvoke* 签名、用户定义的类型以及与从托管代码(使用 C# 或 VB 等语言编写)调用 Win32 和其他非托管 API 相关的任何其他信息。网)。

这是一个较旧的 PowerShell 工具,用于浏览类、命名空间,但速度很慢,因为选择列表时需要很长时间才能填充。

PowerShell 对象浏览器

这是一个 PowerShell 应用程序,它在用 PowerShell 编写的资源管理器类型应用程序中显示对象。PowerShell 对象浏览器显示任何 PowerShell / .Net 框架对象的属性和子对象/集合。有关如何使用它的说明

下载:PSObjectBrowser.ps1


推荐阅读