Wissen/X01_Technology_FileSystem.ps1
# ? TITEL Dateisystem # ? DESCRIPTION Arbeiten mit Ordner & Dateien (PSProvider FileSystem) # ? TAGS FileSystem IO ACL OneDrive Tmp FreeSpace Hash SpecialFolder # ? VERSION 2019.09.20 #region Vertiefende Informationen Get-Command -Noun Item, ItemProperty, ItemPropertyValue, Acl, Path -Module Microsoft.PowerShell.* Get-Help -Name about_Locations -ShowWindow Get-Help -Name about_Path_Syntax -ShowWindow Get-Help -Name about_Providers -ShowWindow #endregion #region Allgemeine Dateioperationen New-Item -Path c:\temp\NeueDatei.txt -ItemType File New-Item -Path "c:\temp\Neuer Ordner" -ItemType Directory Remove-Item -Path c:\temp\NeueDatei.txt #endregion #region ACL Informationen eines Objektes anzeigen Get-Acl -Path C:\Windows | Format-List -Property * #endregion #region Vererbung aktivieren / deaktivieren $aclObjekt = Get-Acl -Path C:\Temp $aclObjekt.SetAccessRuleProtection($true, $false) # isProtected, preserveInheritance Vererbung aktivieren #endregion #region ACL auf ein anderes Objekte übetragen Set-Acl -AclObject $aclObjekt -Path c:\OrdnerB #endregion #region Auf allen FileSystem-Laufwerken suchen Get-PSDrive -PSProvider FileSystem | Select-Object -ExpandProperty Root | Get-ChildItem -Force -File -ErrorAction Ignore #endregion #region Zusätzliche Informationen zu einer Datei anzeigen Get-ChildItem -Path c:\temp -File | Select-Object -Property Name, Length, @{Label="Owner"; Expression={ $_ | Get-Acl | Select-Object -ExpandProperty Owner }} #endregion #region Belegter / Freier Speicher der Festplatten anzeigen Get-PSDrive -PSProvider FileSystem #endregion #region Hash einer Datei berechnen Get-FileHash -Path C:\Windows\explorer.exe #endregion #region Doppelte Dateien finden $a = Get-ChildItem -Path C:\temp\A | Get-FileHash -Algorithm SHA512 $b = Get-ChildItem -Path C:\temp\B | Get-FileHash -Algorithm SHA512 Compare-Object -ReferenceObject $a -DifferenceObject $b -Property Hash -PassThru #endregion #region Dateien- / Ordner auf Veränderung überwachen $fsw = New-Object -TypeName System.IO.FileSystemWatcher $fsw.Path = "c:\temp" $fsw.Filter="*.txt" $action = { "Dateiänderung: {0} {1}" -f $eventArgs.FullPath, $eventArgs.ChangeType | Write-Warning } Register-ObjectEvent -InputObject $fsw -EventName Created -Action $action -SourceIdentifier FileSystemWatcher_Create Register-ObjectEvent -InputObject $fsw -EventName Deleted -Action $action -SourceIdentifier FileSystemWatcher_Deleted Get-EventSubscriber Unregister-Event -SourceIdentifier FileSystemWatcher_Create -Force Unregister-Event -SourceIdentifier FileSystemWatcher_Deleted -Force #endregion #region Netzwerk-Freigabe erstellen New-SmbShare -Name Data -Path C:\Windows Remove-SmbShare -Name Data -Confirm:$false #endregion #region Eine temporäre Datei erstellen $tmpFile = New-TemporaryFile $tmpFile #endregion #region Den tatsächlich Ort von Spezial-Ordner lokalisieren [Environment]::GetFolderPath([System.Environment+SpecialFolder]::DesktopDirectory) # * ODER SO Join-Path -Path $env:USERPROFILE -ChildPath Desktop $env:ALLUSERSPROFILE $env:APPDATA $env:CommonProgramFiles $env:HOMEDRIVE $env:LOCALAPPDATA $env:OneDrive $env:Path $env:ProgramData $env:ProgramFiles ${env:ProgramFiles(x86)} $env:ProgramW6432 $env:PSModulePath $env:SystemRoot $env:TMP $env:USERPROFILE $env:windir #endregion #region Zugriff auf OneDrive Install-Module -Name OneDrive -Scope CurrentUser -AllowClobber -Force Start-Process https://apps.dev.microsoft.com/?referrer=https%3A%2F%2Fdev.onedrive.com#/appList $auth = Get-ODAuthentication -ClientID "00000000....." $accessToken = $auth.access_token # ODER Start-Process https://dev.onedrive.com/auth/msa_oauth.htm $accessToken = "EwAoA61DBAAUGCCXc..." Add-ODItem -LocalFile (Join-Path -Path $env:USERPROFILE -ChildPath "Desktop\PowerShell V.5.12.ps1") -Path "/Wissen/PowerShell" -AccessToken $accessToken #endregion |