Skrypty systemowe

W LOG Plus udostępniamy listę gotowych skryptów, które można wykorzystać lub użyć jako podstawę i dostosować do swoich potrzeb.

Założenia

Skrypt pozwala na archiwizację wybranego profilu użytkownika. Archiwizacja polega na skompresowaniu profilu użytkownika zgodnie z zadanym filtrem, oraz umieszczenie go w określonej lokalizacji (również sieciowej)

Parametry domyślne: 

-userLogin -destinationDir

 

Treść skryptu

param([Parameter(Mandatory=$true)][string]$userLogin, [Parameter(Mandatory=$true)][string]$destinationDir ,[string]$filter = "(name = *.*)", [switch]$skipOnError) # Skrypt archiwizujący profil użytkownika # umożliwia skompresowanie profilu użytkownika zgodnie z zadanym filtrem, # oraz umieszczenie go w określonej lokalizacji (również sieciowej) # Parametry: # -userLogin - nazwa użytkownika w postaci: login , lub DOMENA\login # -destinationDir - katalog docelowy np. c:\ , lub \\192.168.1.1\backups # -filter - filtr określający jakie pliki mają być achiwizowane (domyślnie wszystkie) # szczegóły http://dotnetzip.herobo.com/DNZHelp/html/4469abe7-8fa4-101e-975d-305d2fd0affb.htm # np. "(name != *.mp3) and (name != *.avi)" - wyklucza pliki mp3 i avi # -skipOnError - pomiń pliki, których nie można dodać $a = [System.Reflection.Assembly]::LoadFrom([System.AppDomain]::CurrentDomain.BaseDirectory + "ext\Ionic.Zip.dll"); try { $ob = New-Object System.Security.Principal.NTAccount($userLogin) $sid = $ob.Translate([System.Security.Principal.SecurityIdentifier]) } catch { Write-Error "Unable to find user $userLogin" exit -2 } $regPath = 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\' + $sid $path = (Get-ItemProperty -path $regPath).profileImagePath $zipFile = $destinationDir + "\" +$userLogin.Replace('\','.') + (Get-Date).ToShortDateString() + ".zip" "Writing $path to $zipFile" try { $strWriter = new-object System.IO.StringWriter $zip = new-object Ionic.Zip.ZipFile $zip.UseZip64WhenSaving = [Ionic.Zip.Zip64Option]::AsNecessary if ($skipOnError) { $zip.StatusMessageTextWriter = $strWriter $zip.ZipErrorAction = [Ionic.Zip.ZipErrorAction]::Skip } $zip.AddSelectedFiles($filter, $path,"",$true) $zip.Save($zipFile) } finally { [System.Text.RegularExpressions.Regex]::Replace($strWriter.ToString(), "^adding.*$[\r\n]*", [String]::Empty, [System.Text.RegularExpressions.RegexOptions]::Multiline) $zip.Dispose() }

Parametry:

  • Wymagane:

    • userLogin - nazwa użytkownika w postaci: login, lub DOMENA\login,

    • destinationDir - katalog docelowy np. c:\ , lub \\192.168.1.1\backups,

  • Opcjonalne:

    • filter - filtr określający jakie pliki mają być achiwizowane (domyślnie wszystkie) np. "(name != *.mp3) and (name != *.avi)" - wyklucza pliki z rozszerzeniem mp3 i avi,

    • skipOnError - pomiń pliki, których nie można dodać.

 

 

 

 

 

 

logplus.io