powershell 命令优化 01



https://learn.microsoft.com/zh-cn/powershell/module/microsoft.powershell.utility/?view=powershell-7.5



powershell 下载
https://github.com/PowerShell/PowerShell/releases/tag/v7.6.0-preview.3

## 查看 powershell 版本
```shell
$PSVersionTable.PSVersion
```

## 添加 -NoProfile 命令
```shell
在命令行启动 PowerShell 时添加 -NoRemote


powershell.exe   -NoRemote  -NoProfile  -File  .\test3.ps1
```

## 允许 powershell 运行所有脚本
```
Get-ExecutionPolicy


Set-ExecutionPolicy Unrestricted -Scope CurrentUser -Force
```


## 临时禁用防火墙
```
Set-NetFirewallProfile -Enabled False

Set-NetFirewallProfile -Enabled True

```
 
 
回答1:
执行脚本时启动耗时较长,通常是因为某些系统配置或者环境问题导致了 PowerShell 的加载速度变慢。你提到在其他电脑上执行相同的脚本时速度正常,这意味着问题可能与系统的某些特定设置、资源或环境相关。

以下是可能导致你遇到的问题的几种原因和分析:

### 1. **PowerShell 的执行策略**
   - **执行策略**可能会影响 PowerShell 脚本的执行时间,尤其是当脚本被阻止或需要额外验证时。
     - **解决方法**:检查你的执行策略是否有任何限制,使用以下命令查看当前策略:
       ```powershell
       Get-ExecutionPolicy
       ```
     - 如果是 `Restricted`,可以尝试更改为 `RemoteSigned` 或 `Unrestricted`:
       ```powershell
       Set-ExecutionPolicy RemoteSigned
       ```
     - 如果在远程计算机上运行,执行策略设置可能会有所不同,确保本地和远程环境一致。

### 2. **.NET Framework 或 Windows 组件加载延迟**
   - 当你调用 `Add-Type -AssemblyName System.Windows.Forms` 时,PowerShell 会加载 `System.Windows.Forms` 组件。如果你的系统上某些 .NET 相关的组件或库没有正确配置或者缺少,这可能导致加载组件时的延迟。
     - **解决方法**:确保系统的 .NET Framework 已正确安装并且版本是最新的。可以尝试运行以下命令来检查 .NET 环境:
       ```powershell
       Get-WindowsFeature | Where-Object { $_.Name -like "*NET*" }
       ```
     - 确保 Windows Update 完成且没有缺失的更新。

### 3. **磁盘 I/O 或文件系统问题**
   - 如果系统的磁盘 I/O 性能较差,可能会导致 PowerShell 加载较慢。特别是在运行 PowerShell 脚本时,可能需要从磁盘加载组件或脚本文件。
     - **解决方法**:检查磁盘性能,使用 `Get-PhysicalDisk` 命令查看磁盘的健康状态和性能。如果存在性能瓶颈,可以考虑优化磁盘或检查文件系统是否存在问题。
     - 你可以通过 `chkdsk` 命令检查磁盘完整性:
       ```powershell
       chkdsk C: /f
       ```

### 4. **网络或代理配置问题**
   - 在某些情况下,PowerShell 可能会尝试连接网络(例如,检查 Windows 更新,或者如果脚本尝试访问外部资源),这可能会导致延迟。
     - **解决方法**:确保没有网络代理或防火墙设置干扰 PowerShell 的正常执行。你可以禁用代理并检查执行时间:
       ```powershell
       netsh winhttp show proxy
       ```
     - 如果设置了代理,可以使用以下命令禁用代理:
       ```powershell
       netsh winhttp reset proxy
       ```

### 5. **系统资源使用过高**
   - 其他进程可能正在占用大量系统资源(如 CPU、内存),导致 PowerShell 启动缓慢。尽管系统负载看起来正常,但实际的资源使用情况可能存在瓶颈。
     - **解决方法**:使用任务管理器或命令行工具 `Get-Process` 查看系统资源的使用情况,确保没有占用过多资源的进程。

### 6. **PowerShell 配置文件的加载**
   - PowerShell 会加载配置文件,如 `$PROFILE`,并在启动时执行里面的命令。如果配置文件中存在长时间执行的命令(例如,加载外部模块、查询网络等),可能会导致启动延迟。
     - **解决方法**:检查 PowerShell 配置文件中的内容,确保没有阻塞执行的命令。你可以临时禁用配置文件来测试启动速度:
       ```powershell
       powershell -NoProfile -File .\test.ps1
       ```

