各組織には、すべてのユーザーがアクセスできるユーザー間でデータを交換するためのネットワークリソースがあります。 ユーザー自身が「エクスチェンジ」内のフォルダーから一時ファイルを削除せず、リソースがスペースを占有し始めたらどうしますか?
チャレンジ:
1)レベル1までのディレクトリ構造を維持しながら、ネットワーク共有上のユーザーフォルダの自動クリーニング。 リソースのルートには、ユーザー名ごとのフォルダーがあります。
2)昨日のデータを「昨日」フォルダーに保存する(ユーザー権限は「読み取り専用」)。 これは、ユーザーが重要なドキュメントを昨日手に入れるのを忘れた場合です。
3)ログファイルのコピーエラー。 分析用。
4)別のサーバー\フォルダーで使用するためにスクリプトをすばやく再構成する機能。
ソースデータ:
1)// server / obmen上の「Exchange」ネットワークフォルダー、Dを見る:\ obmen
解決策:
PowerShellでは、標準ツールを使用してxml形式を操作できるため、この形式を使用して設定を保存します。
settings.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を割り当てます。
$acl = Get-Acl -path $acldir Set-Acl -Path $oldfolder -AclObject $acl
そのため、毎晩ユーザーの一時データをクリアし、物忘れの人のためにデータを収集する機会を残すスクリプトを入手しました。 また、コピーエラーを記録し、共有フォルダーに適応するための構成ファイルを持っています。
当然、スクリプトは都合の良いときにタスクスケジューラに追加する必要があります。 (ありがとう
ame )
UPD:フォルダ構造を再構築するプロセスが改善されました。