taskmgr.exe เรียกใช้พร้อมอาร์กิวเมนต์โดย Windows 7


13

ฉันสังเกตเห็นเมื่อฉันกดCtrl+ Alt+ Delและคลิกที่ Task Manager, Windows เรียกtaskmgr.exe /3เป็นคำสั่ง เว็บไซต์หลายแห่งอ้างสิทธิ์ตัวจัดการงานที่ไม่มีอาร์กิวเมนต์บรรทัดคำสั่ง

กระบวนการตัวจัดการงานใน Process Explorer

เหตุใด Windows จึงแนบอาร์กิวเมนต์นี้


นอกจากนี้ยังมีอีก, น้ำหนักน้อยกว่าLaunchTM.exeในการ%windir%\System32ที่ทำให้เกิดความสับสนมากยิ่งขึ้นขณะที่ผมไม่สามารถคิดออก basing ในการค้นหาของ Google ของฉันเช่นกันวัตถุประสงค์ของการดำรงอยู่และสิ่งที่มันเป็นสิ่งที่ดีสำหรับในทั่วไป

@ Chinggis6 ไม่มีLaunchTM.exeใน Windows 7 คุณอยู่ใน Windows 8 ฉันคิดว่า ทำไมไม่สร้างคำถามใหม่เกี่ยวกับที่นี่ใน superuser? ;)
Martin Braun

คำตอบ:


13

การวิเคราะห์

เห็นได้ชัดว่าไม่ใช่พฤติกรรมที่บันทึกไว้ ฉันทำแบบทดสอบและสังเกตสิ่งที่ฉันพบ:

  • คลิกขวาที่แถบและคลิกเริ่มต้นที่ Task Manager

    "C:\Windows\system32\taskmgr.exe" /4
    
  • กดCtrl+ +ShiftEsc

    taskmgr.exe /2
    
  • กดCtrl+ Alt+ Delและคลิกเริ่มต้นที่ Task Manager

    taskmgr.exe /3
    
  • เริ่มต้นที่ไม่สูงที่ Task Manager และคลิกแสดงกระบวนการจากผู้ใช้ทุกปุ่ม

    "C:\Windows\system32\taskmgr.exe" /1
    
  • พิมพ์หรือวางtaskmgr.exeในแถบค้นหาเมนูเริ่มแล้วกดEnter; กดWin+ Rพิมพ์หรือวางtaskmgr.exeในกล่องข้อความและกดEnter; นำทางไปยังSystem32โฟลเดอร์และดับเบิลคลิกที่taskmgr.exeไฟล์เรียกทำงาน เริ่มยูทิลิตี้กำหนดค่าระบบ ( msconfig.exe) คลิกแท็บเครื่องมือเลือกรายการตัวจัดการงานจากรายการและคลิกเรียกใช้

    "C:\Windows\system32\taskmgr.exe"
    
  • เปิดพร้อมรับคำสั่งพิมพ์หรือวางและกดtaskmgr.exeEnter

    taskmgr.exe
    

หมายเหตุ

  • สิ่งต่าง ๆ ทำงานในลักษณะเดียวกันในระหว่างขั้นตอนการพัฒนาของ Windows 8 จนถึงจนกว่าจะมีการปล่อยตัวอย่าง Windows Vista และระบบปฏิบัติการรุ่นก่อนหน้าไม่ได้รับผลกระทบ

  • ปฏิบัติการนำเข้าสองฟังก์ชั่นAPI (คือGetCommandLineWและCommandLineToArgvW) ซึ่งจะใช้ในการดึงและแยกอาร์กิวเมนต์บรรทัดคำสั่ง

  • การเริ่มต้นโปรแกรมด้วยตนเองโดยใช้อาร์กิวเมนต์ใด ๆ ข้างต้นดูเหมือนจะไม่มีผลกระทบใด ๆ

ถ้าฉันต้องเดาอย่างรู้แจ้งฉันจะบอกว่าพารามิเตอร์ตัวเลขนั้นหมายถึงตัวบ่งชี้การเริ่มต้นภายในซึ่งอาจใช้เพื่อจุดประสงค์ในการดีบั๊กแล้วก็ทิ้งไว้ข้างหลัง


