ฉันจะคืนค่าเซสชันเดสก์ท็อประยะไกลไปยังคอนโซลภายในเครื่องได้อย่างไร


15

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

ฉันจะสร้างทางลัดบนเดสก์ท็อปเพื่อทำสิ่งนี้ได้อย่างไร

คำตอบ:


15
  1. สร้างทางลัดบนเดสก์ท็อปโดยคลิกขวาที่เดสก์ท็อปแล้วเลือกใหม่จากนั้นเลือกทางลัด
  2. ในช่องข้อความให้ป้อน:

    %windir%\System32\tscon.exe 0 /dest:console (ดูด้านล่าง)

  3. คลิกขวาที่ทางลัดที่สร้างขึ้นใหม่คลิกคุณสมบัติ
  4. คลิกที่แท็บทางลัดแล้วคลิกปุ่มขั้นสูง
  5. ทำเครื่องหมายที่ช่อง "Run as administrator" และคลิกตกลง

หากวิธีนี้ใช้ไม่ได้ผลให้ลองเปลี่ยนจำนวนศูนย์ ( tscon.exe 0 /dest...) ในขั้นตอนที่ 2 เป็นหมายเลขหนึ่งและหากไม่ได้ผลให้เพิ่มขึ้นเรื่อย ๆ จนกว่าเดสก์ท็อประยะไกลของคุณจะเปิดตัว

cmdอีกวิธีหนึ่งคือเปิดเปลือกหอยที่มีเมนูเริ่มต้นทำงาน พิมพ์qwinsta Enterและค้นหา ID ของเซสชันที่อยู่ในสถานะใช้งาน (จะมี>อักขระที่จุดเริ่มต้นของชื่อเซสชัน) นั่นคือหมายเลขที่คุณต้องใช้ในขั้นตอนที่ 2

เมื่อคุณต้องการคืนค่าเดสก์ท็อปคอนโซลเพียงคลิกสองครั้งที่ทางลัดและอนุญาตการเข้าถึงของผู้ดูแลระบบ


มากทำ welll :)
JD

เนื่องจากเราสะดุดเมื่อนั้นเนื่องจากปัญหานี้: โปรดจำไว้ว่าเมื่อใช้งานรอบกับ tscon ที่เซสชั่นเปิดอยู่โดยไม่ล็อค! นั่นหมายความว่าทุกคนที่มีการเชื่อมต่อกับคอนโซล (เช่นผ่าน virtual machine manager console หรือ vsphere) สามารถใช้เซสชันที่เปิดอยู่จากผู้ใช้อื่นโดยไม่ต้องเข้าสู่ระบบดังนั้นในสคริปต์ที่ใช้ควรมีเซสชัน lcok ด้วย
rominator007

8

นี่คือรุ่นที่หลีกเลี่ยงการพึ่งพาเครื่องมือ GNU มันใช้ findstr ซึ่งจัดส่งมาพร้อมกับ Windows

for /f %%i in ('qwinsta ^| findstr /C:">rdp-tcp#"') do set RDP_SESSION=%%i
:: Strip the >
set RDP_SESSION=%RDP_SESSION:>=%
tscon %RDP_SESSION% /dest:console

7
ต่อไปนี้เป็นรุ่นของฉันที่ปรับให้เหมาะกับหนึ่งซับเพื่อให้เป็นทางลัด: %windir%\system32\cmd.exe /c "for /F "tokens=1 delims=^> " %i in ('""%windir%\system32\qwinsta.exe" | "%windir%\system32\find.exe" /I "^>rdp-tcp#""') do "%windir%\system32\tscon.exe" %i /dest:console"แทนที่การ>เปลี่ยนตัวแปรสภาพแวดล้อมด้วยforกลอุบายเพิ่มเติมในการแยกวิเคราะห์รวมถึงเพิ่มcmdตัวเลือก (สำหรับทางลัด) เมื่อรวมกับไอคอนที่เหมาะสม (ผมใช้ล็อกออกจากไอคอนShell32.dll) จะได้รับคล้ายกับนี้
Helder Magalhães

ฉันต้องทำให้ทางลัดนี้ทำงานเป็นผู้ดูแลระบบเพื่อให้ทำงานได้ คลิกขวา> คุณสมบัติ> ขั้นสูง
James Esh

2

คำตอบของ glenviewjeff ทำให้ฉันได้รับประโยชน์มากที่สุดจากที่นั่น แต่ ID เซสชันไม่เสมอไป 1 หากคุณพยายามยกเลิกการเชื่อมต่อการฟังหรือคอนโซลเซสชันเช่นนี้คุณจะได้รับ "ข้อผิดพลาด 7045" - การเข้าถึงเซสชันที่ร้องขอถูกปฏิเสธหรือ ไม่มีรหัสเซสชันไม่พบข้อผิดพลาด SessionID

ฉันสร้างไฟล์แบตช์ขนาดเล็กเพื่อดึงเซสชันปัจจุบันออกมา ในขณะที่ฉันทำสิ่งนี้บน Windows XP ฉันต้อง qwinsta มากกว่าเซสชันการสืบค้นเพื่อหา ID ปัจจุบัน ไฟล์ชุดนี้ใช้ยูทิลิตี้บรรทัดคำสั่ง unix ฉันใช้ Gnu บน Windows ( https://github.com/bmatzelle/gow/downloads ) เพื่อเข้าถึงสิ่งเหล่านี้ มันดึงเซสชั่นปัจจุบันออกมาโดยการค้นหาเครื่องหมาย ">" แล้วกำหนดกลับไปที่เซสชันของคอนโซล

for /f %%i in ('qwinsta ^| grep "^>" ^| awk "{print $4}"') do set VAR=%%i
tscon %var% /dest:console

ฉันต้องการสิ่งนี้สำหรับเครื่องที่เชื่อมต่อกับเครื่องสแกนเนอร์ฟูจิตสึ IX500 เครื่องสแกนจะสแกนเฉพาะถ้าหน้าจอไม่ได้อยู่ในหน้าจอการเลือกชื่อผู้ใช้ / การลงชื่อเข้าใช้ใน Windows ซึ่งเป็นสิ่งที่คุณจะได้รับเมื่อคุณออกจากระบบ ในขณะที่เครื่องทำงานโดยไม่มีหน้าจอฉันต้องการเชื่อมต่อผ่าน rdp แต่ถ้าฉันทำอย่างนั้นฉันก็ไม่สามารถใช้ปุ่มสแกนฮาร์ดแวร์ได้จนกว่าฉันจะเข้าสู่ระบบด้วยตนเองหรือเริ่มใหม่ ไฟล์แบทช์ด้านบนแก้ปัญหานี้ได้


0

ฉันไม่สามารถรับชุดคำสั่งไฟล์ของ Simon D ให้ทำงานได้ นี่คือสิ่งที่ใช้ได้กับฉันใน Windows 7 x64:

for /f %%i in ('qwinsta ^| grep "^>" ^| awk "{print $3}"') do tscon %%i /dest:console
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.