Top-Themen

Aktuelle Themen (A bis Z)

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

Partitionen entfernt auslesen

Frage Entwicklung Batch & Shell

Mitglied: zeusplanet

zeusplanet (Level 1) - Jetzt verbinden

05.09.2014 um 10:22 Uhr, 687 Aufrufe, 9 Kommentare

Guten Morgen zusammen,

ich benötige alle lokalen Partitionen von allen Servern, welche dann am Besten pro Server in eine Variable geschrieben werden soll.
Hier stecke ich leider fest:

01.
for /F "delims=" %%i in ("!serverlist!") do for %%A in (%%i) do "%tools%\psexec.exe" /accepteula \\%%A -u %domain%\%user% -p %password% -h cmd /c for /F "tokens=2 delims==" %%d in ('wmic logicaldisk where "drivetype=3" get name /format:value') do echo %%d
Das echo ist übrigens erst einmal nur ein Test.

Problem bis dato: Bei den 2008er Server funktioniert obige Anforderung. Beim 2003er Server hängt psexec einfach. Cursor blinkt fröhlich. Es geht nicht weiter. Gibt es eine bessere Möglichkeit?
Und wie bekomme ich die Partitionen dann in eine Variable rein, dass da nachher "C:,D:,E:" drin steht?

Dank und schöne Grüße
Mitglied: colinardo
05.09.2014 um 11:06 Uhr
Moin,
machs doch mit einem VBS-Script:
01.
Dim strPathComputers, strPathLog, fso, objLog, arrComputers, objWMI, colDrives,drive, strAllDrives 
02.
strPathComputers = "C:\temp\computers.txt" 
03.
strPathLog = "C:\temp\ergebnis.txt" 
04.
 
05.
Set fso = CreateObject("Scripting.Filesystemobject") 
06.
Set objLog = fso.OpenTextFile(strPathLog,2,True) 
07.
arrComputers = Split(fso.OpenTextFile(strPathComputers,1).ReadAll(),vbNewLine) 
08.
For i = 0 To UBound(arrComputers) 
09.
	If arrComputers(i) <> "" Then	 
10.
		Set objWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & arrComputers(i) & "\root\cimv2")  
11.
		Set colDrives = objWMI.ExecQuery("Select * from Win32_LogicalDisk Where Drivetype=3")  
12.
		If colDrives.Count > 0 Then 
13.
			strAllDrives = "" 
14.
		   	For Each drive In colDrives 
15.
		   		strAllDrives = strAllDrives & drive.Name & "," 
16.
		   	Next 
17.
		   	strAllDrives = Left(strAllDrives, Len(strAllDrives)-1) 
18.
		   	objLog.WriteLine arrComputers(i) & "=" & strAllDrives 
19.
		End If 
20.
	End If 
21.
Next 
22.
objLog.Close 
23.
Set objLog = Nothing 
24.
Set fso = Nothing
Grüße Uwe
Bitte warten ..
Mitglied: zeusplanet
05.09.2014 um 11:34 Uhr
Hi Uwe,

Danke dafür erst einmal, aber das wollte ich eben umgehen.
Ich will, dass das Ganze in einem Batch-Skript abgearbeitet wird.

Vielleicht hat jemand noch eine andere/weitere Lösung?

