Gần đây tôi có một máy tính mới với nhiều mã lực và nó hoạt động rất nhanh ở mọi nơi trừ PowerShell.
Môi trường:
- Dell XPS 8930 (i7-8700K, RAM 32 GB, SSD NVMe 1TB)
- Windows 10 Pro với các bản cập nhật mới nhất (1809 / 10.0.17763)
- PowerShell 5.1.17763.316 và PowerShell Core 6.1.1
- Tôi còn rất nhiều bộ nhớ (> 16GB) và CPU gần như không hoạt động trong khi nó bị treo.
- Chỉ Windows Defender (không có phần mềm chống vi-rút khác)
Một số triệu chứng dường như phù hợp:
- Mở PowerShell hiển thị thông tin bản quyền và treo ở đó trong 2 phút trước khi hiển thị lời nhắc.
- Tôi bắt đầu gõ một lệnh và phải mất gần một phút để văn bản xuất hiện
- Khi văn bản xuất hiện, tôi có thể sửa đổi lệnh và nó sẽ phản hồi.
- Tôi nhập một lệnh đơn giản như
echo 'hello'
và nhấn enter, mất khoảng 45 giây để 'xin chào' xuất hiện trên màn hình và 45 giây nữa để quay lại dấu nhắc. - Một lần tại dấu nhắc gõ một lệnh là phản hồi, nhưng việc chạy nó lại chậm.
- Chạy
dir
lệnh trong thư mục nhà của tôi (một vài tệp / thư mục): khoảng 2:30 trước khi liệt kê thư mục, 15 giây nữa để quay lại dấu nhắc.
Một số đã cố gắng khắc phục sự cố:
- PowerShell ISE: Mất khoảng 5 phút để nhắc nhở.
- PowerShell ISE (x86): Nó hoạt động nhanh!
- PowerShell (x86): Cũng hoạt động nhanh!
- PowerShell Core: Cũng rất chậm.
- Bảng điều khiển kế thừa PowerShell: Không thay đổi.
- Mở một dòng lệnh thông thường và chạy
powershell -NoProfile
: Không thay đổi. sfc /scannow
: Không có vấn đề được tìm thấy, khởi động lại không giúp đỡ.- Vô hiệu hóa kết nối mạng: Không thay đổi.
- Chạy Sysiternals procmon: Không có gì rõ ràng, nhưng dường như nó luôn bị treo ngay sau một số thao tác "Thoát luồng".
- Nhìn vào ngăn xếp luồng trong Sysiternals procexp: Khi nó treo, luồng chính luôn ở ntdll.dll
ZwWaitForMultipleObjects
. - Gỡ cài đặt WSL / Hyper-V: Không thay đổi.
- Chạy "Microsoft .NET Framework Repair Tool" và khởi động lại, không thay đổi.
- Kiểm tra
C:\Users\USERNAME\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline
, chỉ có một tệp 4KB. $PSModuleAutoloadingPreference = 'none'
: không thay đổi. Tôi sẽ không tưởng tượng việc chạy một trong các lệnh cơ bản nhưecho
nhiều lần sẽ luôn cố tải các mô-đun.netsh http show iplist
:
Địa chỉ IP có trong danh sách nghe IP:
127.0.0.1
- Kích hoạt WinRM (
winrm quickconfig
): Dịch vụ bắt đầu nhưng sau đó không thể kết nối.- Tôi có thể thấy cổng 5985 đang được lắng nghe bởi PID 4 khi dịch vụ được khởi động.
- Tường lửa Windows có hai mục "Quản lý từ xa Windows (HTTP-In)" cho cổng 5985 (cho phép mọi địa chỉ từ xa khi ở trong mạng / hồ sơ cá nhân).
- Tôi có thể thành công
telnet localhost 5985
- Sau khi dịch vụ WinRM bắt đầu, phải mất khoảng 7 phút để phản hồi:
WSManFault ...
Số lỗi: -2144108250 0x80338126 WinRM không thể hoàn thành thao tác. Xác minh rằng tên máy tính được chỉ định là hợp lệ, máy tính có thể truy cập được qua mạng và ngoại lệ tường lửa cho dịch vụ WinRM được bật và cho phép truy cập từ máy tính này. Theo mặc định, ngoại lệ tường lửa WinRM cho các cấu hình công khai giới hạn quyền truy cập vào các máy tính từ xa trong cùng một mạng con cục bộ.
Tính nhất quán trong độ trễ khiến tôi nghĩ rằng có một số loại kết nối và thời gian chờ đã cố gắng, nhưng tôi không biết điều gì có thể xảy ra. Bất kỳ bậc thầy nào ngoài kia với ý tưởng?
C:\Users\USERNAME\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline
và loại bỏ nó. (2) Tạo một shortcut đến %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe
và trong Properties> Tùy chọn thiết lập Sử dụng di sản console , (3) Cố gắng gọi PowerShell với -NoProfile
switch, (4) Tắt PowerShell Mô-đun Autoload .
1.
từ lệnh nâng cao lệnh quản trị viên sfc /scannow
hãy để nó hoàn thành, khởi động lại, thử lại. 2.
Vẫn gặp sự cố, hãy thử chạy công cụ microsoft.com/en-us/doad/details.aspx?id=30135 chỉ trong trường hợp, chạy nó, khởi động lại, thử lại.
-NoProfile
, vô hiệu hóa tự động tải mô-đun không giúp được gì. @Ramhound: Tôi không còn có Bitdefender, cả PowerShell Core và thông thường đều chậm. Tôi đã bao gồm netsh
đầu ra trong câu hỏi của tôi. @PimpJuice: Đã thử sfc
, công cụ sửa chữa .NET không giúp được gì.