ralus67
Goto Top

Umbenennen der Arbeitsstationen

Hallo Community

Ich habe folgende Frage.

Ich habe diverse Maschinen, welche umbenannt werden müssen.

Dazu habe ich mir ein kleiner Skript vorbereitet

wmic computersystem where name="%computername%" call rename name="d%computername%"

Die Maschinen Namen lauten z.B BERWS101
BER=Berlin
WS=Workstation
101=Aufzählung

Mit dem obenerwähnten Skript würde die Maschine auf DBERWS101 unbenannt werden.

D=Developer

Nun möchte ich das ein bisschen schöner Darstellen. Der Name sollte lauten BERDWS101

Quasi, Berlin, Developer, Workstation, Aufzählung

Wie kann ich von der Variable %Computername% die ersten drei Buchstaben BER in eine separate Variable, dann die nächsten beiden Buchstaben WS in eine weitere Variable und die Aufzählung in eine dritte Variable setzen?

Meine Idee Wäre dann, denn namen wie folgt zusammen zu setzen.
wmic computersystem where name="%computername%" call rename name="%Var1%D%Var2%Var3"

Wäre sowas möglich?

Content-ID: 42437551316

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

Ausgedruckt am: 19.11.2024 um 04:11 Uhr

12168552861
12168552861 28.03.2024 aktualisiert um 09:08:00 Uhr
Goto Top
echo %computername:~0,3%D%computername:~3,2%%computername:~5%
DOS - String Manipulation

Btw. Die where Filterung im Befehl ist überflüssig, die Maschine benennt sich eh selbst um keine andere.

Wieso noch Batch?

Rename-Computer

Rename-Computer -NewName ($env:Computername -replace '^.{3}','$0D')  
StefanKittel
StefanKittel 28.03.2024 aktualisiert um 09:12:38 Uhr
Goto Top
Moin,

Zitat von @puderpader:
Btw. Die where Filterung im Befehl ist überflüssig, die Maschine benennt sich eh selbst um keine andere.

Man macht das immer so bei solchen Abfragen um sicher zu gehen, dass man A den richtigen Datensatz in den Fingern hat und B dieser Datensatz den erwarteten Wert hat. Das ist eine Prinzipsache. Wen man das immer weglässt wenn es nicht relevant ist, vergisst man es irgendwan mal wo es relevant war. Dann hat man auf einmal 10.000 Datensätze die alle gleich sind face-smile

Ja, hier ist es nicht relevant weil der Vergleich ein Zirkelbezug ist.

Ja, ich würde es auch eher per PS machen.

Ich würde aber auch den Namen anders Formatieren - DEV-DE-BER01_WS101
Es kann ja sein, dass es mal mehr Standorte in Berlin gibt.

Stefan
kreuzberger
kreuzberger 28.03.2024 um 10:09:31 Uhr
Goto Top
Hallo Nachbar @Ralus67

ich hatte nachdem ich Elses Computer, DruckerPC und FranksPC im Netz weitreichend fand auch umgestellt. Da nahm ich dann mangels anderer Nummern einfach das Kaufdatum rückwärts. Das half mir dann nebenher dazu den Rechner rechtzeitig auszumustern (wenn es nicht eh schon zu spät war).

man hat 15 Zeichen frei, also:
2 Zeichen für Standort
2 Zeichen für was (NB NoteBook, PC StandPC, WS Wirkstation, etc...)
Kaufdatum 20240328
Und wenn man mal 5 Notebooks an einem Tag kaufte an das Datum noch A, B, C, .... hinten anfügen.

Kreuzberger
5388706050
5388706050 28.03.2024 aktualisiert um 10:39:10 Uhr
Goto Top
Moin,

Man macht das immer so [...]

...hat mich getriggert :P

Um das wmic-Kommando auf einem anderen Gerät anzuwenden, ist imho dessen "/node:"-Parameter notwendig - die CIM-Eigenschaft "Name" hat keinerlei Bezug zur Auswahl des Zielgeräts.
Die "Name"-Eigenschaft der lokalen Win32_ComputerSystem-Instanz hat immer denselben Wert wie die Umgebungsvariable %COMPUTERNAME% - die Bedingung ist also stets erfüllt.
Lange Rede, kurzer Sinn: wmic wendet die Aktionen ohne /node:-Parameter stets auf's lokale Gerät an, was die Bedingung - wie @puderpader bereits angemerkt hat - überflüssig macht; da steht quasi immer "where 1=1"...

Viel Erfolg!