Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

PC-Namen per Batch für Inventarisierung verwenden

Frage Entwicklung Batch & Shell

Mitglied: mag-lion

mag-lion (Level 1) - Jetzt verbinden

29.05.2007, aktualisiert 31.05.2007, 4889 Aufrufe, 5 Kommentare

Hallo,

folgende Problemstellung:

Hab ein Script, welches nach bestimmten Zeitintervallen überprüft, ob neue PCs hinzugekommen sind
bzw. ob PCs hardwaremäßig verändert wurden.

for %%x in (PCA1 PCA2 PCA3 PCA4 PCA5) do if %%x == %COMPUTERNAME% \SERVERinventur.cmd \SERVERPCs
for %%x in (PCB1 PCB2 PCB3 PCB4 PCB5) do if %%x == %COMPUTERNAME% \SERVERinventur.cmd \SERVERPCs

Wegen der steigenden Anzahl dieser wird das Script unübersichtlich. Sowohl in der Länge als auch Breite.
Eintrag erfolgt hier manuell und dann auch noch im AD.
Also ab jetzt nur noch im AD und dann lass ich mit "adfind" eine Datei mit allen PC-Namen erstellen.
Aber ich bekomme es nicht auf die Reihe, die an Stelle von ... PCA1 PCA2 ... einzusetzen.

Bitte um einen Hinweis.
(Ich glaub Pfingsten war zu lang )

Gruß
mag
Mitglied: Dani
29.05.2007 um 17:58 Uhr
Hallo mag-lion!
Könntest du noch posten, wie die Computernamen in der Datei gespeichert sind. Dann haben wir es beim Entwickeln einfacher.


Gruß
Dani
Bitte warten ..
Mitglied: mag-lion
30.05.2007 um 06:48 Uhr
Guten Morgen

@Dani
kennst du "adfind"? Habe es so eingepackt:
"cname.cmd"
adfind -b dc=dom,dc=local -f "objectcategory=computer" name | find /i ">name:" > aname.txt
for /f "tokens=2 delims= " %%i in ('type "aname.txt"') do echo %%i >> cname.txt
sort cname.txt /o cname.txt
del aname.txt
Bekomme dann folgende Datei:
"cname.txt"
PCA1
PCA2
PCA3
:
Gibt sicherlich noch ne bessere, sprich kürzere Lösung. Wer sie kennt, bitte posten.

Danke.

Gruß
mag
Bitte warten ..
Mitglied: Biber
31.05.2007 um 00:25 Uhr
Moin mag-lion,
Gibt sicherlich noch ne bessere, sprich kürzere Lösung.
Hmmm, oft ist "kürzer" auch "besser", aber nicht immer.
Befrage mal Frauen zu diesem Thema.

Was ich zumindest empfehlen würde ist, die Möglichkeiten des AdFind-Tools ein wenig mehr zu nutzen.
Allein schon wegen der Les- und Wartbarkeit Deines Dreizeilers.

Skizze (die Pfade zur Adfind.exe und Pfad zur Outputdatei hab ich uns geschenkt):
01.
::---------ADQuercheck.bat 
02.
@Echo off 
03.
adfind -b dc=Dom dc=local -f "objectcategory=computer" -list -sort name name >cname.txt 
04.
:: jetzt sollte die Liste so aussehen wie in Deinem bisherigen Skript 
05.
REM ...Die nächtes Codezeile hier versteh ich nicht... ? *Kopfkratz* 
06.
REM ...Falls der %COMPUTERNAME% in der Liste ist... ?  
07.
REM ...dann rufe <u>immer</u> diese Serverinventur.cmd ?? Kann nich' sein... 
08.
goto vergissdenQuatsch 
09.
REM ???? For /f %%x in (cname.txt) do if /i "%%x" == "%COMPUTERNAME%" \SERVERinventur.cmd \SERVERPCs 
10.
:vergissDenQuatsch
Also nochmal.... wenn die oben gepostete Logik stimmen sollte, dann reicht:

