internet2107
Goto Top

Powershell - Ordnerstruktur von Remote-PC

Ich möchte gerne für jede vorhandene Festplatte auf einem Remotesystem die darauf vorhadene Ordnerstruktur auslesen und auf meinen lokalen PC aufrufen.

Das macht er mit diesem Skript auch, theoretisch. Praktisch zeigt er mir aber "nur" die letzte Festplatte und Ordnerstruktur an.
Was ist hier falsch? Habe wohl irgendwie was auf den Augen face-sad

$computer = "server2017"  
$get_gci_remote = Invoke-Command -computer $computer -Credential $cred -ScriptBlock {
		$deviceID1 = (gwmi Win32_LogicalDisk | Select-Object DeviceID).DeviceID
		foreach ($device in $deviceID1)
		{ gci -Path "$device" } }  

$get_gci_remote | out-file "c:\temp\ausgabe.txt"  

Content-ID: 354820

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

Ausgedruckt am: 25.11.2024 um 09:11 Uhr

134464
134464 14.11.2017 um 22:01:11 Uhr
Goto Top
$computer = "server2017"  
Invoke-Command -computer $computer -Credential $cred -ScriptBlock {
		Return (gwmi Win32_LogicalDisk | %{gci $_.DeviceId})
} | out-file "c:\temp\ausgabe.txt"  
internet2107
internet2107 15.11.2017 um 04:45:47 Uhr
Goto Top
Guten Morgen @specht.

Danke für die Antwort. Jedoch bringt es leider nur dasselbe Ergebnis, wie mein Code oben. Es wird -warum auch immer- nur der Ordnerinhalt der letzten Platte des Systems ausgegeben.
internet2107
internet2107 15.11.2017 um 07:05:42 Uhr
Goto Top
Ich habe den Fehler. Warum auch immer, verbindet sich das "invoke-command" in einen Bereich, indem das Skript falsche Angaben liefert.
Gibt man jedoch erst an cd c:\
also im ganzen Code:

$computer = "server2017"  
Invoke-Command -computer $computer -Credential $cred -ScriptBlock {
cd c:\
Return (gwmi Win32_LogicalDisk | %{gci $_.DeviceId})
} | out-file "c:\temp\ausgabe.txt"  

kommt es zur richtigen Ausgabe. In jedem Fall sind beide unserer Codes richtig. Danke noch mal.
134464
134464 15.11.2017 um 07:32:48 Uhr
Goto Top
Kann ich nicht bestätigen.
colinardo
Lösung colinardo 15.11.2017 aktualisiert um 13:01:52 Uhr
Goto Top
Servus,
Ich habe den Fehler. Warum auch immer, verbindet sich das "invoke-command" in einen Bereich, indem das Skript falsche Angaben liefert.
eurer Problem ist die Angabe des Laufwerks im Get-ChildItem-Befehl, euch fehlt ein Backslash hinter der DeviceId face-wink!
$computer = "server2017"   
Invoke-Command -Cn $computer -Credential $cred -ScriptBlock {gwmi win32_LogicalDisk -Filter 'DriveType=3' | %{gci "$($_.DeviceId)\"}} | out-file "c:\temp\ausgabe.txt"   
Grüße Uwe