5
"taskmgr / 7 / startup" => เริ่มต้นด้วยแท็บ Startup ด้านหน้า! (Windows 8.1) - แต่ไม่ใช่ "taskmgr / startup / 7" หรือ "taskmgr / startup" ทำเช่นนั้น! (เครดิตเพิ่มเติม: โปรดอธิบายอัลกอริทึมการแยกวิเคราะห์บรรทัดคำสั่งของ taskmgr.exe ตามหลักฐานนี้ ... )
davidbak

1
@davidbak taskmgr /anything /startupทำงานเพื่อ/startupเป็นอาร์กิวเมนต์ที่สอง
Michel de Ruiter

@MicheldeRuiter - ใช่ มันจะฆ่าพวกเขาเพื่อให้ข้อโต้แย้งในลำดับใด ๆ ? เกิดจากการทำงานพิเศษใน QA หรือไม่ ล่าช้าวันที่จัดส่งหรือไม่ ฮะ????
davidbak

2

หมายเหตุเล็กน้อย:

เพียงเพราะคำสั่งถูกส่งไม่ได้หมายความว่าโปรแกรมยอมรับการขัดแย้งเหล่านั้นหรืออะไรก็ตาม

ตัวอย่างเช่น:

ฉันเรียก taskmanager ด้วยคำสั่งคี่ของฉันเองและพฤติกรรมไม่เปลี่ยนแปลง:

ป้อนคำอธิบายรูปภาพที่นี่

จากจุดตั้งโปรแกรมพื้นฐานแอปพลิเคชันใด ๆ จะมีวิธีการหลักของการเรียงลำดับบางอย่างที่สามารถส่งผ่านอาร์กิวเมนต์ตัวอย่างเช่นแอปพลิเคชัน Windows Form C # พื้นฐานดูเหมือนว่า:

private void Form1_Load(object sender, EventArgs e)
        {

        }

ถ้าฉันผ่านข้อโต้แย้งที่ตลก ๆ ไม่มีอะไรเกิดขึ้นกับแอปพลิเคชัน แต่ Process Explorer จะตรวจจับและแสดงผล

ป้อนคำอธิบายรูปภาพที่นี่

หากฉันตัดสินใจจัดการพวกเขาอย่างชัดเจนคุณจะได้รับการโต้ตอบจากคำสั่ง

ป้อนคำอธิบายรูปภาพที่นี่

และสิ่งที่ฉันต้องทำก็คือเปลี่ยนจุดเริ่มต้นของแบบฟอร์มเล็กน้อย:

private void Form1_Load(object sender, EventArgs e)
        {
            string arguments = Environment.GetCommandLineArgs()[1];

            this.Text = arguments;
        }

กลับไปที่คำถามของคุณว่าทำไมถึงมี:

หากคุณเข้าถึง taskmgr.exe จากctrl+ alt+ delวิธีการที่คุณทำแน่นอนเห็นโต้แย้งคำสั่ง "/ 3" นอกจากนี้หากคุณใช้ctrl+ shift+ escมันจะผ่าน / 2 และหากคุณคลิกขวาที่แถบงานและคลิก "เริ่มตัวจัดการงาน" สวิตช์ที่แสดงคือ / 4

ทั้งหมดนี้ทำให้ฉันคิดว่าอาจมีบางสิ่งที่ Windows จำเป็นต้องรู้หรืออาจถูกนำไปใช้งานเกือบสำหรับ Taskmanager ที่เราไม่ทราบ ตัวอย่างเช่นความปลอดภัยใน Windows อาจต้องการทราบว่ามีการใช้ctrl+ alt+ delเพื่อโทร taskmgr.exe หรือไม่และไม่ใช่สคริปต์หรือผู้ใช้ อีกครั้งการเก็งกำไรที่บริสุทธิ์ แต่หัวข้อเช่นนี้ทำให้ฉันคิดว่าอย่างน้อยก็อาจเป็นความคิด


สำหรับTL ที่น่าอับอาย;

หากต้องการทราบว่าเหตุใด Windows จึงส่งคำสั่งเหล่านี้เราอาจต้องการสมาชิกของทีมพัฒนาของ Microsoft หรือซอร์สโค้ด อาจไม่มีคำตอบที่ดีกว่า

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.