ARCHIVE

POPULAR

როგორ მივაბათ .pst ფაილები Desktop Outlook აპლიკაციას მომხმარებლის ჩარევის გარეშე

პოსტი ეძღვნება უმადურ ადამიანებს, რომლებიც შველას ითხოვენ სხვადასხვა ინტერნეტ-ჯგუფებში, ღებულობენ დახმარებას და შემდეგ სხვებს უმალავენ ინფორმაციას. ეს გზა, კოლეგებო, ჯოჯოხეთის გზაა :)

არსებობს ასეთი Powershell-სკრიპტი გამდიდრებული .Net-ის ელემენტებით:



$PSTPath = "C:\Users\username\Documents\Outlook Files\"

Add-type -assembly "Microsoft.Office.Interop.Outlook"

$outlook = new-object -comobject outlook.application

$namespace = $outlook.GetNameSpace("MAPI")

Get-ChildItem $PSTPath -Filter *.pst |

ForEach-Object {

    $namespace.AddStore($_.FullName)

}

რომელიც აძლევს მომხმარებელს საშუალებას უშუალოდ Outlook-ის გრაფიკულ ინტერფეისთან ინტერაქციის გარეშე მიიბას .pst ფაილ(ებ)ი Outlook-ის default Profile-ში, რომლებიც სკრიპტის $PSTPath Variable-ში მითითებულ ლოკაციაშია განლაგებული. მაგალითისთვის, სკრიპტში მოყვანილია .pst ფაილების განლაგების სტანდარტული გზა (შესაძლოა, აქ მიეთითოს ქსელური რესურსიც SMB Shared Folder-ის სახით). შევინახოთ სკრიპტის ტექსტი importPST.ps1 ფაილის სახით. 

მაგრამ, სისტემური ადმინისტრატორისთვის მნიშვნელოვანია, რომ იუზერთან ინტერაქციის გარეშე ქონდეს საშუალება logged on მომხმარების სახელით გაუშვას ზემოთ მოყვანილი სკრიპტი. ამ ამოცანის შესრულებაში დაგვეხმარება შემდეგი Powershell-სკრიპტი:

 $action = New-ScheduledTaskAction -Execute "powershell.exe" -Argument "-ExecutionPolicy Bypass C:\Users\username\Documents\importPST.ps1"

 $trigger = New-ScheduledTaskTrigger -AtLogOn

 $principal = New-ScheduledTaskPrincipal -UserId (Get-CimInstance –ClassName Win32_ComputerSystem | Select-Object -expand UserName)

 $task = New-ScheduledTask -Action $action -Trigger $trigger -Principal $principal

 Register-ScheduledTask ImportPSTs -InputObject $task

 Start-ScheduledTask -TaskName ImportPSTs

 Start-Sleep -Seconds 15

 Unregister-ScheduledTask -TaskName ImportPSTs -Confirm:$false

გავშიფროთ ზემოთ აღნიშნული სკრიპტი:

$action ცვლადი არეგისტრირებს Task Scheduler-ში importPST.ps1 სკრიპტს. "-ExecutionPolicy Bypass" ელემენტი აუცილებელი, რადგან კლიენტურ Windows-ებზე დეფოლტად ExecutionPolicy არის Restricted მდგომარეობაში.

$trigger ცვლადი არ საჭიროებს გაშიფრვას;

$principal ცვლადი ამ სკრიპტის ყველაზე მნიშვნელოვანი კომპონენტია. აქ მცირე ჯადოქრობით ვიღებთ Logged on იუზერს, რომლითაც უნდა გაეშვას Task-ი.

ვარეგისტრირებთ ImportPSTs ტასკს, რომელიც ერთჯერადად ეშვება და 15 წამში იშლება.

შეგიძლიათ ამ მეორე სკრიპტს დაარქვათ crete-schedule-task.ps1

GPMC.msc კონსოლში ქმნით Group Policy Object-ს (GPO)-ს User კონფიგურაციაში:

Configuration\Policies\Windows Settings\Scripts (Logon/Logoff)-ში 

უთითებთ crete-schedule-task.ps1 Powershell-სკრიპტს.

მომხმარებლის შემდეგი Logon-ისას Outlook-ში გაჩნდება საჭირო .pst ფაილები.

No comments

Post a Comment