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-ID: 147159

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

Ausgedruckt am: 14.11.2024 um 03:11 Uhr

baez90
baez90 19.07.2010 um 14:28:31 Uhr
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
Miyamoto
Miyamoto 19.07.2010 um 14:29:19 Uhr
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
77559
77559 19.07.2010 um 14:30:50 Uhr
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
aGeers
aGeers 19.07.2010 um 17:30:05 Uhr
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