找到 463 篇文章 关于 PowerShell
1K+ 次浏览
PowerShell 工作流是设计脚本以在多个节点上并行执行的最佳方法,这节省了大量输出生成时间,但我们并不总是希望所有命令都并行运行,也需要一些命令顺序运行,我们可以使用 PowerShell 工作流设计并行和顺序命令。Workflow TestWorkflow{ parallel{ Command1 Command2 } Sequence{ Command3 Command4 } } TestWorkflow 在上面的代码中,Command1、Command2 将以任意顺序并行执行,而 command3 ... 阅读更多
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 ... 阅读更多
386 次浏览
PowerShell 工作流构建在基于 .Net 的 Windows 工作流基础 (WWF) 之上,它有一个单独的工作流引擎来执行代码,因为它将代码转换为 WWF 框架的 XAML。PowerShell 工作流是一系列步骤,主要用于在多台机器上并行运行活动。长时间运行的脚本。组织步骤(哪些步骤将并行执行,哪些步骤顺序执行)常用任务。通过定义检查点,从因系统故障或其他中断而终止的位置恢复脚本。PowerShell 工作流在 PowerShell 3.0 中引入,并在核心版本(6.0 及更高版本)中已停止在 Windows 中使用,并且仅... 阅读更多
2K+ 次浏览
要使用 PowerShell 验证 IP 地址,我们可以使用以下几种方法。使用正则表达式方法。使用类型转换方法。使用类型转换方法。在此方法中,我们使用 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 ------------ -------- --------- ... 阅读更多