### 7. **Windows Defender 或安全软件干扰**
   - 安全软件(如 Windows Defender 或第三方防病毒软件)可能会扫描 PowerShell 脚本,导致启动延迟。某些安全设置可能会使脚本的执行变得缓慢。
     - **解决方法**:检查 Windows Defender 或其他防病毒软件的日志,看看是否有任何与 PowerShell 相关的警报或扫描延迟。

### 8. **PowerShell 版本问题**
   - 不同版本的 PowerShell 可能存在性能差异,尤其是在早期版本中可能存在一些已知的性能问题。
     - **解决方法**:确保你使用的是最新版本的 PowerShell。你可以通过以下命令查看版本:
       ```powershell
       $PSVersionTable.PSVersion
       ```
     - 如果是 PowerShell 5.x 或更早版本,考虑升级到 PowerShell 7.x。

### 9. **系统内存不足或虚拟内存问题**
   - 如果系统的物理内存不足,或者虚拟内存配置有问题,可能会导致 PowerShell 启动缓慢。虽然你的系统看似正常,但在某些情况下,虚拟内存的分配或页面文件配置可能会导致性能下降。
     - **解决方法**:检查系统的内存使用情况,确保没有过多的内存交换。你可以通过任务管理器或 PowerShell 查看内存信息:
       ```powershell
       Get-WmiObject -Class Win32_OperatingSystem | Select-Object TotalVisibleMemorySize, FreePhysicalMemory
       ```

### 总结:
- **执行策略**、**.NET 环境**、**磁盘 I/O**、**代理设置**等都可能是导致启动延迟的因素。
- 建议首先检查系统日志、执行策略、网络配置以及系统资源情况,然后逐步排除可能的原因。如果仍然有问题,可以进一步通过日志分析或抓取网络流量来深入诊断。

 

 
问题回答2:
当 PowerShell 脚本执行较慢时,Windows Defender 或其他第三方安全软件可能会导致延迟,尤其是它们对脚本的扫描或拦截可能增加执行时间。以下是详细的步骤和方法,帮助你分析和解决 Windows Defender 或防病毒软件对 PowerShell 脚本执行的影响。

### 步骤 1: 检查 Windows Defender 的日志
Windows Defender 会记录有关其扫描操作的详细日志,包括对 PowerShell 脚本的扫描。我们可以通过以下步骤查看这些日志。

#### 1.1 查看 Windows Defender 日志
1. 打开 **事件查看器**,按 `Win + X`,然后选择 **事件查看器**2. 在事件查看器中,展开 **Windows 日志**,然后选择 **应用程序**3. 在右侧窗格中,点击 **筛选当前日志**4. 在筛选器窗口中,选择 **源** 为 `Microsoft-Windows-Security-Mitigations` 和 **事件ID** 为 `5001` 或 `1000` 等,过滤出有关 Windows Defender 的日志。
5. 查找与 PowerShell 脚本扫描相关的任何条目,这些条目通常包含“阻止”或“延迟”等关键词。

#### 1.2 查看 Windows Defender 扫描日志
Windows Defender 会将其扫描日志记录在事件查看器中的 **Microsoft** > **Windows** > **Windows Defender** > **Operational** 路径下。以下是查看这些日志的步骤:
1. 打开 **事件查看器**,在左侧面板中,依次展开 **应用程序和服务日志** > **Microsoft** > **Windows** > **Windows Defender** > **Operational**2. 查看扫描日志,注意是否存在有关 PowerShell 脚本扫描的任何延迟或阻止信息。

#### 1.3 检查是否有文件或脚本被标记为“潜在威胁”
Windows Defender 会扫描文件并标记为潜在威胁,这会导致延迟。你可以通过查看 **Windows Defender 的保护历史** 来检查是否有文件被标记为潜在威胁。
1. 打开 **Windows 设置** > **更新与安全** > **Windows 安全**2. 在 **Windows 安全** 窗口中,选择 **病毒和威胁防护**3. 滚动到页面底部,点击 **保护历史记录**4. 检查是否有 PowerShell 脚本被标记为潜在威胁,导致延迟或拦截。

### 步骤 2: 禁用 Windows Defender 进行测试
如果你怀疑 Windows Defender 是造成延迟的原因,可以临时禁用它来验证是否是安全软件的问题。**请注意,禁用 Defender 后,系统将没有防病毒保护,请在测试结束后立即恢复启用它。**

