Add
-WindowsFeature
-Name
FS
-Data
-Deduplication
,FS
-DFS
-Replication
,FS
-Resource
-Manager
Install
-WindowsFeature
RSAT
-DFS
-Mgmt
-Con
Install
-WindowsFeature
FS
-DFS
-Namespace
, FS
-DFS
-Replication
, RSAT
-DFS
-Mgmt
-Con
disable
-WindowsOptionalFeature
-Online
-FeatureName
smb1protocol
Import
-Module
Deduplication
Enable
-DedupVolume
D:
Set
-Dedupvolume
D:
-MinimumFileAgeDays
20
Start
-DedupJob
–Volume D: –
Type
Optimization
Get
-DedupJob
# German Keyboard-Layout for Console Output. Can be skipped in english enviroments
#chcp 1252 >$null 2>&1
function ConfigureVolumeShadowCopies([string]
$diskname
,
$vssMaxSizeInPercent
) {
$xmlDocument
= [xml] "<?xml version=
'1.0'
encoding=
'UTF-16'
?>
<RegistrationInfo>
<Author>Administrator</Author>
</RegistrationInfo>
<Triggers>
<CalendarTrigger>
<StartBoundary>2018-01-01T08:00:00</StartBoundary>
<Enabled>true</Enabled>
<ScheduleByWeek>
<DaysOfWeek>
<Monday />
<Tuesday />
<Wednesday />
<Thursday />
<Friday />
</DaysOfWeek>
<WeeksInterval>1</WeeksInterval>
</ScheduleByWeek>
</CalendarTrigger>
<CalendarTrigger>
<StartBoundary>2018-01-01T10:00:00</StartBoundary>
<Enabled>true</Enabled>
<ScheduleByWeek>
<DaysOfWeek>
<Monday />
<Tuesday />
<Wednesday />
<Thursday />
<Friday />
</DaysOfWeek>
<WeeksInterval>1</WeeksInterval>
</ScheduleByWeek>
</CalendarTrigger>
<CalendarTrigger>
<StartBoundary>2018-01-01T12:00:00</StartBoundary>
<Enabled>true</Enabled>
<ScheduleByWeek>
<DaysOfWeek>
<Monday />
<Tuesday />
<Wednesday />
<Thursday />
<Friday />
</DaysOfWeek>
<WeeksInterval>1</WeeksInterval>
</ScheduleByWeek>
</CalendarTrigger>
<CalendarTrigger>
<StartBoundary>2018-01-01T14:00:00</StartBoundary>
<Enabled>true</Enabled>
<ScheduleByWeek>
<DaysOfWeek>
<Monday />
<Tuesday />
<Wednesday />
<Thursday />
<Friday />
</DaysOfWeek>
<WeeksInterval>1</WeeksInterval>
</ScheduleByWeek>
</CalendarTrigger>
<CalendarTrigger>
<StartBoundary>2018-01-01T16:00:00</StartBoundary>
<Enabled>true</Enabled>
<ScheduleByWeek>
<DaysOfWeek>
<Monday />
<Tuesday />
<Wednesday />
<Thursday />
<Friday />
</DaysOfWeek>
<WeeksInterval>1</WeeksInterval>
</ScheduleByWeek>
</CalendarTrigger>
<CalendarTrigger>
<StartBoundary>2018-01-01T18:00:00</StartBoundary>
<Enabled>true</Enabled>
<ScheduleByWeek>
<DaysOfWeek>
<Monday />
<Tuesday />
<Wednesday />
<Thursday />
<Friday />
</DaysOfWeek>
<WeeksInterval>1</WeeksInterval>
</ScheduleByWeek>
</CalendarTrigger>
</Triggers>
<Principals>
<Principal id=
'Author'
>
<UserId>S-1-5-18</UserId>
<RunLevel>HighestAvailable</RunLevel>
</Principal>
</Principals>
<Settings>
<DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
<StopIfGoingOnBatteries>false</StopIfGoingOnBatteries>
<IdleSettings>
<Duration>PT600S</Duration>
<WaitTimeout>PT3600S</WaitTimeout>
<StopOnIdleEnd>false</StopOnIdleEnd>
<RestartOnIdle>false</RestartOnIdle>
</IdleSettings>
<Enabled>true</Enabled>
<Hidden>false</Hidden>
<RunOnlyIfIdle>false</RunOnlyIfIdle>
<WakeToRun>false</WakeToRun>
<ExecutionTimeLimit>PT259200S</ExecutionTimeLimit>
<Priority>5</Priority>
</Settings>
<Actions Context=
'Author'
>
<Exec>
<Command>C:\Windows\system32\vssadmin.exe</Command>
<Arguments>Create Shadow /AutoRetry=15 /For=\\?\Volume{REPLACEME}\</Arguments>
<WorkingDirectory>%systemroot%\system32</WorkingDirectory>
</Exec>
</Actions>
</Task>"
# Query Volume GUID of the given Volume
$VolumeWmi
=
gwmi
Win32_Volume
-Namespace
root/cimv2 | ?{ $_.Name
-eq
(
$diskname
+"\") }
# Build Variables
$DeviceID
=
$VolumeWmi
.DeviceID.ToUpper().Replace(
"\\?\VOLUME"
,
""
).Replace(
"\","
")
$TaskName
=
"ShadowCopyVolume"
+
$DeviceID
$TaskFor
=
"\\?\Volume"
+
$DeviceID
+ "\"
# Replace Volume GUID in XML-Data
$xmlDocument
.Task.Actions.Exec.Arguments =
"Create Shadow /AutoRetry=15 /For=$TaskFor"
# Write temporary XML-File for Import of scheduled Task with schtask
$xmlDocumentFileName
=
$PSScriptRoot
+
"\" + $TaskName + "
.xml"
$xmlDocument
.Save(
$xmlDocumentFileName
)
# Try to Delete existing Task for VSS
try {
schtasks /delete /TN
$Taskname
/f
}
catch {
#If Task can not be found: do nothing
}
# Create Scheduled Task
schtasks /Create /XML
$xmlDocumentFileName
/TN
$TaskName
# Create (First) Snapshot
vssadmin Create Shadow /For=
$diskname
/AutoRetry=15
# Define Max Size of VSS Shadow Storage
vssadmin resize shadowstorage /For=
$diskname
/On=
$diskname
/MaxSize=
$vssMaxSizeInPercent
# Delete temporary XML Document
Remove-Item
$xmlDocumentFileName
-Force
}
# Start Configuration - for Example on Volume C: with 10% MaxSize
ConfigureVolumeShadowCopies
"D:"
10%
FTP:
Invoke
-Command
-ComputerName
"ccsfs009p"
,
"ccsfs010p"
-ScriptBlock
{
Install
-WindowsFeature
"Web-WebServer"
,
"Web-Common-Http"
,
"Web-Default-Doc"
,
"Web-Dir-Browsing"
,
"Web-Http-Errors"
,
"Web-Filtering"
,
"Web-Ftp-Server"
,
"Web-Ftp-Service"
,
"Web-Ftp-Ext"
,
"Web-Mgmt-Console"
}
Invoke
-Command
-ComputerName
"ccsfs009p"
,
"ccsfs010p"
-ScriptBlock
{
Import
-Module
WebAdministration
$FTPSiteName
=
'MediaObjects'
$FTPRootDir
=
'D:\D01\APPL\OPC\prod'
$FTPPort
= 21
New
-WebFtpSite
-Name
$FTPSiteName
-Port
$FTPPort
-PhysicalPath
$FTPRootDir
}
No comments:
Post a Comment