Tam komut ve üst işlem kimliğini powershell'den nasıl alabilirim?


2

Powershell'de çalıştırdığım komut bu

 gwmi win32_process |select ProcessID,ParentProcessID,CommandLine,@{e={$_.GetOwner().User}}

Ve işte katılımın kısmi listesi

                            ProcessID                       ParentProcessID CommandLine                          $_.GetOwner().User                  
                        ---------                       --------------- -----------                     ------------------                  
                                0                                     0                                                                          
                                4                                     0                                                                          
                              236                                     4                                      SYSTEM                              
                              332                                   320                                      SYSTEM                              
                              384                                   320 wininit.exe                          SYSTEM                              
                              392                                   376                                      SYSTEM                              
                              420                                   376 winlogon.exe                         SYSTEM                              
                              476                                   384                                      SYSTEM                              
                              484                                   384 C:\Windows\system32\lsass.exe        SYSTEM                              
                              544                                   476 C:\Windows\system32\svchost.exe -... SYSTEM 

Komut satırının tamamını nasıl edinebileceğimi bilmek istiyorum? (yukarıda gösterildiği gibi kesilmez)

Bir sensueklentiyi işlemek için çıktıyı yakalamam gerekiyor , ki bu aslında bir yakut betiği.


2
Bunun tam çıktı olduğundan eminim, komutla sizleri küçültün.
Ramhound,

Ama kullanırsam wmictam komut satırını elde edebilirim. Umarım ps'de eşdeğeri vardır
Anthony Kong

Powershell'de wmic işleri.
Michael Frank

wmic bana ebeveyn işlem kimliğini vermiyor
Anthony Kong

wmic process listParentProcessIdonun çıktısını içerir .
DavidPostill

Yanıtlar:


5

Bu sadece biçimlendirme. Tam komut satırı nesnede var ancak nesnelerin baskı için dizgelere dönüştürüldüklerinde biçimlendirilmesi (varsayılan biçimlendirme "ft" kullanır) çizgiyi keser. Farklı biçimlendirirseniz, liste biçimlendiriciyle, verilerin tamamını daha uzun bir biçimde alırsınız:

.. your command ... | fl

Sonuçları bir komut dosyasında kullanmak istiyorsanız, biçimlendirme ile ilgilenmenize gerek yoktur, sadece pipeline içindeki nesnelerden .CommandLine özelliğini kullanın (ve sonra "select" komutunu da atlayabilirsiniz).

Metni bir Ruby komut dosyasına almak için, açıkça metin alanlarını boşlukla ayrılmış alanlarla oluşturabilirsiniz:

gwmi win32_process | % { "$($_.ProcessID) $($_.ParentProcessID) $($_.GetOwner().User) $($_.CommandLine)" }

Varsayılan "tablo" formatlayıcısının sütunları kaydırması için aşağıdakileri kullanın:

... | ft -wrap

Uzun satırları görüntülemenin bir yolunu bilmiyorum, bu nesne sınıfı için özel bir biçimlendirme görünümü tanımlayarak yapılabileceğini düşünüyorum, ancak bunu kendim yapmadım.


1
ft -AutoSizehile yapmak gibi görünüyor
Anthony Kong
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.