找到 2042 篇文章 适用于 Microsoft 技术

如何在 PowerShell 中并行使用 foreach 循环?

Chirag Nagrekar
更新于 2021 年 2 月 19 日 13:05:09

10K+ 次查看

在 PowerShell 中并行使用 foreach 循环有两种方法。使用 Foreach-Object -Parallel 命令(支持 PowerShell 7.0 或更高版本)使用 Foreach -Parallel 在工作流中(支持 PowerShell 5.1 或更低版本)假设我们有 Servers.txt,其中包含 10 台服务器。当我们使用并行 for 循环时,它不能保证哪个服务器循环会首先被选中,如下面的两个示例所示。使用 Foreach-Object-Parallel 命令。(不是 Foreach -Parallel)此 Foreach-Object -Parallel 命令功能是新添加到 PowerShell 7.0 或更高版本中的。示例$servers = Get-Content C:\Temp\Servers.txt $servers | foreach-Object -parallel{    Write-output "Working on $_" }输出PS C:\> C:\Temp\Test1.ps1 Working on IndiaServer003 Working on IndiaServer002 Working on IndiaServer001 Working on ... 阅读更多

如何使用 PowerShell 验证 IP 地址?

Chirag Nagrekar
更新于 2021 年 2 月 19 日 12:59:09

2K+ 次查看

要使用 PowerShell 验证 IP 地址,我们可以使用以下几种方法。使用 RegEx 方法。使用类型转换方法。使用 TypeCasting 方法。在这种方法中,我们使用 System.Net 方法类 IPAddress 来验证 IP 地址。[ipaddress]$IP = "192.168.0.1"以上是有效的。让我们检查 $IP 存储的内容。PS C:\> $IP Address : 16820416 AddressFamily : InterNetwork ScopeId : IsIPv6Multicast : False IsIPv6LinkLocal : False IsIPv6SiteLocal : False IsIPv6Teredo : False IsIPv4MappedToIPv6 : False IPAddressToString : 192.168.0.1以上是 Ipv4,此方法也适用于 IPv6。请参见下面的示例。PS C:\> [ipaddress]"2001:0db8:85a3:0000:0000:8a2e:0370:7334" Address : AddressFamily : InterNetworkV6 ScopeId ... 阅读更多

如何检查字符串是否包含特定单词?

Chirag Nagrekar
更新于 2021 年 2 月 8 日 07:55:01

1K+ 次查看

要检查 PowerShell 字符串是否包含特定单词,我们可以使用字符串方法 Contains()。例如,示例PS C:\> $str = 'TestNZ01LT' PS C:\> $str.Contains('NZ') True现在有趣的是,即使 PowerShell 不区分大小写,以上命令也不区分大小写。我们需要提供完全相同的子字符串。例如,以下输出将为 false。示例PS C:\> $str.Contains('Nz') False要克服此问题,我们可以要么在方法中提供相同的搜索名称,要么如果不想区分大小写搜索,则需要使用小写或大写方法。PS C:\> $str = 'TestNZ01LT' PS C:\> ($str.ToLower()).Contains(('Nz').ToLower()) True ... 阅读更多

如何在 PowerShell 中将命令输出转换为哈希表格式?

Chirag Nagrekar
更新于 2021 年 2 月 8 日 07:53:26

2K+ 次查看

要将任何命令输出转换为 PowerShell 中的哈希表,我们可以首先使用 ConvertTo-JSON 命令将其输出转换为 JSON 格式,然后从第一个输出应用 ConvertFrom-JSON 命令将产生输出到哈希表。示例Get-Service以上命令将以数组格式给出输出。输出Status  Name            DisplayName ------  ----            ----------- Stopped WwanSvc         WWAN AutoConfig Stopped XblAuthManager  Xbox Live Auth Manager Stopped XblGameSave     Xbox Live Game Save Stopped XboxGipSvc      Xbox Accessory Management Service Stopped XboxNetApiSvc   Xbox Live ... 阅读更多

如何在 PowerShell 中从 Invoke-Command 输出中排除 RunSpaceID 属性?

Chirag Nagrekar
更新于 2021 年 2 月 8 日 07:51:36

3K+ 次查看

当我们在 PowerShell 中编写 Invoke-Command 时,有时会在 PowerShell 中获得 RunSpaceID 属性。这是因为我们在脚本块内部使用了 Select-Object(别名:Select)命令。例如,示例Invoke-Command -ComputerName LabMachine2k12 -ScriptBlock{Get-Process PowerShell | Select Name, CPU, WorkingSet}输出Name           : powershell CPU            : 9.1572587 WorkingSet     : 127700992 PSComputerName : LabMachine2k12 RunspaceId     : c690f205-06d4-4cc4-be29-5302725eadf1要避免在输出中获取 RunSpaceID 属性,请使用 Select 命令输出脚本块。例如,示例Invoke-Command -ComputerName LabMachine2k12 -ScriptBlock{Get-Process PowerShell} | Select Name, CPU, WorkingSetOutputName       CPU        WorkingSet ----       ---        ---------- powershell 9.1572587  127700992

