ageers
Goto Top

POwershell in mehreren lokalen Userprofilen Verzeichnisse Löschen

Ich muss in mehreren lokalen Userprofilen Verzeichnisse Löschen

Hallo,

Ich muss in mehreren lokalen Userprofilen Unterverzeichnissee löschen und möchte das gerne per Powershell machen...

Ich weiss aber nicht wie:

Bin bei Powershell noch ein ziemlicher Anfänger:

Also folgendes habe ich schon:

get-Childitem -Path "c:\Dokumente und Einstellungen\" | Where-Objekt { $_.PSIsContainer } | ForEach-Object ....... Remove-Item -path ?????\Anwendungsdaten\ICA Client -recurse -force  
Wie ihr seht habe ich keinen Schimmer wie ich den Pfad der einzelnen Profilpfade an die zweite Pipe übergebe...

Hat da jemand ne Idee?

danke!

Ageers

Content-Key: 147159

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

Printed on: April 23, 2024 at 15:04 o'clock

Member: baez90
baez90 Jul 19, 2010 at 12:28:31 (UTC)
Goto Top
Hi,
bin zwar bei Powershell auch noch Noobi aber hast es mal über select-object probiert?
falls ich das richtig im Kopf hab könntest da evtl die User angeben, das an die nächste pipe übergeben und dann löschen
Member: Miyamoto
Miyamoto Jul 19, 2010 at 12:29:19 (UTC)
Goto Top
Hi,
du kannst das auch so machen:
foreach($i in (get-Childitem -Path "c:\Dokumente und Einstellungen\")){  
    [String]$temp=$i.FullName+"\Anwendungsdaten\ICA Client\"  
    if(Test-Path $temp){
        Write-Host "jup"  
        Remove-Item -path $temp -recurse -force
    } else {
        Write-Host "lol"  
    }
}

Gruß Miyamoto
Mitglied: 77559
77559 Jul 19, 2010 at 12:30:50 (UTC)
Goto Top
Hallo Ageers,

gci "C:\Dokumente und Einstellungen\*" | % {If ($_.PSIScontainer -AND (Test-Path "$_\Anwendungsdaten\ICA Client")) {Remove-Item -path "$_\Anwendungsdaten\ICA Client" -recurse -force -whatif } }  
  • gci und % sind Aliase für Get-ChildItem und Foreach-Object.
  • Zum Testen ob es das Vereichnis gibt, wird sowieso ein IF benötigt, dann kann da an Stelle der zusätzlichen Pipe-Stufe auch die Prüfung ob Verzeichnis rein.
  • Zur Sicherheit hängt am Remove-Item noch ein -whatif, wenn die Ausgabe stimmt, kann der weg.
  • Das übergebene Object (egal ob Where oder Foreach) referenzierst du mit $_ (Welche Methoden/Eigenschaften das hat, kannst du mit Get-Member rauskriegen)

Gruß
LotPings
Member: aGeers
aGeers Jul 19, 2010 at 15:30:05 (UTC)
Goto Top
hi,

DANKE!

Der beitrag von LotPings hat mir geholfen!

ok hab erst den Whatif Schalter übersehen...... War schon richtung Tischkante unterwegs.... face-smile


Es funktioniert super!

Ageers