2014-12-22 17 views
5

Đôi khi sau khi khởi động lại/coldboot tôi gặp sự cố với trình điều khiển màn hình cảm ứng của mình trong Win8, vì vậy tôi đã khởi động lại thủ công ngay bây giờ.Tắt PowerShell và bật trình điều khiển

Vì vậy, tôi muốn viết một tập lệnh bắt đầu sau khi đăng nhập, điều này sẽ vô hiệu hóa trình điều khiển và bật lại.

Tôi thực sự phát hiện ra để tìm driver và rằng tôi có thể có được một danh sách đối tượng của các trình điều khiển thông qua:

Get-WmiObject Win32_PnPSignedDriver| select devicename, driverversion | where {$_.devicename -like "I2C*"} 

Nhưng thêm "| Disable-Device" vào cuối dòng sẽ không hoạt động.

Bất cứ ai có thể cho tôi biết làm thế nào tôi phải viết lệnh một cách chính xác và bắt đầu kịch bản như một tập tin thực thi?

+0

Lỗi được đưa ra khi bạn có '| Disable-Driver' ở cuối? –

+0

Tôi dịch nó, Tắt-thiết bị: Tên "Vô hiệu hóa thiết bị" không có tên của một Cmdlet, hoặc một chức năng, hoặc một tập lệnh, hoặc một chương trình điều hành. Kiểm tra ký hiệu của tên hoặc nếu đó là đường dẫn đúng và thử lại. – pewpewPenguin

+0

Tôi có một ví dụ làm việc tại https://github.com/StingyJack/VidyaRestart – StingyJack

Trả lời

3

Giả sử bạn đang sử dụng Device Management cmdlets, tôi khuyên bạn nên sử dụng lệnh ghép ngắn Get-Device được cung cấp trong cùng một gói để đi dọc theo đường ống. Sau khi xem nhanh, tôi thấy rằng Disable-Device không lấy DeviceName hoặc DriverVersion từ đường ống - và sẽ không nhận ra vì nó chỉ là thông số nhận dạng (-TargetDevice).

Các trang TechNet gợi ý này, để vô hiệu hóa một thiết bị:

$deviceName = Read-Host -Prompt 'Please enter the Name of the Device to Disable'; Get-Device | Where-Object -Property Name -Like $deviceName | Disable-Device 

Bạn chỉ có thể sử dụng một cái gì đó như thế này, giả sử devicename của bạn cũng tương tự như sử dụng lệnh Get-Device cmdlet:

Get-Device | where {$_.name -like "I2C*"} | Disable-Device 
+0

Lỗi xuất hiện bằng cách thử đề xuất cuối cùng của bạn. "Đặt tên" Thiết bị Nhận "không có tên của một Cmdlet, một chức năng hoặc ..." Tôi có phải viết toàn bộ tập lệnh không? (Tôi hiện đang đặt lệnh này vào powershell) – pewpewPenguin

+0

Được rồi, như bước đầu tiên, 'Tắt thiết bị' không phải là lệnh ghép ngắn chuẩn trên Windows 8. Nếu bạn đã tìm thấy nó từ một bài đăng như [this] (http://blogs.technet.com/b/wincat/archive/2012/09/06/device-management-powershell-cmdlets-sample-an-introduction.aspx), bạn sẽ nhận thấy rằng nó gợi ý sử dụng cmdlets Management Management (liên kết trong câu trả lời), chứa 'Disable-Device' và' Get-Device'. Bạn sẽ cần tải xuống và nhập mô-đun này trước khi bạn có thể sử dụng bất kỳ lệnh nào có trong đó. –

+0

Tôi đã cố gắng nhập mô-đun (đưa vào các mô-đun thư mục powershell) và "Nhập-Mô-đun. \ PSCmdlet.psd1 -Verbose" như nó nói trong .txt, nhưng nó luôn luôn nói rằng tập tin không tìm thấy. – pewpewPenguin

2

tại ít nhất với Windows 10, việc này dễ dàng hơn nhiều:

$d = Get-PnpDevice| where {$_.friendlyname -like "I2Cwhatever*"} 
$d | Disable-PnpDevice -Confirm:$false 
$d | Enable-PnpDevice -Confirm:$false 
Các vấn đề liên quan