newcomer603
Goto Top

Batchabfrage Bios Seriennummer

Hallo zusammen,

ich würde gerne per Batchbefehl die Bios Seriennummer abfragen lassen und diese dann in eine CSV datei einfügen lassen.

Das war mein Ansatz:

:: Seriennummer auslesen
echo.
wmic bios get serialnumber

aber wie bringe ich den rest auf den weg?

Content-ID: 627821

Url: https://administrator.de/contentid/627821

Ausgedruckt am: 21.11.2024 um 20:11 Uhr

Xaero1982
Xaero1982 03.12.2020 um 23:42:09 Uhr
Goto Top
Nabend,

gibt es gefühlt 100.000 oder mehr Seiten zum Thema.

Bestenfalls machst du das mit Powershell. Versuchs doch mal face-smile

Grüße
Pjordorf
Pjordorf 03.12.2020 um 23:53:18 Uhr
Goto Top
Hallo,

Zitat von @Newcomer603:
Das war mein Ansatz:
Machs so z.B.
for /F "skip=1 delims=" %%j in ('wmic bios get serialnumber') do (
  set Seriennummer=%%j
  goto :DONE
)
:DONE
echo  Seriennummer=%Seriennummer%

Gruß,
Peter
Xaero1982
Xaero1982 03.12.2020 um 23:54:14 Uhr
Goto Top
$pathSN = "c:\temp\serial.csv"  
Get-WmiObject -Class Win32_BIOS | select SerialNumber | Export-Csv $pathSN -Append
AMD9558
AMD9558 04.12.2020 um 09:08:08 Uhr
Goto Top
Hi,

ich habs damals so gelöst:

for /F %%a in ('wmic bios get serialnumber') do call :Sub %%a  
echo The serial number is %SerialNumber%
goto :eof

:Sub
if not "%*"=="" set SerialNumber=%*  

echo %Computername% ; %SerialNumber% >> \\xfiles\DeploymentLogs$\Seriennummern\Seriennummern.csv
Ich speichere die Seriennummer mit dem Computernamen ab. Sonst muss ich jedes mal am Gerät nachschauen, welches Gerät welche Seriennummer hat.

VG
Newcomer603
Newcomer603 06.12.2020 um 14:27:05 Uhr
Goto Top
Ich habe es verändert da es vorher nicht funktioniert hat.
So habe ich es geändert:

wmic bios get serialnumber
%echo serialnumber is %SerialNumber%
goto :eof

echo %computername% ; %SerialNumber% >> c:\Seriennummer\Seriennummern.csv

In der csv steht zwar der Computername aber nicht die Seriennummer aber warum?
AMD9558
AMD9558 06.12.2020 aktualisiert um 16:18:05 Uhr
Goto Top
Probiers mal damit:

for /F %%a in ('wmic bios get serialnumber') do call :Sub %%a  
echo The serial number is %SerialNumber%
goto :eof

:Sub
if not "%*"=="" set SerialNumber=%*  

echo %Computername% ; %SerialNumber% >> c:\Seriennummer\Seriennummern.csv

Habe ich eben getestet und es hat funktioniert.

EDIT: Mein Fehler. Ich habe dein Script getestet und anschließend nochmal meins. Dabei ist mir aufgefallen, dass ich mir da selbst einen Fehler eingebaut habe. Führst du das Script als Admin oder als User aus? Und hat dein User Zugriff auf den Ordner auf "C:\Seriennummer" ? Oder du schaust mal hier: https://gallery.technet.microsoft.com/scriptcenter/Get-server-serial-num ... .

VG
Newcomer603
Newcomer603 06.12.2020 um 17:11:15 Uhr
Goto Top
Also das passiert bei mir:
screenshot (2)
Xaero1982
Xaero1982 06.12.2020 aktualisiert um 17:41:43 Uhr
Goto Top
Ist jetzt nicht böse gemeint, aber warum nimmst du nicht einfach den Einzeiler bzw. Zweizeiler für die Powershell von oben?