#### 2.1 临时禁用 Windows Defender
1. 打开 **Windows 设置** > **更新与安全** > **Windows 安全**2. 选择 **病毒和威胁防护**,然后点击 **管理设置**3. 在 **实时保护** 部分,将其关闭。这将禁用实时保护功能。
4. 再次运行你的 PowerShell 脚本,检查执行时间是否明显减少。

#### 2.2 恢复 Windows Defender 设置
在测试完成后,记得恢复 Defender 设置以保护你的系统。返回到 **病毒和威胁防护** 设置,将 **实时保护** 开启。

### 步骤 3: 在 Windows Defender 中排除 PowerShell 脚本
如果 Windows Defender 扫描 PowerShell 脚本导致的延迟较为明显,可以考虑将 PowerShell 脚本文件所在的文件夹添加到排除列表中。这样,Windows Defender 在扫描时将不会干扰该文件夹中的脚本文件。

#### 3.1 添加排除项
1. 打开 **Windows 设置** > **更新与安全** > **Windows 安全**2. 选择 **病毒和威胁防护**,然后点击 **管理设置**3. 向下滚动并找到 **排除项**,点击 **添加或删除排除项**4. 点击 **添加排除项**,选择 **文件夹**,然后选择包含 PowerShell 脚本的文件夹。
5. 添加完成后,Windows Defender 将不会扫描该文件夹中的文件。

### 步骤 4: 查看是否有第三方防病毒软件干扰
除了 Windows Defender,许多用户可能还安装了其他第三方防病毒软件(如 McAfee、Norton、Kaspersky 等)。这些软件也可能干扰 PowerShell 脚本的执行,尤其是它们有类似实时扫描功能。为了确认是否是这些防病毒软件导致了延迟,你可以按以下步骤操作:

#### 4.1 检查防病毒软件日志
1. 打开你使用的防病毒软件的主界面。
2. 查看日志或保护历史记录,查找任何与 PowerShell 或脚本文件相关的警告或拦截信息。
3. 查找是否有任何防病毒事件,特别是有关脚本或 PowerShell 的条目。

#### 4.2 临时禁用防病毒软件进行测试
你可以暂时禁用第三方防病毒软件,然后测试脚本的执行速度。请注意,这样做可能会让你的系统面临一定的风险,因此最好仅在受控环境下进行测试。

#### 4.3 排除脚本文件夹
大多数防病毒软件也允许你在设置中添加排除项。你可以将包含 PowerShell 脚本的文件夹添加到排除项中,避免防病毒软件扫描该文件夹中的脚本。

### 步骤 5: 监控 PowerShell 脚本执行情况
最后,你可以使用 **Process Monitor** 工具来监控 PowerShell 执行时的所有活动,特别是磁盘访问、网络请求和注册表访问等。这有助于诊断是否有某个进程(如防病毒软件)干扰了 PowerShell 脚本的执行。

