Avatar billede fbisen Nybegynder
17. august 2008 - 18:09 Der er 8 kommentarer og
1 løsning

Unikt computerid ud fra hardware

Kære eksperter!

Jeg har søgt og søgt på google og fundet flere eksempler på at finde harddiskens unikke id, uden at noget kode har fungeret.

Jeg kunne godt tænke mig at få noget hjælp til at kunne finde følgende på en computer:
Harddisk serial, BIOS serial, Processor serial.

Grunden til at jeg gerne vil have dem alle, er fordi man vel aldrig kan være sikker på at der er en serial.

Eller måske har I andre ideer?

mvh!
Avatar billede arne_v Ekspert
17. august 2008 - 18:32 #1
Jeg ville prøve med noget WMI.

Følgende kører hos mig:

using System;
using System.Management;

public class MainClass
{
    public static void Main(string[] args)
    {
        ObjectQuery wmicpus = new WqlObjectQuery("SELECT * FROM Win32_Processor");
        ManagementObjectSearcher cpus =  new ManagementObjectSearcher(wmicpus);
        foreach (ManagementObject cpu in cpus.Get())
        {
            Console.WriteLine(cpu["DeviceId"]  + " -- " + cpu["Name"] + " -- " + (cpu["UniqueId"] ?? "Unknown"));
        }
        ObjectQuery wmidisks = new WqlObjectQuery("SELECT * FROM Win32_LogicalDisk");
        ManagementObjectSearcher disks =  new ManagementObjectSearcher(wmidisks);
        foreach (ManagementObject disk in disks.Get())
        {
            Console.WriteLine(disk["Caption"]  + " -- " + (disk["VolumeName"] ?? "Empty") + " -- " + (disk["VolumeSerialNumber"] ?? "Unknown"));
        }
        Console.ReadLine();
    }
}
Avatar billede sbeier Nybegynder
17. august 2008 - 19:21 #2
Hej.. sidder og laver det her sammen med TheFeds.. vi får en exception når vi kører din kode..
Den opstår når man når til 'in' i foreach (ManagementObject cpu in cpus.Get())

System.Management.ManagementException was unhandled
  Message="Der opstod en fejl ved indlæsningen af provideren. "
  Source="System.Management"
  StackTrace:
      at System.Management.ManagementException.ThrowWithExtendedInfo(ManagementStatus errorCode)
      at System.Management.ManagementObjectCollection.ManagementObjectEnumerator.MoveNext()
      at Project1.MainClass.Main(String[] args) in C:\Documents and Settings\Steffen\Dokumenter\Visual Studio 2005\Projects\Project1\Project1\MainClass.cs:line 14
      at System.AppDomain.nExecuteAssembly(Assembly assembly, String[] args)
      at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
      at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
      at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
      at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
      at System.Threading.ThreadHelper.ThreadStart()
Avatar billede arne_v Ekspert
17. august 2008 - 21:06 #3
Hvilken .NET version og hvilken Windows version ?
Avatar billede fbisen Nybegynder
17. august 2008 - 21:08 #4
Windows versionen er XP SP3
.NET framework er version 2.0.5077
Avatar billede arne_v Ekspert
17. august 2008 - 22:15 #5
Det er jo mildt sagt en normal kombination.

Jeg ved ikke hvad problemet er. Koden burde virke. Koden virker hos mig. Men den virker
ikke hos jer. Dybt mystisk.

Har I mulighed for at prøve på en anden computer ?
Avatar billede fbisen Nybegynder
18. august 2008 - 10:45 #6
Ja nu har vi så prøvet på min computer, og ikke på sbeiers. Det virker fint på min. Jeg har lavet programmet lidt om, da volumename og serial dertil skifter ved hver formatering.

Men da det ikke virker på sbeiers, hvordan skal vi så på nogen måde vide at koden vil køre på andres computere? Det er jo stort set ubrugeligt så?
Avatar billede arne_v Ekspert
19. august 2008 - 04:03 #7
Har I mulighed for at prøve på lidt forskellige computere ?

Måske er WMI bare i koks på hans computer.
Avatar billede fbisen Nybegynder
19. august 2008 - 09:39 #8
Vi har snakket lidt om det (sbeier og mig), og jeg tror det er hans computer der er lidt underlig. Han har en mellemting mellem Windows XP og Mediacenter. Under installation beder den ham endda om en CD2, som han ikke har.

Det er nok deri fejlen ligger, og lad os så bare håbe at den fejl kun ligger der.
Takker for svaret arne, dig kan man altid stole på :)
PS: Lig egentlig lige et svar!
Avatar billede arne_v Ekspert
19. august 2008 - 15:33 #9
svar
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