Quy trình con Python chạy lệnh PowerShell

Bạn hoàn toàn nên xem những gì PowerShell. exe đang hoạt động vì bạn đang sử dụng một bên ngoài để gọi Powershell. exe và đó là một phiên bắt đầu hoàn toàn riêng biệt so với phiên python mà bạn đang tham gia

Do đó, bạn không chỉ thấy bảng điều khiển python mà cả bảng điều khiển PowerShell cũng sẽ bật lên và nếu bạn muốn xem nó đang làm gì, bạn cần sử dụng các công tắc tạm dừng, -wait hoặc noexit. Xem tệp trợ giúp PowerShell để biết thêm chi tiết

Biến tự động PowerShell yêu cầu bạn chỉ định tên người dùng như thế này

$env:USERNAME

không phải cái này

%USERNAME%

PowerShell có nhiều biến tự động đến từ ổ Env

Get-PSDrive | Format-Table -AutoSize


Get-ChildItem -Path 'env:\'

Bạn truy cập từng cái theo tên biến của chúng

$env:USERNAME
$env:USERPROFILE
$env:COMPUTERNAME

Có thể bạn thực sự giỏi Python, nhưng tại sao bạn lại sử dụng Python để thực hiện công cụ PowerShell, thay vì sử dụng PowerShell trực tiếp, đặc biệt là khi cố gắng sử dụng các lệnh ghép ngắn ADDS [RSAT]?

Công cụ quản trị máy chủ từ xa dành cho Windows 7 với Gói dịch vụ 1 [SP1]

Cài đặt RSAT cho Windows 10 1809 và 1903 và 1909 tự động

Sử dụng các lệnh ghép ngắn PowerShell Active Directory mà không cần cài đặt bất kỳ phần mềm nào

hoặc bạn đã thực hiện một kết nối từ xa Powershell ẩn/rõ ràng

about_Remote - PowerShell. Tài liệu Microsoft

PowerShell ẩn thư mục hoạt động từ xa

đến một DC [hoặc một máy chủ khác có công cụ RSAT], để ủy quyền các lệnh ghép ngắn đó cho phiên PowerShell của bạn, thì chúng thậm chí không có sẵn để sử dụng

Bạn cũng không sử dụng thuộc tính cú pháp cmdlet

Get-ADPrincipalGroupMembership

Điều này khiến người ta cho rằng bạn chưa quen với ADDS với PowerShell, điều này không sao nhưng sẽ khiến bạn phải tăng tốc trên cả hai nguyên bản, trước khi thử hợp nhất với một ngôn ngữ bên ngoài

Trả lại để tìm kiếm Youtube cho

Vì vậy, đây là những gì tôi đang minh họa trong các bình luận khác của mình. và tại sao nếu bạn đang cố gắng loại bỏ phiên này khỏi phiên Python, so với trực tiếp từ PowerShell, thì đó có thể là một chút thách thức, bởi vì Python cần gì để chạy và gọi PowerShell để Powershell có tài nguyên để chạy một lệnh ghép ngắn nhất định. Tôi không có Python trong môi trường và tôi cũng không cần nó để kiểm tra điều này. Tôi làm PSremting mỗi ngày, cũng như nhiều người trong ngành và nó hoạt động tốt

# Change this...
import subprocess
subprocess.Popen['powershell.exe [Get-ADPrincipalGroupMembership %USERNAME% | select name]']
os.system['powershell.exe Get-ADPrincipalGroupMembership %USERNAME% | select name]']

# To this, Impot the process 
import subprocess
# Use a subprocess to start powershel.exe, which creates an implicit PowerShell remote session to a DC to proxy the RSAT/ADDS cmdlets to get group information
subprocess.call[["C:\\WINDOWS\\system32\\WindowsPowerShell\\v1.0\\powershell.exe", "$DCSssion = New-PSSession –ComputerName 'YourDCName'", "Invoke-Command –Session $DCsession –ScriptBlock {Get-ADPrincipalGroupMembership -Identity $env:USERNAME | Select-Object -Property Name}"]]

điểm lưu ý. Để gọi lệnh trên máy chủ từ xa, bạn phải là quản trị viên trên máy chủ từ xa đó

***Cập nhật dựa trên chủ đề của bạn ***

Tôi không thể xử lý dữ liệu tốt và nó thật rắc rối nhưng nó vẫn hoạt động

PowerShell trả về các đối tượng, theo thiết kế/mặc định, không phải chuỗi. Vì vậy, khi bạn chạy những thứ như thế này

Get-ADPrincipalGroupMembership -Identity $ntaccount1 |
select-Object -Property Name | 
Where-Object {$PSItem.name -like '*certain string*' } |
Sort Name

Tất cả những gì bạn nhận được là một đối tượng thuộc tính. Tên được sắp xếp tăng dần. Bạn cũng có thể làm điều này nếu tất cả những gì bạn muốn là một tài sản

Python có thể chạy các lệnh PowerShell không?

Có thể chạy PowerShell từ bên trong python bằng quy trình con. run[] và chỉ định powershell. đường dẫn exe .

Tập lệnh PowerShell có thể chạy trong dòng lệnh không?

Có thể chạy các tệp thực thi từ bất kỳ trình bao dòng lệnh nào, như PowerShell . Điều này bao gồm các tệp tập lệnh có thể yêu cầu các trình bao khác hoạt động bình thường. Ví dụ: nếu bạn chạy tập lệnh bó Windows [. cmd] trong PowerShell, PowerShell chạy cmd. exe và chuyển vào tệp bó để thực thi.

Làm cách nào để cài đặt Python PowerShell?

Cài đặt Python trên Windows .
Bước 1. Tải xuống. Chuyển đến con trăn. org/tải xuống/windows. .
Bước 2. Mở trình cài đặt Python. .
Bước 3. Xác minh Python được cài đặt qua PowerShell. .
Bước 4. Cập nhật cài đặt PowerShell. .
Bước 5. Tạo thư mục Dev. .
Bước 6. Cập nhật Pip. .
Bước 7. Tạo môi trường ảo. .
Bước 8. Cài đặt bất kỳ Gói Python nào

Chủ Đề