01.
::----MalWiederEinOneliner.bat 
02.
@adfind -b dc=Dom dc=local -f "objectcategory=computer" -list -sort name name |find /i "%COMPUTERNAME%" &&  \SERVERinventur.cmd \SERVERPCs
...wobei ich bei dieser Logik doch Zweifel habe, ob ich alles so nachvollziehen kann...
Bitte um Erläuterung.

Grüße
Biber
[Edit] Nachtrag.
Wenn die erzeugte Liste ohnehin per "find" gefiltert wird und gar nicht gespeichert wird, dann brauche ich auch die Parameter "...-sort name.." nicht. Weil: Is' sich Bullshit.

Somit etwas kürzer:
01.
::----MalWiederEinOneliner.bat 
02.
@adfind -b dc=Dom dc=local -f "objectcategory=computer" -list name |find /i "COMPUTERNAME%" &&  \\SERVERinventur.cmd \\SERVERPCs
[/Edit 1.6.2007]
Bitte warten ..
Mitglied: mag-lion
31.05.2007 um 15:10 Uhr
Moin mag-lion,
Moin Moin Biber,

Befrage mal Frauen zu diesem Thema.
später und allein

Was ich zumindest empfehlen würde ist,
die Möglichkeiten des AdFind-Tools ein
wenig mehr zu nutzen.
Ja, wer lesen kann...
Danke

REM ...Die nächtes Codezeile hier
versteh ich nicht... ? *Kopfkratz*
REM ...Falls der %COMPUTERNAME% in der Liste
ist... ?
REM ...dann rufe immer
diese Serverinventur.cmd ?? Kann nich'
sein...
goto vergissdenQuatsch
REM ???? For /f %%x in (cname.txt) do if /i
"%%x" == "%COMPUTERNAME%"
\SERVERinventur.cmd \SERVERPCs
:vergissDenQuatsch
</code>

Also nochmal.... wenn die oben gepostete
Logik stimmen sollte, dann reicht:

01.
::----MalWiederEinOneliner.bat 
02.
> @adfind -b dc=Dom dc=local -f 
03.
> "objectcategory=computer" -list 
04.
> -sort name name |find /i 
05.
> "%COMPUTERNAME%" &&  
06.
> \SERVERinventur.cmd \SERVERPCs 
07.
> 
...wobei ich bei dieser Logik doch Zweifel
habe, ob ich alles so nachvollziehen kann...
Bitte um Erläuterung.

Grüße
Biber

Doch doch, stimmt. Nicht Quatsch.
Hab nur nen kleinen bzw. zwei \\ vergessen
und zwar hier \\SERVER\inventur.cmd \\SERVER\PCs.
(Ich hoffe jetzt sind sie zu sehen?)

Erklärung:
Beim login jedes PCs wird ein Script ausgeführt. Dabei wird
anhand Datumsvergleich überprüft, ob 10 Tage um sind.
Wenn ja, dann soll, falls der %COMPUTERNAME% in der Liste
ist (und diese Einträge hab ich manuell ergänzt, je nach Eintrag
im AD) das Script "inventur.cmd" ausgeführt werden und das
Ergebnis nach \PCs schreiben.

Und...
Na klar
Habs gerade probiert.
Dein "::----MalWiederEinOneliner.bat" funktioniert.
*tralala* klappt wunderbar
d.h. manuelle Einträge entfallen ab sofort

Vielen vielen Dank

Gruß
mag


PS: Kann es sein, dass administrator.de heute überlaufen war???
Bitte warten ..
Mitglied: Biber
31.05.2007 um 15:28 Uhr
Moin mag,

freut mich, wenn es klappt.
Dann setze ich diesen Beitrag mal auf "Gelöst" und "Geschlossen".

PS: Kann es sein, dass administrator.de heute überlaufen war???
Hmmm, wenn ich Frank (=unser aller Webmaster) richtig verstanden habe,
hat sich heute morgen die Datenbank aufgehängt.
Seiner Meinung nach wegen eines defekten Speicherchips.
(Mein Verdacht: Kann auch eine Verzweiflungstat wegen der gestrigen Volcom-Beiträge gewesen sein.) *g

Na ja, niemand ist Volcom.....

Grüße
Biber
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Microsoft
Ordner mit LW-Buchstaben versehen und benennen (19)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...