Bagaimana saya bisa mengembalikan sesi desktop jarak jauh ke konsol lokal?
15
Setelah saya selesai dengan koneksi desktop jarak jauh, saya ingin dapat mengembalikan desktop jarak jauh ke konsol lokal sehingga pengguna tidak perlu memasukkan kembali kata sandi dan masuk kembali.
Bagaimana saya bisa membuat pintasan desktop untuk melakukan ini?
Buat pintasan desktop dengan mengklik kanan pada desktop dan memilih yang baru, lalu pilih pintasan.
Di bidang teks, masukkan:
%windir%\System32\tscon.exe 0 /dest:console (Lihat di bawah)
Klik kanan pintasan yang baru dibuat, klik properti.
Klik tab pintasan, dan klik tombol Advanced.
Centang kotak "Run as administrator" dan klik OK.
Jika ini tidak berhasil, coba ubah angka nol ( tscon.exe 0 /dest...) pada langkah 2 menjadi nomor satu, dan jika tidak berhasil, teruskan menambahkannya hingga desktop jarak jauh Anda dirilis.
Sebagai alternatif, buka sebuah shell dengan menu mulai, jalankan cmd,. Ketik qwinstaEnter, dan cari ID sesi yang dalam status aktif (akan memiliki >karakter di awal nama sesi). Itu angka yang perlu Anda gunakan di langkah 2.
Saat Anda ingin mengembalikan desktop konsol, cukup klik dua kali pada pintasan dan biarkan akses administrator.
karena kami menemukan itu karena masalah ini : perlu diingat bahwa ketika menggunakan work-around dengan tscon bahwa sesi tetap terbuka tanpa kunci! itu berarti bahwa siapa pun yang memiliki koneksi ke konsol (misalnya melalui konsol manajer mesin virtual atau vsphere) dapat menggunakan sesi terbuka bahkan dari pengguna lain tanpa masuk. Jadi dalam skrip yang digunakan juga harus ada sesi lcok
rominator007
8
Ini adalah versi yang menghindari ketergantungan pada alat GNU. Menggunakan findstr, yang dikirimkan bersama 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
Inilah versi saya, dioptimalkan untuk satu-liner agar ramah-pintas: %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"Ini menggantikan >penggantian variabel lingkungan dengan fortipu daya penguraian tambahan , serta menambahkan cmdopsi (untuk pintasan). Ketika dikombinasikan dengan ikon yang tepat (saya menggunakan ikon log off Shell32.dll), itu mirip dengan ini .
Helder Magalhães
Saya harus membuat pintasan ini berjalan sebagai administrator agar bisa berfungsi. Klik kanan> Properti> Tingkat Lanjut
James Esh
2
Jawaban glenviewjeff membuat saya hampir sampai di sana, tetapi id sesi tidak selalu 1. Jika Anda mencoba untuk memutuskan sesi mendengarkan atau konsol seperti ini Anda akan mendapatkan "Kesalahan 7045" - akses sesi yang diminta ditolak, atau jika id sesi tidak ada kesalahan SessionID tidak ditemukan.
Saya membuat file batch kecil untuk menarik sesi saat ini. Ketika saya melakukan ini pada Windows XP saya perlu qwinsta daripada sesi permintaan untuk mengetahui ID saat ini. File batch ini menggunakan utilitas baris perintah unix, saya menggunakan Gnu di Windows ( https://github.com/bmatzelle/gow/downloads ) untuk memiliki akses ke ini. Ini mengeluarkan sesi saat ini dengan mencari tanda ">" dan kemudian menugaskannya kembali ke sesi konsol.
for /f %%i in ('qwinsta ^| grep "^>" ^| awk "{print $4}"') do set VAR=%%i
tscon %var% /dest:console
Saya memerlukan ini untuk mesin yang terhubung ke pemindai Fujitsu IX500, pemindai hanya memindai jika layar tidak pada layar pemilihan nama pengguna / masuk pada Windows yang Anda dapatkan saat logon atau memutuskan sesi secara normal. Ketika mesin berjalan tanpa layar saya ingin dapat terhubung melalui rdp, tetapi jika saya melakukannya saya tidak dapat menggunakan tombol pindai perangkat keras sampai saya login secara manual atau restart. File batch di atas menyelesaikan masalah ini.
Ini adalah versi yang menghindari ketergantungan pada alat GNU. Menggunakan findstr, yang dikirimkan bersama Windows.
sumber
%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"
Ini menggantikan>
penggantian variabel lingkungan denganfor
tipu daya penguraian tambahan , serta menambahkancmd
opsi (untuk pintasan). Ketika dikombinasikan dengan ikon yang tepat (saya menggunakan ikon log offShell32.dll
), itu mirip dengan ini .Jawaban glenviewjeff membuat saya hampir sampai di sana, tetapi id sesi tidak selalu 1. Jika Anda mencoba untuk memutuskan sesi mendengarkan atau konsol seperti ini Anda akan mendapatkan "Kesalahan 7045" - akses sesi yang diminta ditolak, atau jika id sesi tidak ada kesalahan SessionID tidak ditemukan.
Saya membuat file batch kecil untuk menarik sesi saat ini. Ketika saya melakukan ini pada Windows XP saya perlu qwinsta daripada sesi permintaan untuk mengetahui ID saat ini. File batch ini menggunakan utilitas baris perintah unix, saya menggunakan Gnu di Windows ( https://github.com/bmatzelle/gow/downloads ) untuk memiliki akses ke ini. Ini mengeluarkan sesi saat ini dengan mencari tanda ">" dan kemudian menugaskannya kembali ke sesi konsol.
Saya memerlukan ini untuk mesin yang terhubung ke pemindai Fujitsu IX500, pemindai hanya memindai jika layar tidak pada layar pemilihan nama pengguna / masuk pada Windows yang Anda dapatkan saat logon atau memutuskan sesi secara normal. Ketika mesin berjalan tanpa layar saya ingin dapat terhubung melalui rdp, tetapi jika saya melakukannya saya tidak dapat menggunakan tombol pindai perangkat keras sampai saya login secara manual atau restart. File batch di atas menyelesaikan masalah ini.
sumber
Saya tidak bisa menjalankan perintah file batch Simon D. Inilah yang bekerja untuk saya di Windows 7 x64:
sumber