Khởi chạy phiên PowerShell từ xa bằng tệp ps1 đã lưu


15

Tôi đang cố gắng tạo một vài tệp mà tôi có thể lưu trên máy tính để bàn cục bộ của mình để khởi chạy các phiên PowerShell.

Windows Server 2008 và Windows Server 2012 đều là bản cài đặt Server Core.

Hiện tại, tôi có thể mở Powershell và gõ:

Enter-PSSession -computername Win2012SrvCore -credential administrator

Sử dụng điều này, tôi có thể kết nối và chạy các lệnh và mọi thứ đều tuyệt vời.

Những gì tôi đã cố gắng làm là:

Tạo tập tin được gọi Win2012SrvCore1.ps1với các mục sau:

$passwd = convertto-securestring -AsPlainText -Force -String MYPASSWORD

$cred = new-object -typename System.Management.Automation.PSCredential -argumentlist "administrator",$passwd

$session = new-pssession -computername Win2012SrvCore -credential $cred

Tạo tập tin được gọi Win2012SrvCore2.ps1với các mục sau:

PowerShell.exe -Command Enter-PSSession -computername Win2012SrvCore -credential administrator

Mỗi ps1tệp sẽ khởi chạy và đóng lại nhanh chóng với một số văn bản màu đỏ mà tôi không thể đọc được.

Tôi đã cố gắng thêm PAUSEvào từng tập lệnh nhưng điều đó dường như không khiến cửa sổ đóng lại.

Những gì tôi muốn làm là tạo các tập lệnh mà tôi có thể nhấp đúp và mở vào dấu nhắc powershell, tương tự như một phiên RDP đã lưu.

Tôi đã cấu hình các tệp ps1 để thực thi:

C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe

Mọi sự trợ giúp sẽ rất được trân trọng.


Điều gì xảy ra nếu bạn nhập thủ công dòng này trong dòng ISE theo từng dòng, từng lệnh? Bạn vẫn nhận được một lỗi?
Colyn1337

Tôi sẽ mở Powershell ISE (Tích hợp kịch bản môi trường) và chạy tập lệnh. Điều này sẽ hiển thị đầu ra và cho phép bạn tiếp tục xử lý sự cố.
BRNDR

Câu trả lời:


10
$passwd = convertto-securestring -AsPlainText -Force -String MYPASSWORD

$cred = new-object -typename System.Management.Automation.PSCredential -argumentlist "administrator",$passwd

$session = new-pssession -computername Win2012SrvCore -credential $cred

Thêm một dòng nữa:

Import-PSSession $session

Sau đó lưu tệp .PS1 và tạo một lối tắt đến nó dưới dạng powershell.exe -noexit -File "C:\PS.ps1".


12

thêm `-noexit '

PowerShell.exe -noexit -Command Enter-PSSession -computername Win2012SrvCore -credential administrator


9

Hãy thử lưu các lệnh của bạn dưới dạng tệp tập lệnh và sau đó yêu cầu các phím tắt của bạn sử dụng dòng lệnh:

powershell.exe -noExit <filename.ps1>

Điều này sẽ có các phím tắt của bạn chạy tệp tập lệnh được chỉ định và không thoát khỏi quyền hạn khi kết thúc thực thi tập lệnh, vì vậy bạn có thể tiếp tục sử dụng cửa sổ sau khi phiên được thiết lập.

Để làm việc này, bạn cần đảm bảo chính sách thực thi PowerShell không bị hạn chế, nếu không thì không có tệp script nào có thể được thực thi

Để kiểm tra chính sách thực thi hiện tại bạn có thể sử dụng Get-ExecutionPolicyvà bạn có thể sử dụng Set-ExecutionPolicyđể thay đổi chính sách vĩnh viễn hoặc thêm -ExecutionPolcytham số vào dòng lệnh powershell để thay đổi chính sách trong một phiên duy nhất.

Thông tin thêm về các chính sách thực thi và tác động của chúng có thể được tìm thấy bằng cách sử dụng help about_Execution_Policieslệnh.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.