MDT部署双硬盘选择
生活随笔
收集整理的這篇文章主要介紹了
MDT部署双硬盘选择
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
如果電腦只配置有一塊或多塊普通磁盤,則選擇disk0安裝OS;
如果電腦同時配置有SSD+其他磁盤,則選擇SSD安裝OS;
如果系統磁盤容量<200G,則只分區一個C盤,>200G則分區為C和D盤。
實現方式:
1.編輯UserExit.vbs腳本,增加如下3個函數,實際上DiskNum()函數在此用不到
Function UserExit(sType, sWhen, sDetail, bSkip)
oLogging.CreateEntry "entered UserExit ", LogTypeInfo
UserExit = Success
End Function
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'如果有固態硬盤存在,則OS安裝在固態硬盤,否則安裝到磁盤0上
Function SelectOSDisk()
'查找固態硬盤
Set Wmi = GetObject("Winmgmts:\.RootMicrosoftWindowsStorage")
Set objDisk = Wmi.Execquery("Select * from MSFT_PhysicalDisk")
For Each B in objDisk
if B.MediaType=4 then
DiskID=B.DeviceId
end if
next
'固態硬盤不存在,則指定disk0
if DiskID = "" then
DiskID=0
end if
SelectOSDisk = DiskID
End Function
'查找物理磁盤數量
Function DiskNum()
Set Wmi = GetObject("Winmgmts:\.RootMicrosoftWindowsStorage")
Set objDisk = Wmi.Execquery("Select * from MSFT_PhysicalDisk")
n = 0
For Each B in objDisk
n = n+1
next
DiskNum = n
End Function
'獲取OS Disk Size
Function GetOSDiskSize(OSDiskID)
Set Wmi = GetObject("Winmgmts:\.RootMicrosoftWindowsStorage")
Set objOSDisk = Wmi.Execquery("Select * from MSFT_PhysicalDisk Where DeviceId = '" & OSDiskID & "'")
For Each osdisk in objOSDisk
GetOSDiskSize=osdisk.size
Next
End Function
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
2.在CustomSettings.ini文件添加如下內容:
Properties=MyCustomProperty,OSDDiskSize,DiskNum #增加自定義屬性OSDDiskSize,DiskNum;OSDDiskIndex為系統默認變量參數,無需再次添加
#引用如下內容,獲取變量值
UserExit=UserExit.vbs ;獲取磁盤ID,磁盤大小 OSDDiskIndex=#SelectOSDisk()# OSDDiskSize=#GetOSDiskSize(%OSDDiskIndex%)# ;DiskNum=#DiskNum()#
3.編輯TS,復制添加Format and Partition Disk(BIOS/UEFI),一個判斷磁盤是否小于200G,一個判斷磁盤是否大于200G
4.添加一個自定義PS1腳本,用于格式第二塊磁盤
腳本內容如下:
InitDataDisk.bat
powershell.exe -executionpolicy bypass -noprofile -noninteractive -file "%~dp0InitDataDisk.ps1"
InitDataDisk.ps1
#對非OS所在磁盤(只操作第一塊非OS磁盤)初始化并分區,磁盤容量小于500G只分一個分區,高于500G分兩個分區
$disks = Get-Disk | ? {$_.IsSystem -eq $False}
$driver_letters = ls function:[A-Z]: | where { ! (test-path $_.name) }| select -ExpandProperty name
if ($disks -ne $null)
{
#Clear Disk data.
try {
$ErrorActionPreference='stop'
$disks[0] | Clear-Disk -RemoveData -Confirm:$false
Start-Sleep 1
}
catch {}
#Init Disk.
Initialize-Disk $disks[0].Number
if ($disks[0].Size -le 500GB)
{
$disks[0] |New-Partition -UseMaximumSize | Format-Volume -FileSystem NTFS -NewFileSystemLabel Data -Confirm:$false
$dletter = $driver_letters[2].split(":")[0]
$disks[0] |Get-Partition | where {$_.PartitionNumber -eq 2} | Set-Partition -NewDriveLetter $dletter
}
else {
$par1_size = 500GB
$par3_size = $disks[0].Size - $par1_size
$disks[0] |New-Partition -Size $par1_size | Format-Volume -FileSystem NTFS -NewFileSystemLabel Data -Confirm:$false
Start-Sleep 1
$disks[0] |New-Partition -Size $par2_size | Format-Volume -FileSystem NTFS -NewFileSystemLabel Data -Confirm:$false
$dletter2 = $driver_letters[2].split(":")[0]
$dletter3 = $driver_letters[3].split(":")[0]
$disks[0] |Get-Partition | where {$_.PartitionNumber -eq 2} | Set-Partition -NewDriveLetter $dletter2
$disks[0] |Get-Partition | where {$_.PartitionNumber -eq 3} | Set-Partition -NewDriveLetter $dletter3
}
}
總結
以上是生活随笔為你收集整理的MDT部署双硬盘选择的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL error 1477_mys
- 下一篇: 系统资源统计