windows - Er det muligt at udføre qwinsta korrekt fra en Cygwin ssh-session?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har Cygwin kører på en Windows 7-maskine og har Cygwin ssh serveren kørende på den. På Linux har jeg et shell script, hvor jeg vil gøre


ssh myuser@mymachine "qwinsta | grep Active"


for at se, hvem der er logget ind. Dette fungerede fint for en Windows Server 2008 R2-maskine, men synes at have problemer på Windows 7.


Hvis jeg prøver dette på Windows 7-maskinen, får jeg:


bash: qwinsta: command not found


Nu er her, hvor den underlige begynder ...


Hvis jeg logger ind på Windows 7-maskinen normalt og ser i C: \ Windows \ System32 med Windows Stifinder, kan jeg se qwinsta.exe. Hvis jeg åbner en CMD-session og gør en dir i C: \ Windows \ System32, kan jeg se qwinsta.exe. Hvis jeg åbner en Cygwin shell og gør en ls qwinsta.exe i/cygdrive/c/Windows/System32, får jeg:


ls: cannot access qwinsta.exe: No such file or directory


Hvis jeg gør en cmd /c dir C:\\Windows\\System32\\qwinsta.exe fra Cygwin-skalen, får jeg en 'fil ikke fundet'


Hvis jeg kopierer qwinsta.exe til min Cygwin-hjemmekatalog, så er den synlig i min hjemmekatalog med ls. Hvis jeg forsøger at køre denne lokale kopi af qwinsta fra Cygwin-skalen, kører den, men den udsender også en linje:


{Message(): LoadString failed, Error 15105, (0x00003B01)}


Hvad er der med qwinsta på Windows 7?

Bedste reference


Problemet er, at qwinsta.exe ikke rent faktisk er placeret i C:WindowsSystem32. Det findes faktisk i


C:Windowswinsxsamd64\_microsoft-windows-t..commandlinetoolsmqq\_31bf3856ad364e35\_6.XX.XXX.XXXX\_none\_XXXXXXXXqwinsta.exe


Brug af ovenstående sti (eller et softlink til det samme) vil køre qwinsta.exe som det findes på en maskine, og det vil ikke kræve, at du kopierer den eksekverbare til din hjemmekatalog.


Fejlmeddelelsen {Message(): LoadString failed, Error 15105, (0x00003B01)} handler om, at multilinugal brugergrænseflade (lokaliseringssystem) ikke kan finde oplysninger om fejlmeddelelses lokalisering for det program, der køres (se System Error Codes). I dette tilfælde ser det ud til, at cygwin-skalen ikke giver qwinsta.exe de oplysninger, den har brug for at finde qwinsta.exe.mui i dit sprogs lokalmappe (normalt C:WindowsSystem32en-US eller uanset din lokalitet sker til at se på denne mappe er noget vildledende, da explorer vil vise filen i denne mappe, men når du kører ls /cygdrive/c/Windows/System32/en-US, er der ingen qwinsta.exe.mui fil. Jeg formoder, at det har noget at gøre med ny sammenkoblingsstruktur i NTFS (se mklink kommando), men jeg har ikke fundet ud af, hvordan du løser denne del af problemet endnu. [27] [28]

Andre referencer 1


løst:



  1. Først skal du gå til C:Windowswinsxsamd64\_microsoft-windows-t..commandlinetoolsmqq\_31bf3856ad364e35\_6.1.7600.16385\_none\_851e6308c5b62529
    (Kopier og indsæt det pågældende sted fungerer lige så godt som manuelt at finde det.)
    Du skal finde tre filer: Msg.exe, Quser.exe og qwinsta.exe.
    Kopier disse filer til din mappe C:Windowssystem32

  2. Gå derefter til C:Windowswinsxsamd64\_microsoft-windows-t..etoolsmqq.resources\_31bf3856ad364e35\_6.1.7600.16385\_en-us\_7bef78d9f4a6a8ac



Du bør finde tre tilsvarende navngivne filer, undtagen disse vil ende med .mui.



  1. Kopier alle tre af disse filer til din mappe C:Windowssystem32en-US.

  2. Prøv nu at køre programmet msg. Det skal arbejde uden problem.