-
Notifications
You must be signed in to change notification settings - Fork 32
Expand file tree
/
Copy pathmove-TaskSequence.ps1
More file actions
33 lines (27 loc) · 1.43 KB
/
Copy pathmove-TaskSequence.ps1
File metadata and controls
33 lines (27 loc) · 1.43 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
param (
[string]$TaskSequenceName,
[string]$TargetFolderName,
[string]$SiteCode,
[string]$CMProvider
)
[int]$ObjectID = 20
[string]$TaskSequence = ""
$TaskSequence = (Get-WmiObject -Class SMS_TaskSequencePackage -Namespace root\sms\site_$SiteCode -Filter "Name = '$($TaskSequenceName)'" -ComputerName $CMProvider).PackageID
[int]$SourceFolder = (Get-WmiObject -Class SMS_ObjectContainerItem -Namespace root\sms\site_$SiteCode -Filter "InstanceKey = '$($TaskSequence)'" -ComputerName $CMProvider).ContainerNodeID
[int]$TargetFolder = (Get-WmiObject -Class SMS_ObjectContainerNode -Namespace root\sms\site_$SiteCode -Filter "ObjectType = '20' and Name = '$($TargetFolderName)'" -ComputerName $CMProvider).ContainerNodeID
$Parameters = ([wmiclass]"\\$($CMProvider)\root\SMS\Site_$($SiteCode):SMS_ObjectContainerItem").psbase.GetMethodParameters("MoveMembers")
$Parameters.ObjectType = $ObjectID
$Parameters.ContainerNodeID = $SourceFolder
$Parameters.TargetContainerNodeID = $TargetFolder
$Parameters.InstanceKeys = $TaskSequence
try {
$Output = ([wmiclass]"\\$($CMProvider)\root\SMS\Site_$($SiteCode):SMS_ObjectContainerItem").psbase.InvokeMethod("MoveMembers",$Parameters,$null)
if ($Output.ReturnValue -eq "0")
{
Write-Host "Task Sequence $($TaskSequence) successfully moved to Folder $($TargetFolderName)."
}
}
catch [Exception]
{
Write-Error -Message "Something went wrong."
}