Des Weiteren packt man so ein Script in eine Batchdatei und haut es nicht in die CMD
Pjordorf
Pjordorf 06.12.2020 um 18:47:01 Uhr
Goto Top
Hallo,

Zitat von @Newcomer603:
Also das passiert bei mir:
Keinen größeren Monitor den du abfotografierst?

Wenn du NICHT wie von dir zuerst gewünscht eine Batchdatei nutzen willat, so musst du darauf achten das deine CMD Variante auch SYNTAKTISCH korrekt ist. Dazu zählt unter anderem das in einer CMD Variablen mit Ein (1) Prozentzeichen angesprochen werden. in einer Batchdatei brauchst du dagegen zwei (2) aufeinanderfolgende Prozentzichen. Der von mir gepostete Code ist zwingend für deine Batchanforderung und funktiuoniert ohne Änderung NICHT in einer CMD.
Batch:
for /F "skip=1 delims=" %%j in ('wmic bios get serialnumber') do (  
  set Seriennummer=%%j
  goto :DONE
)
:DONE
echo  Seriennummer=%Seriennummer%
CMD
for /F "skip=1 delims=" %j in ('wmic bios get serialnumber') do (  
  set Seriennummer=%j
  goto :DONE
)
:DONE
echo  Seriennummer=%Seriennummer%
Du siehst den Unterschied? Der code ist getestest sowohl in Batch auch als CMD (Admin REchte).

Gruß,
Peter
Newcomer603
Newcomer603 06.12.2020 um 19:14:07 Uhr
Goto Top
Vielen dank Peter jetzt leuchtet es mir wieder ein. Bei mir ist es schon ein bisschen her mit Batch Programmierung, da gab es noch Autoexec.bat und Config.sys. Da habe ich noch auswahlmenüs für dos geschrieben
Newcomer603
Newcomer603 06.12.2020 um 19:19:02 Uhr
Goto Top
Kann ich dir sagen, ich habe eine Batchdatei die ich gerne erweitern möchte und da geht Powerschell leider nicht.
Pjordorf
Pjordorf 06.12.2020 um 19:32:17 Uhr
Goto Top
Hallo,

Zitat von @Newcomer603:
Bei mir ist es schon ein bisschen her
Es ist wie mit Fahradfahren, man verlernt es nicht...

mit Batch Programmierung, da gab es noch Autoexec.bat und Config.sys. Da habe ich noch auswahlmenüs für dos geschrieben
Autoexec.bat und Config.sys gibt es auch heute noch, auch wenn nicht mehr so Intensiv genutzt wie zu der Prä-Windows Prä-Linux (Unix etc.) Zeit.

Gruß,
Peter
Newcomer603
Newcomer603 06.12.2020 um 20:34:42 Uhr
Goto Top
Ich glaube es ist bei mir zu lange her ich würde es gerne wieder auffrischen aber ich weiss noch nicht wie vielleicht kannst du mir da helfen?
Newcomer603
Newcomer603 06.12.2020 um 21:37:49 Uhr
Goto Top
ich habe jetzt viel versucht aber es gelingt mir einfach nicht er schreibt zwar den Computernamen in die csv datei aber keine Seriennummer.
Ich denke das kriege ich mit meinem halb wissen auch nicht hin und werde es darauf beruhen lassen.
trotzdem vielen dank für deine Hilfe.
Pjordorf
Pjordorf 06.12.2020 um 21:43:55 Uhr
Goto Top
Hallo,

Zitat von @Newcomer603:
ich habe jetzt viel versucht aber es gelingt mir einfach nicht er schreibt zwar den Computernamen in die csv datei aber keine Seriennummer.
Vielleicht gibt es keine Seriennummer. Ist manchmal einfach so. Auch wenn ein Medion Gerät eini Ausgibt, muss ein HP oder Lenovo oder ASUS es eben nicht. Frage beim unbekannten Hersteller mal an was er da macht.

Gruß,
Peter
Newcomer603
Newcomer603 06.12.2020 um 22:53:18 Uhr
Goto Top
Doch gibt es, er zeigt sie auch an aber es funktioniert nicht das er sie in eine csv datei kopiert.