Przejdź do końca metadanych
Przejdź do początku metadanych

Wyświetlasz starszą wersję (v. /wiki/spaces/KB/pages/10322003/Skrypty+systemowe) tej strony.

pokaż różnice pokaż historię strony

« Pokaż poprzednią wersję Wyświetlasz aktualną wersję tej strony. (v. 2) pokaż następną wersję »

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

 Archiwizacja profilu użytkownika Windows

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ć.

 Kliknij tutaj, aby rozwinąć...

  • Brak etykietek