找到 2042 篇文章 适用于 Microsoft 技术
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 ... 阅读更多
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 ... 阅读更多
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 ... 阅读更多
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 ... 阅读更多
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
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)
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 ... 阅读更多
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 ------------ -------- --------- ... 阅读更多
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 \假设 ... 阅读更多
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 ... 阅读更多