-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathJamfBackupRestoreSampleUsage.ps1
More file actions
80 lines (66 loc) · 2.19 KB
/
JamfBackupRestoreSampleUsage.ps1
File metadata and controls
80 lines (66 loc) · 2.19 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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# Usage Example:
. (Join-Path (Get-Location) "config.ps1")
. (Join-Path (Get-Location) "JamfBackupRestoreFunctions.ps1")
if ($null -eq $script:Config) {
throw "Config is not initialized."
}
# Request a Jamf token
$tokenParams = @{
Username = $script:Config.Username
Password = $script:Config.Password
BaseUrl = $script:Config.BaseUrl
}
$script:Config.Token = Get-JamfToken @tokenParams
# Download multiple resource objects from Jamf Pro
@(
"osxconfigurationprofiles",
"mobiledeviceconfigurationprofiles",
"scripts",
"restrictedsoftware",
"policies",
"computer-prestages",
"computerextensionattributes",
"computergroups",
"mobiledevicegroups",
"mobiledeviceextensionattributes",
"departments",
"buildings",
"categories",
"computers",
"mobiledevices",
"mobiledeviceapplications",
"macapplications"
) | ForEach-Object {
Download-JamfObjects -resource $_ -ClearExports
}
# Download a single object from Jamf Pro
Download-JamfObject -ID "3" -Resource "osxconfigurationprofiles"
# Upload an updated object back into Jamf Pro
Upload-JamfObject `
-Token $script:Config.Token `
-FilePath "$($script:Config.DataFolder)/osxconfigurationprofiles/9_Browser_Profile_Settings.xml" `
-Resource "osxconfigurationprofiles" `
-Id "9" `
-Update
#Upload an updated policy object into Jamf Pro
Upload-JamfObject `
-Token $script:Config.Token `
-Resource "policies" `
-FilePath "$($script:Config.DataFolder)/policies/3_Google_Chrome.xml" `
-Id "3" `
-Update
# Upload a new category object into Jamf Pro
Upload-JamfObject `
-Token $script:Config.Token `
-FilePath "$($script:Config.DataFolder)/categories/Security.xml" `
-Resource "categories"
# Upload all policies from backup
Upload-JamfObjects -Resource "policies"
# Update specific policies by ID
Upload-JamfObjects -Resource "departments" -Ids @(1, 2) -Update
# Upload and update existing objects
Upload-JamfObjects -Resource "buildings" -Update
# Upload from a custom directory
Upload-JamfObjects -Resource "policies" -SourceDirectory (Join-Path (Get-Location) "CustomBackup/policies")
# Revoke Token
Invalidate-JamfToken -Token $script:Config.Token