Avatar billede mickni33 Nybegynder
04. maj 2007 - 11:55 Der er 23 kommentarer og
1 løsning

Hente info om andre processer

jeg kunne godt tænke mig at lave en program som overvåger en computers processer.

Hvis feks webserveren er gået ned gives en besked til brugeren ..
Hvis feks der er mangel på harddisk plads for brugeren besked..

Men hvordan kan man tilgå disse info?

I må gerne vise kode og/eller links
Avatar billede arne_v Ekspert
04. maj 2007 - 15:39 #1
noget a la:

            Process[] allp = Process.GetProcesses();
            foreach(Process p in allp)
            {

                if(p.Id > 0)
                {
                    // brug p til det du nu skal
                }
            }
Avatar billede mickni33 Nybegynder
04. maj 2007 - 16:32 #2
hva hvis man skal hente disse info på en anden PC/server? kan det lade sig gøre?
Avatar billede arne_v Ekspert
04. maj 2007 - 17:03 #3
enten noget client/server

eller det indbyggede WMI
Avatar billede hmortensen Nybegynder
04. maj 2007 - 17:03 #4
Process.GetProcesses() har en overloadet metode som tager imod computernavn.
Avatar billede arne_v Ekspert
04. maj 2007 - 17:19 #5
se det var jeg ikke klar over - den bruger formentligt WMI til det, men det
er jo noget nemmere end via direkte WMI
Avatar billede mickni33 Nybegynder
04. maj 2007 - 17:25 #6
aaahhh det må jeg prøve .. husk at lægge nogle svar
Avatar billede mickni33 Nybegynder
04. maj 2007 - 21:29 #7
Sådan får man alle sine kørende processer udskrevet:

System.Diagnostics.Process[] allp=Process.GetProcesses();
            foreach(Process p in allp) {
                int i=0;
                if(p.Id>0) {
                    Console.WriteLine(p.ProcessName);
                    i++;
                }
            }
            Console.ReadLine();


Prøver lige at få fat på info som ligger på en ekstern PC
Avatar billede mickni33 Nybegynder
04. maj 2007 - 22:08 #8
Hmmmm kan ikke få adgang via remote skriver min exception

Unhandled Exception: System.InvalidOperationException: Couldn't connect to remote machine

Hvordan kan det klares ?
Avatar billede mickni33 Nybegynder
04. maj 2007 - 22:08 #9
Unhandled Exception: System.InvalidOperationException: Couldn't connect to remot
e machine. ---> System.InvalidOperationException: Couldn't get process informati
on from performance counter. ---> System.ComponentModel.Win32Exception: Adgang n
ægtet
Avatar billede arne_v Ekspert
05. maj 2007 - 01:08 #10
ligner et rettigheds problem - har du administrator rettigheder til den
anden maskine ?
Avatar billede mickni33 Nybegynder
05. maj 2007 - 08:58 #11
ja det står bare inde i et andet rum :-)
Men hvor "sætter" man disse retigheder?
Avatar billede arne_v Ekspert
05. maj 2007 - 16:58 #12
jeg mener: det bruger navn du kører på din maskine - har det administartor retthigeder
på den maskine du vil hente info for ?
Avatar billede mickni33 Nybegynder
05. maj 2007 - 19:50 #13
nååå ja det har det ... det er min egen private begge maskiner ... jeg vil mene at de altid kører med admin rettigheder.. men jeg tjekker lige efter?

hva med firewall og min router og sådan noget? vil det spærre for mit kald?
Avatar billede mickni33 Nybegynder
11. maj 2007 - 12:10 #14
Hvis min bærbar hedder "Bærbar" og
min stationære hedder "Server"

Så har jeg prøvet at oprette en bruger der hedder "Bærbar" med admin rettigheder, på min stationære "Server"

("Server" er lig med IP : 192.168.1.100)

så virker Process.GetProcesses("192.168.1.100") stadig ikke

kan heller ikk rigtig forstå hvordan det vill kunne lade sig gøre:-)..
Måske skal der oprettes noget remote snask?

Har kigget på nettet og MSDN men har ikke rigtig kunne finde løsningen på det.

Er der nogen af jer der har prøvet at implementerer det?
Avatar billede thesurfer Nybegynder
11. maj 2007 - 14:24 #15
Så vidt jeg ved, virker "Process.GetProcesses()" kun på den maskine koden afvikles på.

Dvs:
- Hvis "Bærbar" afvikler koden, er det "Bærbar"'s processer der refereres til
- Hvis "Server" afvikler koden, er det "Server"'s processer der refereres til

Altså:
Hvis du fra "Bærbar" vil have fat på processerne på "Server", skal du lave et kald fra "Bærbar" og til "Server"'s IP + en port du har valgt, som omdirigeres til "Server"'s program, der indeholder koden "Process.GetProcesses()", hvorefter "Server" skal svare/sende data retur til "Bærbar".
Avatar billede thesurfer Nybegynder
11. maj 2007 - 14:27 #16
Det er "client/server"-delen fra arne_v's indlæg 04/05-2007 17:03:45 ..

"Bærbar" = "client"
"Server" = "server"

Programmet på "Server" skal bare sidde der og lytte på en bestemt port, som du har valgt (portnummer større end 1024), og skal afvikle koden, når den får et signal ind fra "Bærbar"..
Avatar billede mickni33 Nybegynder
11. maj 2007 - 14:49 #17
hmmm ok det lød baresom om >>hmortensen >> mente at man kunne bruge Process.GetProcesses("192.168.1.100") til at henet prosecces fra computeren med f.eks dette IP
Avatar billede thesurfer Nybegynder
11. maj 2007 - 16:03 #18
Hmm.. ja, sådan lyder det.. :-)

Måske kan hmortensen forklare nærmere, når han/hun engang svinger forbi.. :-)
Avatar billede mickni33 Nybegynder
11. maj 2007 - 19:12 #19
heheheh jeps
Avatar billede arne_v Ekspert
12. maj 2007 - 03:32 #20
Det siger docs at den gør http://msdn2.microsoft.com/en-us/library/x8b2hzk8.aspx - jeg tror
stadig at det er et adgangs problem.

Du logger ind på din bærbare med enten bærbar\brugernavn eller domæne\brugernavn
og det skal være administrator på server for at det vil virke.

Tror jeg.
Avatar billede mickni33 Nybegynder
20. maj 2007 - 12:43 #21
lav lige svar alle
Avatar billede arne_v Ekspert
20. maj 2007 - 15:07 #22
svar
Avatar billede mickni33 Nybegynder
20. maj 2007 - 15:10 #23
fik ikke lavet den med de eksterne processer
Avatar billede arne_v Ekspert
20. maj 2007 - 15:29 #24
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester