рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрдЧрдарди рдХреЗ рдкрд╛рд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдмреАрдЪ рдбреЗрдЯрд╛ рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдиреЗрдЯрд╡рд░реНрдХ рд╕рдВрд╕рд╛рдзрди рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╕рднреА рдХреА рдкрд╣реБрдВрдЪ рд╣реЛрддреА рд╣реИред рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрд╡рдпрдВ "рдПрдХреНрд╕рдЪреЗрдВрдЬ" рдореЗрдВ рдЕрдкрдиреЗ рдлрд╝реЛрд▓реНрдбрд░реНрд╕ рд╕реЗ рдЕрд╕реНрдерд╛рдпреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдирд╣реАрдВ рд╣рдЯрд╛рддреЗ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ рдФрд░ рд╕рдВрд╕рд╛рдзрди рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЬрдЧрд╣ рд▓реЗрдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИ?
рдЙрджреНрджреЗрд╢реНрдп:
1) рд╕реНрддрд░ 1 рддрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдмрдирд╛рдП рд░рдЦрддреЗ рд╣реБрдП рдПрдХ рдиреЗрдЯрд╡рд░реНрдХ рд╢реЗрдпрд░ рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдлрд╝реЛрд▓реНрдбрд░реЛрдВ рдХреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╕рдлрд╛рдИред рд╕рдВрд╕рд╛рдзрди рдХреЗ рдореВрд▓ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рд╕реЗ рдлрд╝реЛрд▓реНрдбрд░ рд╣реИрдВред
2) "рдХрд▓" тАЛтАЛрдлрд╝реЛрд▓реНрдбрд░ (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдзрд┐рдХрд╛рд░ "рдХреЗрд╡рд▓ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП") рдореЗрдВ рдкрд┐рдЫрд▓реЗ рджрд┐рди рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдХреА рдмрдЪрддред рдпрд╣ рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реИ рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд▓ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд▓реЗрдирд╛ рднреВрд▓ рдЧрдпрд╛ред
3) рд▓реЙрдЧрд┐рдВрдЧ рдлрд╛рдЗрд▓ рдХреЙрдкреА рдПрд░рд░ред рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдПред
4) рдХрд┐рд╕реА рдЕрдиреНрдп рд╕рд░реНрд╡рд░ \ рдлрд╝реЛрд▓реНрдбрд░ рдкрд░ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред
рд╕реНрд░реЛрдд рдбреЗрдЯрд╛:
1) // / рд╕рд░реНрд╡рд░ рдкрд░ рдиреЗрдЯрд╡рд░реНрдХ рдлрд╝реЛрд▓реНрдбрд░ "рдПрдХреНрд╕рдЪреЗрдВрдЬ", рдЬреЛ D: \ obmen рдХреЛ рджреЗрдЦрддрд╛ рд╣реИ
рд╕рдорд╛рдзрд╛рди:
PowerShell рдЖрдкрдХреЛ рдорд╛рдирдХ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ xml рдкреНрд░рд╛рд░реВрдк рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ред xml
<?xml version="1.0"?> <settings> <MainDir>D:\obmen</MainDir> <OldDir> D:\obmen \</OldDir> <NameOldDir></NameOldDir> <ShareName>Obmen</ShareName> <AclDir>D:\acl</AclDir> <service>test_service_1</service> <service>test_service_2</service> </settings>
Clearshare.ps1 рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реА рдЪреАрдЬрд╝ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╣реИ:
[xml]$settings = Get-Content D:\ps_project\\settings.xml $mainfolder = $settings.settings.MainDir # $oldfolder = $settings.settings.OldDir # $services = $settings.settings.service #, $ShareName = $settings.settings.sharename # $NameOldDir = $settings.settings.NameOldDir # $acldir = $settings.settings.AclDir # acl
рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рд╛рдЭрд╛ рд╕рдВрд╕рд╛рдзрди рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдХреЗ рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рддреНрд░реЛрдВ рдХреЛ рдмрдВрдж рдХрд░реЗрдВ:
$share = Get-WmiObject Win32_Share | where {$_.name -eq $ShareName} $share.delete()
рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░рдирд╛ рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╕реЗрд╡рд╛рдУрдВ рдХреА рд╕реВрдЪреА рд╕реЗрдЯрд┐рдВрдЧ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИ, рдмрдврд╝ рд╕рдХрддреА рд╣реИред
stop-service -DisplayName $services
рд╣рдо рдХрд▓ рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рддреЗ рд╣реИрдВ, рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ:
Remove-Item "$oldfolder\*" -Recurse -Force 2> "$mainfolder\remove_error_log.txt"
рд╣рдо рдХрд▓ рдХреЛ рдХрд▓ рдкрд░ рд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рдХрд▓ рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рдЫреЛрдбрд╝рдХрд░:
Get-ChildItem $mainfolder -Exclude $NameOldDir | Move-Item -destination $oldfolder 2> "$mainfolder\move_error_log.txt"
рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдлрд╝реЛрд▓реНрдбрд░ рд╕рдВрд░рдЪрдирд╛ рдмрдирд╛рдПрдБ:
foreach ($foldname in Get-ChildItem $oldfolder | where {$_.Attributes -eq 'Directory'}) { $a = $mainfolder + "\" + $foldname.name; New-Item -type directory -path $a }
рд╣рдо рд╕реЗрд╡рд╛рдУрдВ рдХреА рдЯреАрдо рдХреЛ рдЪрд╛рд▓реВ рдХрд░рддреЗ рд╣реИрдВ
start-service -DisplayName $services
рдЧреЗрдВрдж рдХреЛ рдЪрд╛рд▓реВ рдХрд░реЗрдВ
$share = [wmiClass] 'Win32_share' $share.Create($mainfolder, $ShareName, "0", "1000")
рд╕рдВрджрд░реНрдн рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗ рдХреЙрдкреА рдХрд░рдХреЗ рдХрд▓ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдФрд░ FullControl рдХреЗ рд▓рд┐рдП READ рдЕрдзрд┐рдХрд╛рд░ рдЕрд╕рд╛рдЗрди рдХрд░реЗрдВ:
$acl = Get-Acl -path $acldir Set-Acl -Path $oldfolder -AclObject $acl
рдЗрд╕рд▓рд┐рдП, рд╣рдореЗрдВ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдорд┐рд▓реА рд╣реИ рдЬреЛ рдЦреБрдж рдХреЛ рд╣рд░ рд░рд╛рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдЕрд╕реНрдерд╛рдпреА рдбреЗрдЯрд╛ рдХреЛ рд╕рд╛рдлрд╝ рдХрд░ рджреЗрдЧреА, рдФрд░ рднреБрд▓рдХреНрдХрдбрд╝ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдПрдХрддреНрд░ рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдЫреЛрдбрд╝ рджреЗрдЧрд╛ред рдпрд╣ рднреА рдХреЙрдкреА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд▓реЙрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХрд┐рд╕реА рднреА рд╕рд╛рдЭрд╛ рдХрд┐рдП рдЧрдП рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рдЕрдиреБрдХреВрд▓ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рд╣реИред
рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЖрдкрдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╕рдордп рдкрд░ рдХрд╛рд░реНрдп рд╢реЗрдбреНрдпреВрд▓рд░ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред (
рд╕рд╛рднрд╛рд░ рдЕрдореЗ )
UPD: рдлрд╝реЛрд▓реНрдбрд░ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг
рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред