找到 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 地址,我们可以使用以下几种方法。使用正则表达式方法。使用类型转换方法。使用 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 \Let say ... 阅读更多

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

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

3K+ 次浏览

要在PowerShell中检查PSCustomObject是否为空,我们需要检查PSCustomObject的字段。考虑以下示例:示例$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 ... 阅读更多

广告