Estou trabalhando para mover alguns arquivos de uma unidade física para outra em um grande grupo de servidores Windows 2012. As letras e os tamanhos das unidades são todos iguais nesses servidores. Basicamente, temos um compartilhamento em cada servidor e quero mover esses dados e compartilhá-los em outra unidade que tenha mais espaço livre. Estou tentando desenvolver um script para realizar o seguinte:
- Reduzir uma partição existente
- Crie e formate a nova partição usando o novo espaço livre
- Copiar arquivos de um compartilhamento / unidade existente para uma partição recém-criada
- Remova o compartilhamento da unidade existente (a unidade real está sendo compartilhada)
- Recrie o compartilhamento na nova unidade
- Atribuir nova unidade à letra da unidade atribuída à antiga.
- Registrar falhas
Este é o código que eu coloquei juntos. Como o título indica, não consigo fazer com que o New-SMBShare seja executado corretamente neste script. Eu não estou recebendo erros, mas a unidade não é compartilhada quando o script é concluído. Eu estou tentando executar o script de dentro do Powershell ISE e se eu executar o mesmo comando por conta própria, o compartilhamento é criado conforme o esperado. O que faria com que o comando falhasse quando executado dentro do script.
Eu também estou recebendo ocasionalmente o seguinte: Format-Volume : Cannot perform the requested operation when the drive is read only
Eu recebo isso de vez em quando quando eu corro isso, então eu não sei por que isso acontece intermitentemente. Parece quase que às vezes o comando anterior não foi concluído antes que o comando de formatação seja executado.
Por fim, também não tenho muita certeza sobre a melhor maneira de registrar qualquer erro ou até mesmo uma mensagem de sucesso. Eu considerei usar o Robocopy em vez do Copy-Item por esse motivo, mas se alguém souber uma boa maneira de fazer isso com o Copy-Item, eu gostaria de fazer aqui.
#Stopping service to prevent "Format Disk" dialog box from appearing on screen
Stop-Service ShellHWDetection
#Create New 90GB Partition from W Drive
Resize-Partition -DriveLetter W -Size (1772GB)
Get-Disk | where size -GT 1.5TB | New-Partition -UseMaximumSize -DriveLetter K
Get-Partition -DriveLetter K | Format-Volume -FileSystem NTFS -NewFileSystemLabel "PC_Images" -Confirm:$false
#Restart ShellHWDetection service
start-service ShellHWDetection
#Copy files from "I drive" PC_Images share to new partition
Copy-Item -Path I:\* -Destination K:\ -Recurse -erroraction silentlycontinue
#Remove existing PC_Images share and recreate on new partition
Get-SMBShare -Name PC_Images | Remove-SMBShare -Confirm:$False
New-SMBShare -Name PC_Images -Path K:\ -ChangeAccess Everyone
#Change drive letter on new share to I
Set-Partition -DriveLetter I -NewDriveLetter X
Set-Partition -DriveLetter K -NewDriveLetter I
Qualquer ajuda seria apreciada