@@ -142,20 +142,53 @@ function Initialize-OSDCloudStartnet {
142
142
}
143
143
}
144
144
145
- # Check if the OSD Module in the PowerShell Gallery is newer than the installed version
146
- $TimeSpan = New-TimeSpan - Start $Global :StartnetStart - End (Get-Date )
147
- Write-Host - ForegroundColor DarkGray " $ ( $TimeSpan.ToString (" mm':'ss" )) Updating OSD PowerShell Module"
148
- $PSModuleName = ' OSD'
149
- $InstalledModule = Get-Module - Name $PSModuleName - ListAvailable - ErrorAction Ignore | Sort-Object Version - Descending | Select-Object - First 1
150
- $GalleryPSModule = Find-Module - Name $PSModuleName - ErrorAction Ignore - WarningAction Ignore
151
-
152
- # Install the OSD module if it is not installed or if the version is older than the gallery version
153
- if ($GalleryPSModule ) {
154
- if (($GalleryPSModule.Version -as [version ]) -gt ($InstalledModule.Version -as [version ])) {
155
- Write-Host - ForegroundColor DarkGray " $PSModuleName $ ( $GalleryPSModule.Version ) [AllUsers]"
156
- Install-Module $PSModuleName - Scope AllUsers - Force - SkipPublisherCheck
157
- Import-Module $PSModuleName - Force
145
+ Write-Host - ForegroundColor Cyan ' [i] Config Post StartNet Scripts'
146
+ $Global :ScriptStartNet2 = Get-PSDrive - PSProvider FileSystem | Where-Object { $_.Name -ne ' C' } | ForEach-Object {
147
+ Write-Host - ForegroundColor DarkGray " $ ( $_.Root ) OSDCloud\Config\Scripts\StartNet2\*.ps1"
148
+ Get-ChildItem " $ ( $_.Root ) OSDCloud\Config\Scripts\StartNet2\" - Include " *.ps1" - File - Recurse - Force - ErrorAction Ignore
149
+ }
150
+ if ($Global :ScriptStartNet2 ) {
151
+ $Global :ScriptStartNet2 = $Global :ScriptStartNet2 | Sort-Object - Property FullName
152
+ foreach ($Item in $Global :ScriptStartNet2 ) {
153
+ Write-Host - ForegroundColor Gray " Execute $ ( $Item.FullName ) "
154
+ & " $ ( $Item.FullName ) "
155
+ }
156
+ $TimeSpan = New-TimeSpan - Start $Global :StartnetStart - End (Get-Date )
157
+ Write-Host - ForegroundColor DarkGray " $ ( $TimeSpan.ToString (" mm':'ss" )) Tried to execute Post StartNet Scripts"
158
+ }
159
+
160
+ Write-Host - ForegroundColor Cyan ' [i] OSD module update'
161
+ $Global :OSDModuleUpdate = $true # Default is trying to newer OSD module
162
+ $Global :OSDCloudStartnetJson = Get-PSDrive - PSProvider FileSystem | Where-Object {$_.Name -ne ' C' } | ForEach-Object {
163
+ Get-ChildItem " $ ( $_.Root ) OSDCloud\Config" - Include " Initialize-OSDCloudStartnet.json" - File - Force - Recurse - ErrorAction Ignore
164
+ }
165
+ if ($Global :OSDCloudStartnetJson ) {
166
+ foreach ($Item in $Global :OSDCloudStartnetJson ) {
167
+ Write-Host - ForegroundColor DarkGray " $ ( $Item.FullName ) "
168
+ $Global :OSDModuleUpdate = (Get-Content - Path " $ ( $Item.FullName ) " | ConvertFrom-Json - ErrorAction " Stop" ).OSDAutoUpdate
169
+ Write-Host - ForegroundColor DarkGray " - OSDAutoUpdate: $ ( $Global :OSDModuleUpdate ) "
158
170
}
159
171
}
172
+ if ($Global :OSDModuleUpdate ) {
173
+ # Check if the OSD Module in the PowerShell Gallery is newer than the installed version
174
+ $TimeSpan = New-TimeSpan - Start $Global :StartnetStart - End (Get-Date )
175
+ Write-Host - ForegroundColor DarkGray " $ ( $TimeSpan.ToString (" mm':'ss" )) Updating OSD PowerShell Module"
176
+ $PSModuleName = ' OSD'
177
+ $InstalledModule = Get-Module - Name $PSModuleName - ListAvailable - ErrorAction Ignore | Sort-Object Version - Descending | Select-Object - First 1
178
+ $GalleryPSModule = Find-Module - Name $PSModuleName - ErrorAction Ignore - WarningAction Ignore
179
+
180
+ # Install the OSD module if it is not installed or if the version is older than the gallery version
181
+ if ($GalleryPSModule ) {
182
+ if (($GalleryPSModule.Version -as [version ]) -gt ($InstalledModule.Version -as [version ])) {
183
+ Write-Host - ForegroundColor DarkGray " $PSModuleName $ ( $GalleryPSModule.Version ) [AllUsers]"
184
+ Install-Module $PSModuleName - Scope AllUsers - Force - SkipPublisherCheck
185
+ Import-Module $PSModuleName - Force
186
+ }
187
+ }
188
+ } else {
189
+ # if json contains {"OSDAutoUpdate": false} then not trying to import newer OSD module
190
+ $TimeSpan = New-TimeSpan - Start $Global :StartnetStart - End (Get-Date )
191
+ Write-Host - ForegroundColor DarkGray " $ ( $TimeSpan.ToString (" mm':'ss" )) Skip Updating OSD PowerShell Module"
192
+ }
160
193
}
161
194
}
0 commit comments