@@ -83,3 +83,131 @@ function Retry-IfException
83
83
84
84
$ErrorActionPreference = $oldErrorActionPreferenceValue ;
85
85
}
86
+
87
+ <#
88
+ . SYNOPSIS
89
+ Gets random resource name
90
+ #>
91
+ function Get-RandomItemName
92
+ {
93
+ param ([string ] $prefix = " pslibtest" )
94
+
95
+ if ($prefix -eq $null -or $prefix -eq ' ' )
96
+ {
97
+ $prefix = " pslibtest" ;
98
+ }
99
+
100
+ $str = $prefix + ((Get-Random ) % 10000 );
101
+ return $str ;
102
+ }
103
+
104
+ <#
105
+ . SYNOPSIS
106
+ Gets default VM size string
107
+ #>
108
+ function Get-DefaultVMSize
109
+ {
110
+ param ([string ] $location = " eastasia" )
111
+
112
+ $vmSizes = Get-AzureVMSize - Location $location | where { $_.NumberOfCores -ge 4 -and $_.MaxDataDiskCount -ge 8 };
113
+
114
+ foreach ($sz in $vmSizes )
115
+ {
116
+ if ($sz.Name -eq ' Standard_A3' )
117
+ {
118
+ return $sz.Name ;
119
+ }
120
+ }
121
+
122
+ return $vmSizes [0 ].Name;
123
+ }
124
+
125
+ <#
126
+ . SYNOPSIS
127
+ Gets default RDFE Image
128
+ #>
129
+ function Get-DefaultRDFEImage
130
+ {
131
+ param ([string ] $loca = " East Asia" , [string ] $query = ' *Windows*Data*Center*' )
132
+
133
+ $d = (Azure\Get-AzureVMImage | where {$_.ImageName -like $query -and ($_.Location -like " *;$loca ;*" -or $_.Location -like " $loca ;*" -or $_.Location -like " *;$loca " -or $_.Location -eq " $loca " )});
134
+
135
+ if ($d -eq $null )
136
+ {
137
+ return $null ;
138
+ }
139
+ else
140
+ {
141
+ return $d [-1 ].ImageName;
142
+ }
143
+ }
144
+
145
+ <#
146
+ . SYNOPSIS
147
+ Gets default RDFE Image
148
+ #>
149
+ function Get-DefaultCRPImage
150
+ {
151
+ param ([string ] $loca = " eastasia" , [string ] $query = ' *Microsoft*Windows*Server' )
152
+
153
+ $result = (Get-AzureVMImagePublisher - Location $loc ).Resources | select - ExpandProperty Name | where { $_ -like $query };
154
+ if ($result.Count -eq 1 )
155
+ {
156
+ $defaultPublisher = $result ;
157
+ }
158
+ else
159
+ {
160
+ $defaultPublisher = $result [0 ];
161
+ }
162
+
163
+ $result = (Get-AzureVMImageOffer - Location $loc - PublisherName $defaultPublisher ).Resources | select - ExpandProperty Name | where { $_ -like ' *Windows*' };
164
+ if ($result.Count -eq 1 )
165
+ {
166
+ $defaultOffer = $result ;
167
+ }
168
+ else
169
+ {
170
+ $defaultOffer = $result [0 ];
171
+ }
172
+
173
+ $result = (Get-AzureVMImageSku - Location $loc - PublisherName $defaultPublisher - Offer $defaultOffer ).Resources | select - ExpandProperty Name;
174
+ if ($result.Count -eq 1 )
175
+ {
176
+ $defaultSku = $result ;
177
+ }
178
+ else
179
+ {
180
+ $defaultSku = $result [0 ];
181
+ }
182
+
183
+ $result = (Get-AzureVMImage - Location $loc - Offer $defaultOffer - PublisherName $defaultPublisher - Skus $defaultSku ).Resources | select - ExpandProperty Name;
184
+ if ($result.Count -eq 1 )
185
+ {
186
+ $defaultVersion = $result ;
187
+ }
188
+ else
189
+ {
190
+ $defaultVersion = $result [0 ];
191
+ }
192
+
193
+ $vmimg = (Get-AzureVMImage - Location $loc - Offer $defaultOffer - PublisherName $defaultPublisher - Skus $defaultSku - Version $defaultVersion ).VirtualMachineImage;
194
+
195
+ return $vmimg ;
196
+ }
197
+
198
+ <#
199
+ . SYNOPSIS
200
+ Gets default VM config object
201
+ #>
202
+ function Get-DefaultVMConfig
203
+ {
204
+ param ([string ] $location = " eastasia" )
205
+
206
+ # VM Profile & Hardware
207
+ $vmsize = Get-DefaultVMSize $location ;
208
+ $vmname = Get-RandomItemName ' pstestvm' ;
209
+
210
+ $vm = New-AzureVMConfig - VMName $vmname - VMSize $vmsize ;
211
+
212
+ return $vm ;
213
+ }
0 commit comments