#### 5.1 使用 Process Monitor 监控 PowerShell
1. 下载并运行 **Process Monitor**(从 [Microsoft Sysinternals](https://docs.microsoft.com/en-us/sysinternals/downloads/procmon) 网站获取)。
2. 在 Process Monitor 中,设置过滤器以监控 PowerShell (`powershell.exe`)。
3. 启动 PowerShell 脚本,并观察是否有任何异常的活动(例如,防病毒软件扫描脚本、文件访问延迟等)。
4. 根据监控结果调整防病毒软件设置或文件权限。

### 总结
- **检查日志**:首先查看 Windows Defender 或其他防病毒软件的日志,查看是否有与 PowerShell 脚本扫描相关的事件。
- **禁用实时保护**:如果怀疑 Defender 是问题的根源,临时禁用它来测试脚本执行时间。
- **添加排除项**:将 PowerShell 脚本文件夹或 PowerShell.exe 添加到排除列表,避免扫描延迟。
- **监控执行**:使用 Process Monitor 来检测是否有其他进程(如防病毒软件)干扰 PowerShell 脚本的执行。

通过这些方法,你应该能够诊断出是否是安全软件导致 PowerShell 脚本执行缓慢的问题,并采取相应的措施来解决它。

 

 问题回答3:
你描述的情况看起来是 **脚本启动的延迟**,这不仅是 PowerShell 脚本本身的执行时间问题,可能还涉及到系统环境的配置、执行策略、安全软件、路径解析等方面。你提到的现象可能与 **进程启动的延迟**、**系统的资源消耗** 或者 **安全设置** 有关。为了快速定位和解决这个问题,我将分为几个方面来提供优化建议。

### 1. **确认脚本启动的延迟**
首先,确认一下脚本本身的启动是否慢,可以通过以下几种方法来排除潜在问题:

#### 1.1 直接在命令行中启动脚本
在测试机上打开 PowerShell,手动执行脚本,查看是否存在启动延迟。如果手动执行脚本时延迟较长,那么问题很可能是与 PowerShell 环境、系统配置或者脚本本身有关。如果手动执行没有延迟,那么可以从 C++ 调用的角度来排查。

#### 1.2 确认脚本路径和执行策略
确保脚本路径没有问题,并且执行策略不影响脚本启动:
```powershell
Get-ExecutionPolicy
```
如果是 `Restricted` 或者 `AllSigned`,建议临时将执行策略调整为 `RemoteSigned` 或 `Unrestricted`:
```powershell
Set-ExecutionPolicy RemoteSigned
```
### 2. **C++ 调用 PowerShell 脚本的方式**
C++ 调用 PowerShell 脚本的方式可能会影响脚本启动的速度。最常见的调用方法是使用 `CreateProcess` 或 `system()` 等方式。通过这类方式,操作系统会启动一个新的进程来运行 PowerShell 脚本,可能会有一定的启动开销。

#### 2.1 使用 `CreateProcess` 或 `system()` 运行脚本
以下是 C++ 中通过 `system()` 或 `CreateProcess` 执行 PowerShell 脚本的方式:

```cpp
#include <iostream>
#include <cstdlib>

int main() {
    // 使用 system 执行 PowerShell 脚本
    system("powershell.exe -ExecutionPolicy RemoteSigned -File \"C:\\path\\to\\your\\test.ps1\"");
    return 0;
}
```

这种方法启动一个新的 PowerShell 进程。启动延迟的原因可能是因为每次执行时,系统会重新加载 PowerShell 环境,这可能是造成延迟的原因。

#### 2.2 优化调用方式
你可以考虑减少 PowerShell 环境的启动开销,具体方法有:
- **预先启动 PowerShell 进程**:如果脚本的调用比较频繁,考虑在后台提前启动一个 PowerShell 进程,并将脚本命令传递给该进程。这种方法减少了每次调用脚本时的启动开销。
  
  比如,可以在 C++ 中保持一个 PowerShell 进程的长时间运行,然后通过管道或进程间通信将命令传给它。

- **使用 Windows 脚本宿主(WSH)运行 PowerShell**:你可以通过 `Windows Script Host` 来启动 PowerShell 脚本,这种方法的开销相对较小。比如使用 VBScript 或 JScript 来调用 PowerShell。

### 3. **优化 PowerShell 脚本本身**
虽然你的脚本比较简单,但仍然可以通过一些细节来加速执行,减少不必要的延迟:

#### 3.1 避免加载不必要的组件
每次执行脚本时,PowerShell 会加载 `.NET` 组件和其他必要的库。如果脚本只包含输出或显示信息的任务,尽量避免加载大量库。你可以试着使用以下方式来提高脚本执行速度:
```powershell
# PowerShell 脚本
Add-Type -AssemblyName System.Windows.Forms  # 只加载需要的库
```

#### 3.2 使用 `-NoProfile` 启动 PowerShell
PowerShell 会加载用户配置文件 `$PROFILE` 中的设置,这可能导致启动延迟。可以使用 `-NoProfile` 参数来跳过加载配置文件:
```cpp
system("powershell.exe -NoProfile -ExecutionPolicy RemoteSigned -File \"C:\\path\\to\\your\\test.ps1\"");
```

### 4. **检查系统性能和资源**
有些情况下,系统资源(如 CPU、内存)占用较高,也会导致 PowerShell 脚本的启动延迟。你可以通过以下方式来排查系统是否存在性能瓶颈。

#### 4.1 使用 Task Manager(任务管理器)
查看任务管理器中的 **CPU**、**内存** 和 **磁盘** 使用情况,确保系统资源充足,没有其他进程在占用大量资源。

#### 4.2 使用 `Process Monitor` 查看启动过程
通过 **Process Monitor**(Sysinternals 工具)可以查看 PowerShell 启动过程中的所有文件、注册表和网络活动。这样可以分析是否有某个进程或操作(如防病毒软件、磁盘 I/O 等)影响了 PowerShell 启动。

### 5. **替代方案:使用 C++ 直接实现弹出窗口**
如果脚本主要用于弹出一个窗口显示日志或信息,可以考虑在 C++ 中直接实现弹出窗口的功能,而不必依赖 PowerShell 脚本。这样可以避免 PowerShell 启动的开销,直接通过 C++ 代码完成任务。

以下是一个简单的 C++ 示例,使用 Windows API 弹出一个消息框:

```cpp
#include <windows.h>

int main() {
    MessageBox(NULL, "This is a test message!", "Test", MB_OK);
    return 0;
}
```

如果你只是想弹出一个窗口并显示日志信息,直接在 C++ 中实现可能会更高效。

### 6. **检查安全软件或防火墙设置**
某些安全软件(如防病毒软件或 Windows Defender)可能会扫描 PowerShell 脚本,导致执行时延迟。你可以尝试暂时禁用防病毒软件或 Windows Defender,看看是否有改善。

- **禁用 Windows Defender 实时保护**1. 打开 **设置** > **更新与安全** > **Windows 安全**2. 选择 **病毒和威胁防护**3. 点击 **管理设置**,关闭 **实时保护**- **添加 PowerShell 脚本文件夹为排除项**:你可以将 PowerShell 脚本所在的文件夹添加到防病毒软件的排除列表中,避免每次执行时扫描脚本文件。

### 7. **总结优化建议**
- **优化 C++ 调用方式**:考虑通过管道或进程池保持 PowerShell 进程长时间运行,减少每次启动的开销。
- **优化 PowerShell 脚本**:使用 `-NoProfile` 和 `-ExecutionPolicy RemoteSigned` 参数,避免不必要的库加载。
- **优化系统资源**:检查 CPU、内存、磁盘等资源的占用情况,确保没有其他进程影响 PowerShell 执行。
- **考虑替代方案**:如果仅仅是弹出窗口显示日志信息,可以考虑在 C++ 中直接实现,而不是依赖 PowerShell。

如果这些方法没有效果,你还可以通过更详细的日志或调试工具(如 `Process Monitor`)来进一步分析脚本启动过程中的延迟原因。

 

 

 

Process Monitor v4.01

https://learn.microsoft.com/en-us/sysinternals/downloads/procmon

https://learn.microsoft.com/zh-cn/sysinternals/downloads/procmon

 

**Process Monitor** 是 Sysinternals 提供的一款强大的工具,用于监控和记录 Windows 系统上的文件系统、注册表、进程和线程活动。它可以帮助我们深入分析 PowerShell 脚本执行的延迟原因,尤其是在你遇到 PowerShell 脚本执行慢的情况时,可以通过 `Process Monitor` 观察是否有文件读取、注册表访问或其他进程干扰。

### **使用 Process Monitor 进行调试**

#### 1. **下载和安装 Process Monitor**

首先,你需要下载并安装 Process Monitor:
1. 访问 [Sysinternals 官网](https://docs.microsoft.com/en-us/sysinternals/downloads/procmon)。
2. 下载并解压缩 `Process Monitor` 工具。
3. 解压后,直接运行 `Procmon.exe`(不需要安装)。

#### 2. **启动 Process Monitor**

1. 启动 Process Monitor,打开后你会看到工具开始捕获实时的系统活动。
2. 默认情况下,Process Monitor 会显示大量的文件、注册表和进程活动。
3. 由于输出信息非常多,我们需要设置过滤器,以便只监控与 PowerShell 脚本相关的活动。

#### 3. **设置过滤器**

1. 在 Process Monitor 中,点击 **Filter** 菜单,然后选择 **Filter...**2. 在弹出的过滤器设置窗口中,设置过滤条件,例如,我们想监控 PowerShell 执行相关的活动:
   - 在 **Filter** 行输入框中选择 **Process Name**- 在右边的条件框选择 **is**- 在值框中输入 `powershell.exe` 或者 `pwsh.exe`(如果你使用的是 PowerShell Core)。
3. 你也可以根据需要添加更多过滤器,例如过滤只关注 **文件操作** 或 **注册表操作**,但这里只关注 PowerShell 的执行相关信息。

**示例过滤器设置**- **Process Name** | **is** | `powershell.exe`

点击 **Add** 进行添加。

#### 4. **启动你的 PowerShell 脚本**

在启动 Process Monitor 监控后,立刻执行你的 PowerShell 脚本。你可以从 C++ 程序中执行脚本,或者直接在命令行执行。

例如,你可以执行以下命令:
```powershell
powershell.exe -ExecutionPolicy RemoteSigned -File "C:\path\to\your\test.ps1"
```

#### 5. **观察日志输出**

Process Monitor 会实时捕捉到 PowerShell 相关的文件、注册表、进程等活动。你会看到与 `powershell.exe` 相关的每个操作。

这些日志通常包含以下几种类型的信息:
- **文件系统操作**:例如,PowerShell 脚本读取了哪些文件或访问了哪些路径。
- **注册表操作**:例如,PowerShell 是否读取了某些注册表项。
- **网络访问**:如果脚本涉及到远程连接或网络操作,Process Monitor 会显示这些活动。

#### 6. **分析捕获的日志**

在 Process Monitor 中,你会看到类似以下的输出(只举例说明):

| Time Stamp | Process Name   | Operation | Path                                | Result | Duration |
|------------|----------------|-----------|-------------------------------------|--------|----------|
| 00:00:00.000 | powershell.exe  | CreateFile | C:\Windows\System32\powershell.exe  | SUCCESS | 0 ms     |
| 00:00:00.001 | powershell.exe  | RegOpenKey | HKCU\Software\Microsoft\PowerShell  | SUCCESS | 2 ms     |
| 00:00:02.500 | powershell.exe  | ReadFile   | C:\path\to\your\test.ps1            | SUCCESS | 200 ms   |
| 00:00:02.700 | powershell.exe  | CreateFile | C:\Users\YourUser\AppData\Local\Temp | SUCCESS | 5 ms     |

**分析方法**- **操作类型(Operation)**:如 `CreateFile`(文件创建),`ReadFile`(读取文件),`RegOpenKey`(打开注册表项)等。
- **路径(Path)**:显示访问的文件或注册表项路径。比如,脚本的文件路径、系统文件路径等。
- **结果(Result)**:操作的结果,`SUCCESS` 表示成功,`ACCESS DENIED` 表示权限问题等。
- **持续时间(Duration)**:操作的执行时间,帮助判断哪个操作耗时较长。

通过这些信息,你可以找出是否存在:
- 不必要的磁盘读取操作(比如反复访问某些不必要的文件或目录)。
- 访问或操作某些慢速的文件/注册表项,导致脚本执行变慢。
- 防病毒软件或其他安全软件是否在拦截脚本的执行,造成延迟。

#### 7. **优化建议**

根据你从 Process Monitor 中得到的日志信息,你可以采取以下优化措施:
- **减少磁盘 I/O**:如果脚本频繁读取大量文件或日志,尝试优化这些操作,减少不必要的文件访问。
- **避免频繁的注册表访问**:如果 PowerShell 脚本频繁访问注册表,可能是某些配置或路径导致了延迟。优化这些访问操作,或者考虑缓存一些信息。
- **检查安全软件**:如果发现防病毒软件或其他安全工具介入了脚本的执行(例如,拦截或扫描脚本文件),可以考虑将脚本路径添加到防病毒软件的白名单中,避免扫描延迟。

### **示例:使用 Process Monitor 捕捉 PowerShell 执行情况**

假设你在 C++ 程序中调用 PowerShell 脚本时发现延迟:

1. 打开 **Process Monitor**,并设置过滤器只捕捉 `powershell.exe`。
2. 启动 C++ 程序,调用 PowerShell 脚本。
3. 在 Process Monitor 中查看 PowerShell 启动时的所有文件和注册表操作,特别关注 `ReadFile`、`WriteFile`、`CreateFile` 等文件操作,查看是否有大量的磁盘访问。
4. 如果看到某些文件或路径操作时间过长,进一步分析是哪些文件/路径导致的延迟,并考虑优化或排除相关的干扰。

### 总结

使用 **Process Monitor** 可以帮助你深入分析 PowerShell 脚本执行的过程,识别出潜在的性能瓶颈或系统干扰。通过过滤和分析 PowerShell 进程相关的日志,你可以确定导致延迟的具体原因,并采取相应的优化措施。

 

 
 
posted @ 2025-04-08 06:21  He_LiangLiang  阅读(301)  评论(0)    收藏  举报