Grüße
Bitte warten ..
Mitglied: colinardo
05.09.2014, aktualisiert um 11:52 Uhr
Zitat von zeusplanet:
Danke dafür erst einmal, aber das wollte ich eben umgehen.
gib es einen bestimmten Grund ?
Ich will, dass das Ganze in einem Batch-Skript abgearbeitet wird.
Vielleicht hat jemand noch eine andere/weitere Lösung?
dann machs doch ohne PSEXEC mit dem Node-Parameter von WMIC:
01.
for /F "delims=" %%a in ("!serverlist!") do @( 
02.
	set drives= 
03.
	for /F "tokens=2 delims==" %%b in ('wmic /node:%%a logicaldisk where drivetype^=3 get name /format:List ^|findstr /ir "^Name"') do @( 
04.
			if not defined drives (set drives=%%b) else (set drives=!drives!,%%b) 
05.
06.
	echo Auf Server '%%a' sind folgende Laufwerke vorhanden: !drives! 
07.
)
Bitte warten ..
Mitglied: zeusplanet
05.09.2014 um 12:13 Uhr
Hi Uwe,

den Grund hatte ich schon genannt. Dass der Grund für den Einen oder Anderen unter Umständen nicht aussreicht, ist mir bewusst. Geschmäcker sind eben verschieden. Ich würde es "schön" finden, wenn sich das eben einfach mit einen paar batch Zeilen lösen lässt.

Danke für deinen Vorschlag, dann müsste ich das Skript aber lokal auf jedem Server ausführen, oder sehe ich das jetzt falsch? Das passt nicht zum vorhandenen Skript-Stil.

MfG
Bitte warten ..
Mitglied: colinardo
05.09.2014, aktualisiert um 12:59 Uhr
den Grund hatte ich schon genannt.
wo ?
Geschmäcker sind eben verschieden.
kein Problem
Zitat von zeusplanet:
Danke für deinen Vorschlag, dann müsste ich das Skript aber lokal auf jedem Server ausführen, oder sehe ich das
jetzt falsch?
nein musst du nicht, denn hier wird ja der NODE Parameter von WMIC verwendet der die Server Remote übers Netz abfragt ! Der Useraccount der das Script ausführt muss natürlich entsprechende Rechte auf den Servern besitzen, aber das sollte klar sein.
Bitte warten ..
Mitglied: zeusplanet
10.09.2014 um 10:20 Uhr
Guten Morgen Uwe,

sagte ich doch. Gründe (Ich will, dass das Ganze in einem Batch-Skript abgearbeitet wird.) sind für manche ausreichend, für andere wiederrum nicht.

Ich habe dein Skript mal eins zu eins in eine neue Batch abgelegt. Als Ausgabe bekomme ich wohl aber nur das Laufwerk vom ersten Server:

01.
for /F "delims=" %a in ("!serverlist!") do @( 
02.
set drives= 
03.
 for /F "tokens=2 delims==" %b in ('wmic /node:%a logicaldisk where drivetype=3 
04.
get name /format:List |findstr /ir "^Name"') do @(if not defined drives (set dri 
05.
ves=%b )  else (set drives=!drives!,%b ) ) 
06.
 echo Auf Server '%a' sind folgende Laufwerke vorhanden: !drives! 
07.
08.
,E: Server 'TS01,FS01,SERVER02' sind folgende Laufwerke vorhanden: C: 
09.
 
10.
pause 
11.
Drücken Sie eine beliebige Taste . . .
Was stimmt da noch nicht?
Bitte warten ..
Mitglied: colinardo
10.09.2014, aktualisiert um 10:35 Uhr
Moin,
Zitat von zeusplanet:
Ich habe dein Skript mal eins zu eins in eine neue Batch abgelegt. Als Ausgabe bekomme ich wohl aber nur das Laufwerk vom ersten
das war ja nicht als vollständiges Script zu sehen, denn deine Variable !serverlist! ist dort ja gar nicht deklariert !
Und von wegen 1zu1 kopiert !!! Da stimmt so einiges bei dir nicht was aber in meinem geposteten Script vorhanden ist ! Schau mal bitte ganz genau hin... (z.B. die Laufvariablen nicht mit doppelten Prozentzeichen versehen dann ein fehlendes ^ etc...)

Hast du überhaupt setlocal ENABLEDELAYEDEXPANSION in deinem Script ?

Mein Script läuft hier einwandfrei.

Ansonsten sind die Firewalls der Server nicht für den Remotezugriff konfiguriert.
Bitte warten ..
Mitglied: zeusplanet
10.09.2014 um 10:50 Uhr
Hätte ich dazu schreiben sollen. Natürlich steht das drin. Hoppla, war etwas unausführlich. Bin im Stress.
Und ja, ich kann die Server per WMI abfragen. Nutze ja auch andere Abfragen.

Hier der 100%ige Inhalt der Batch-Datei:

01.
setlocal enabledelayedexpansion 
02.
set serverlist=TS01,FS01,SERVER02 
03.
 
04.
for /F "delims=" %%a in ("!serverlist!") do @( 
05.
	set drives= 
06.
	for /F "tokens=2 delims==" %%b in ('wmic /node:%%a logicaldisk where drivetype^=3 get name /format:List ^|findstr /ir "^Name"') do @( 
07.
			if not defined drives (set drives=%%b) else (set drives=!drives!,%%b) 
08.
09.
	echo Auf Server '%%a' sind folgende Laufwerke vorhanden: !drives! 
10.
11.
pause
Bitte warten ..
Mitglied: colinardo
10.09.2014, aktualisiert um 10:55 Uhr
Bei !serverlist! ging ich vom Pfad einer Textdatei aus in dem die Server untereinander stehen ...
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Partitionen auslesen
gelöst Frage von TlBERlUSBatch & Shell2 Kommentare

Hi Zusammen, ich probiere mich momentan an der Powershell, stoße momentan leider auf das Problem, dass sich mein Skript ...

Windows 7
Windows entfernt selbstständig Druckeranschluss
Frage von 113320Windows 7

Hallo, bei mir und vielen weiteren Usern ist es vorgekommen (Domäne), dass ein bestimmter, erstellter Druckeranschluss immer nach einem ...

Windows Server
Teamviewer am entfernten Rechner.
Frage von DeathNoteWindows Server6 Kommentare

Hallo. Ich versuche mich gerade an einem Rechner per TV zu verbinden. Auf dem Rechner ist Server 2016Std installiert. ...

ISDN & Analoganschlüsse
Verteilerkasten, wie bekomme ich die Kabel entfernt
gelöst Frage von ProtectedISDN & Analoganschlüsse9 Kommentare

Sehr geehrte Damen und Herren, ich würde gerne auf der rechten Seite die Kabel vertauschen. Das Problem ist nur, ...

Neue Wissensbeiträge
Apple

IOS 11.2.1 stopft HomeKit-Remote-Lücke

Tipp von BassFishFox vor 13 StundenApple

Das Update für iPhone, iPad und Apple TV soll die Fernsteuerung von Smart-Home-Geräten wieder in vollem Umfang ermöglichen. Apple ...

Windows 10

Windows 10 v1709 EN murkst bei den Regionseinstellungen

Tipp von DerWoWusste vor 18 StundenWindows 10

Dieser kurze Tipp richtet sich an den kleinen Personenkreis, der Win10 v1709 EN-US frisch installiert und dabei die englische ...

Webbrowser

Kein Ton bei Firefox Quantum über RDP

Tipp von Moddry vor 18 StundenWebbrowser

Hallo Kollegen! Hatte das Problem, dass der neue Firefox bei mir auf der Kiste keinen Ton hat, wenn ich ...

Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 1 TagInternet4 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registrierung von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Heiß diskutierte Inhalte
Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server18 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

Windows XP
Windows XP Aktivieren geht nicht
Frage von tetikmiroWindows XP13 Kommentare

Hallo Ich habe einen Windows XP mit einen vCenter Converter umgezogen auf eine ESXI. Soweit funktioniert dies auch ohne ...

Blogs
Immer wiederkehrende PHP Fehlermeldung bei Wordpress UTF-8 - ASCII
gelöst Frage von vcdweltBlogs11 Kommentare

Hi, seit einiger Zeit wird mein error_log meines Wordpress Blogs mit immer der gleichen Fehlermeldung überschwemmt. 14-Dec-2017 08:18:05 UTC ...

Switche und Hubs
Redundante L2 LWL Leitung über 2 Standorte - Spanning Tree - HP Equipment
gelöst Frage von ResolvSwitche und Hubs10 Kommentare

Hallo, ich stehe vor der Herausforderung eine Redundante L2 LWL Leitung über 2 Standorte herzustellen. Grundsätzliches Switching Know How ...