我正在嘗試編寫一個腳本,該腳本會將當前位於「\ server \ share \%username%」中的所有用戶文檔移動到「\ server \ share \%username%\ Documents」 。
它還將檢查文檔文件夾是否存在,如果不存在,它將創建它。
將所有用戶文檔移動到子文件夾中
爲了測試這個工作,我已經打破了腳本來測試每個部分,並用寫主機替換了實際的命令,本節應該測試以查看文檔文件夾是否存在。
當我運行它並檢查用戶家庭文件夾是黃色突出顯示,一些用戶有一個文件夾和一些不,但它應該只突出顯示沒有文件夾黃色的文件夾。
$userhomes = Get-ChildItem "D:\" | where {$_.Attributes -like '*Directory*'}
foreach($userhome in $userhomes) {
$exclude = "Documents"
$movesource = "D:\" + $userhome.Name
$movedest = "D:\"+ $userhome.Name +"\Documents"
$autodest = "D:\"+ $userhome.Name +"\Documents"+"\Autorecovery"
$docexists = Test-Path $movedest
$autoexists = Test-Path $autodest
$Search = "OU=Users,DC=domain,DC=co,DC=uk"
$Users = Get-ADUser -Filter * -SearchBase $Search
$users | % {
# Check if Documents folder already exists
If ($docexists -eq $false)
{
# Create the Documents folder
# Get-Item -path $movesource | New-Item -ItemType Directory -Path "$movesource\Documents"
Write-Host Documents folder does not exists for ($_.SamAccountName) -ForegroundColor Yellow
}
else
{
Write-Host Documents folder already exists for ($_.SamAccountName) -ForegroundColor Red
}
}
}
後的文件夾已經創建,我想創建另一個文件夾,如果該文件夾不存在的屬性設置爲隱藏。
# Check if Autorecovery folder already exists
If ($autoexists -eq $false)
{
# Create the Autorecovery folder and set attributes
Get-Item -path $movesource | New-Item -ItemType Directory -Path "$movesource\Documents\Autorecovery" | %{$_.Attributes="hidden"}
Write-Host Documents and Autorecovery folder for ($_.SamAccountName) created -ForegroundColor Green
}
else
{
Write-Host Autorecovery folder already exists for ($_.SamAccountName) -ForegroundColor Red
}
一旦被排序然後我要檢查的文件夾路徑「\\服務器\共享\%USERNAME%\ Documents」文件夾存在。
如果確實如此,我希望將所有文檔從「%username%」文件夾移動到「Documents」文件夾,最後將AD主文件夾路徑更改爲指向新位置。
# Move Documents to new location
If ($docexists = $true)
{
Get-Childitem -path $movesource -exclude $exclude | Move-Item -Dest $movedest
# Set user new home folder path
Get-ADUser -Filter * -SearchBase $Search | Foreach-Object{
$sam = $_.SamAccountName
Set-ADuser -Identity $_ -HomeDrive "H:" -HomeDirectory "\\server\share\$sam\Documents"
}
else
{
Write-Host Documents folder does not exist for ($_.SamAccountName) -ForegroundColor Red
}
}
}
你已經包含了很多關於你的腳本(很棒!)的細節,但還沒有說明什麼是不起作用的。 –
對不起詹姆斯 我遇到的問題是,腳本說,用戶有一個文檔文件夾,當他們不,也是說用戶沒有一個文件夾,當他們有一個。 – lellis