29 lines
1.1 KiB
PowerShell
29 lines
1.1 KiB
PowerShell
$ErrorActionPreference='Stop'
|
|
$path='C:\Backups\TPS-SERVER'
|
|
New-Item -ItemType Directory -Path $path -Force | Out-Null
|
|
|
|
# SMB share granting the old server's machine account + Domain Admins
|
|
if(Get-SmbShare -Name 'TPSBackup' -ErrorAction SilentlyContinue){
|
|
Write-Host "share TPSBackup already exists"
|
|
} else {
|
|
New-SmbShare -Name 'TPSBackup' -Path $path -FullAccess 'TPS\Domain Admins','TPS\TPS-SERVER$' -CachingMode None | Out-Null
|
|
Write-Host "created share TPSBackup"
|
|
}
|
|
|
|
# NTFS ACL: SYSTEM, Administrators, Domain Admins, TPS-SERVER$ full control
|
|
$acl = Get-Acl $path
|
|
foreach($id in @('TPS\Domain Admins','TPS\TPS-SERVER$','BUILTIN\Administrators','NT AUTHORITY\SYSTEM')){
|
|
try {
|
|
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule($id,'FullControl','ContainerInherit,ObjectInherit','None','Allow')
|
|
$acl.AddAccessRule($rule)
|
|
} catch { Write-Host "acl skip $id : $_" }
|
|
}
|
|
Set-Acl -Path $path -AclObject $acl
|
|
|
|
"==== RESULT ===="
|
|
Get-SmbShare -Name TPSBackup | Format-List Name,Path,FullAccess | Out-String
|
|
"UNC: \\TPS-SVR\TPSBackup"
|
|
$v=Get-Volume -DriveLetter C
|
|
"Target free space GB: $([math]::Round($v.SizeRemaining/1GB,1))"
|
|
"==== DONE ===="
|