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-Key: 354820

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

Printed on: April 25, 2024 at 09:04 o'clock

Mitglied: 134464
134464 Nov 14, 2017 at 21:01:11 (UTC)
Goto Top
$computer = "server2017"  
Invoke-Command -computer $computer -Credential $cred -ScriptBlock {
		Return (gwmi Win32_LogicalDisk | %{gci $_.DeviceId})
} | out-file "c:\temp\ausgabe.txt"  
Member: internet2107
internet2107 Nov 15, 2017 at 03:45:47 (UTC)
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.
Member: internet2107
internet2107 Nov 15, 2017 at 06:05:42 (UTC)
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.
Mitglied: 134464
134464 Nov 15, 2017 at 06:32:48 (UTC)
Goto Top
Kann ich nicht bestätigen.
Member: colinardo
Solution colinardo Nov 15, 2017 updated at 12:01:52 (UTC)
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