Protecting your Citrix desktops on Nutanix using powershell

Another week, another idea comes up to check if I could make it happen with Powershell. I wanted to write a script that checks my current machine catalog and puts VMs that are not in a Nutanix Protection Domain in a PD to make sure that we can protect those VMs using the policies Nutanix offers.

The following tasks had to be automated using powershell:

Check if a machine catalog is persistent

Get all desktops in the machine catalog

Check if there’s a Nutanix Protection Domain available with a certain prefix (read more here).

Check if the VM isn’t already protected

Check if the VM can be added there

If so: Add the VM

If not: create a Protection Domain and add the VM(s) there

I took the liberty of borrowing bits and pieces of Steven Poitras that is published on the Nutanix GitHub here:NTNX-Protect-VM.ps1 (Powershell script) and Sandeep has been helped me by answering my questions patiently.

Here’s the script:

PowerShell

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

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

<#

.SYNOPSIS

Will fetch all desktops from a machine catalogs and put them into protection domains

.DESCRIPTION

Will fetch all desktops from a machine catalogs and put them into protection domains but it will asume at least one PD with the prefix is there.

.EXAMPLE

PS C:\PSScript > .\XD_PD_v1.ps1

.INPUTS

None. You cannot pipe objects to this script.

.OUTPUTS

No objects are output from this script.

.NOTES

NAME: XD_PD_v1.ps1

VERSION: 1.0

AUTHOR: Kees Baggerman with some help from Sandeep MP and Steven Potrias a

Kees Baggerman

Kees Baggerman is a Staff Solutions Architect for End User Computing at Nutanix. Kees has driven numerous Microsoft and Citrix, and RES infrastructures functional/technical designs, migrations, implementations engagements over the years.