如何在 PowerShell 中从 Invoke-Command 输出中排除 PSComputerName 属性?

Chirag Nagrekar
更新于 2021 年 2 月 8 日 07:49:29

950 次查看

当我们使用 Invoke-Command 时,我们在输出表中获得 PSComputerName 额外字段。您可以使用 -HideComputerName 参数将其删除。例如,以下命令给出包含 PSComputerName 属性的输出。示例Invoke-Command -ComputerName LabMachine2k12 -ScriptBlock{Get-Service Winrm} | ft -AutoSize输出Status  Name  DisplayName PSComputerName ------  ----  -----------     -------------- Running Winrm Windows Remote Management (WS-Management) LabMachine2k12要隐藏 PSComputerName 属性,示例Invoke-Command -ComputerName LabMachine2k12 -ScriptBlock{Get-Service Winrm} -HideComputerName输出Status  Name  DisplayName   ------  ----  -----------   Running Winrm Windows Remote Management (WS-Management)

如何使用 PowerShell 查找设备驱动程序版本?

Chirag Nagrekar
更新于 2021 年 2 月 8 日 07:46:08

5K+ 次查看

要使用 PowerShell 查找设备驱动程序版本,我们需要使用 WMI 对象的 win32_PnpSignedDriver 类。例如,示例Get-WmiObject win32_PnpSignedDriver或者如果您使用的是 PowerShell core(PowerShell 6.0 或更高版本),则可以使用 CIM 实例命令。例如,Get-CimInstance win32_PnpSignedDriver要根据其版本过滤驱动程序,请使用以下命令进行过滤。示例gwmi win32_PnpSignedDriver | Select Description, DriverVersion输出ACPI x64-based PC                6.2.9200.16384     UMBus Root Bus Enumerator        6.2.9200.16384     WAN Miniport (IPv6)              6.2.9200.16384     Composite Bus Enumerator ... 阅读更多

如何使用 PowerShell 检查 Windows 证书过期日期?

Chirag Nagrekar
更新于 2021 年 2 月 8 日 07:44:24

4K+ 次查看

要从特定存储中获取特定的 Windows 证书过期日期,我们首先需要该证书的完整路径以及指纹。如果您不知道指纹,我们可以使用友好名称。使用指纹,Get-ChildItem Cert:\LocalMachine\root\0563B8630D62D75 | fl *当您运行以上命令时,它将获取具有指纹 0563B8630D62D75 的证书的所有详细信息。在那里您可以看到列出了两个字段,NotAfter 和 NotBefore,它们分别显示过期日期和开始日期。要筛选它们,示例Get-ChildItem Cert:\LocalMachine\root\0563B8630D62D75 | Select FriendlyName, NotAfter, NotBefore输出FriendlyName NotAfter   NotBefore ------------ --------   --------- ... 阅读更多

如何使用 PowerShell 获取 Windows 证书详细信息?

Chirag Nagrekar
更新于 2021 年 2 月 8 日 07:42:37

39K+ 次查看

我们知道 Windows 证书驻留在证书存储中,但有时查找其名称的证书或获取特定证书的详细信息可能很麻烦。您可以使用 MMC 或使用 CertMgr.msc 命令访问证书存储。为 CurrentUser、ServiceAccount 和本地计算机存储了证书。要使用 PowerShell 访问证书存储,您需要访问 PSDrive,证书存储在名为 Cert 的驱动器中,如下所示。PS C:\> Get-PSDrive cert | ft -AutoSize Name Used (GB) Free (GB) Provider Root CurrentLocation ---- --------- --------- -------- ---- --------------- Cert Certificate \假设 ... 阅读更多

如何在 PowerShell 中检查 PSCustomObject 是否为空?

Chirag Nagrekar
更新于 2021 年 2 月 8 日 07:41:09

3K+ 次查看

在 PowerShell 中检查 PSCustomObject 是否为空,我们需要检查 PSCustomObject 的字段。请考虑以下示例,Example$output = [PSCustomObject]@{    Name = 'John'    City = 'New York'    Country = 'US'    Company = 'Alpha'   } $output1 = [PSCustomObject]@{    Name = ''    City = ''    Country = ''    Company = '' }输出PS C:\WINDOWS\system32> $output Name    City     Country    Company ----    ----     -------    ------- John    New York  US        Alpha PS C:\WINDOWS\system32> $output1 Name    City     Country    Company ... 阅读更多

广告