我對用於管理用戶帳戶的PowerShell腳本存在幾個問題。當用戶在不同地點之間移動時,我們將他們的ADUser移動到一個新的OU中,並在服務器之間移動他們的數據。使用PowerShell啓動文件夾副本並繼續執行腳本
在研究如何複製其主文件夾時,確定沒有簡單的方法使用PowerShell複製文件並排除某些目錄。因此,我們調用robocopy.exe並使用/ XD。這也讓我們開始複製,但讓腳本繼續到下一個用戶。
我們正試圖通過根據用戶類型移動或刪除較舊的文件夾來增強我們的腳本。我創建了一個我想要調用的PS1文件,以便腳本可以立即繼續到下一個用戶,而不是等待副本完成。在PS1文件看起來像這樣:
Param(
[string]$source,
[string]$destination,
[string]$oldStaff
)
robocopy $source $destination
move $source $oldStaff
當我試圖從我們的腳本以下列方式調用此:
start powershell.exe .\Move-WCFolders.ps1 $source $destination $oldStaff
我收到以下錯誤信息:
開始 - 過程:無法找到位置參數,它接受 參數 '<%在發佈到堆棧溢出%>之前刪除了服務器名稱。在 行:1 char:1 + start powershell.exe。\ Move-WCFolders.ps1 $ source $說明 + ~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo:InvalidArgument:(:) [Start -Process],ParameterBindingException + FullyQualifiedErrorId:PositionalParameterNotFound,Microsoft.PowerShell.Commands.StartProcessCommand
我敢肯定,很可能有一個更好的方式來實現我所想要的目的。它不需要啓動robocopy或者不得不在外部腳本中調用事物,因此不覺得'乾淨'。最終目標是在排除目錄時複製文件夾,在完成複製時移動文件夾,但不必等待複製完成以繼續腳本。