_OSDDetectedWinDir
在 Windows PE 启动时,任务序列会在计算机的硬盘驱动器上扫描是否以前已安装操作系统。 Windows 文件夹位置存储在此变量中。 你可以将任务序列配置为从环境中检索该值,并将其用于指定相同的 Windows 文件夹位置进行新的操作系统安装
SCCMOEMOSDisk工具主要用于辅助SCCM OSD 任务序列进行选择安装操作系统类型,有存在_OSDDetectedWinDir变量操作系统则返回对应信息列表,
注意 SCCM WinPE64位环境,_OSDDetectedWinDir变量是操作系统32位则用默认操作系统信息列表,应用操作系统步骤不支持在WinPE64环境中去安装32位系统,不过SCCM WinPE32位环境是支持应用操作系统步骤32位和64位系统安装。
选择操作系统分区,有存在_OSDDetectedWinDir变量操作系统则返回对应系统分区盘符
默认计算机名称_SMSTSMachineName变量包含 'MININT-' 关键词则执行命名规则,不符合则不修改。
鼠标点击 WinPE/Full OS ComputerName 更新计算机命名规则,双击则取默认_SMSTSMachineName 计算机名称
默认计时30秒,鼠标左键双击工具主界面或按空格按键 停止计时时间。
Boot Drive 选项
传统模式启动PE是Bios第一启动硬盘信息, 如果没有则不显示。
UEFI模式启动PE是根据UEFI启动硬盘属性在哪个盘就显示对应盘信息,如果没有UEFI硬盘启动属性则用OS Drive 选项规则
OS Drive 选项
按优先级从NVMe、SATA、Raid、其他等接口协议取固态硬盘最小容量对应信息,比如 没检测到NVMe固态硬盘则取SATA固态硬盘,要是都没符合条件则取硬盘中最小容量一个
_OSDDetectedWinDir变量没有值,操作系统信息默认选择Boot Drive、 OS Drive 选项,其他硬盘选项默认不勾选
组织单位OU
根据_SMSTSMachineName变量获取计算机名称,读取AD OU信息匹配输出默认该计算机名称所在OU名称,
注意WinPE 需要导入Powershell AD管理模块,AD服务器需要开启powershell 远程管理。
AD User
根据注册表域用户登录返回账户名。
AD用户用于计算机自动登录设置,或加入本地管理组变量
PassWrod
AD用户密码用于计算机自动登录设置
sccmoemosdisk日志记录参考
外部参数引入
默认值 下拉表框参数追加
-combobox9text “Windows10x64” -combobox9itemsadd “Win11,Win12”
-combobox10text “2 - Enterprise” -combobox10itemsadd “专业版,企业版”
-combobox11text “2004” -combobox11itemsadd “2022,2022”
示例
示例 默认显示OS信息以及自定义添加变量值
SCCMOEMOSDisk_x64.exe -combobox9text “Win11” -combobox10text “专业版” -combobox11text “2022” -combobox9itemsadd “Win11,Win12” -combobox10itemsadd “专业版,企业版” -combobox11itemsadd “2022,2022”
注意事项
_OSDDetectedWinDir
在 Windows PE 启动时,任务序列会在计算机的硬盘驱动器上扫描是否以前已安装操作系统。 Windows 文件夹位置存储在此变量中。
-combobox9text、-combobox10text、-combobox11text 在已有操作系统环境下会返回相关信息,如无信息则使用默认值
计算机名称 根据主板信息判断输出前缀信息
#宏碁主板 -BranAcer = "Acer" #宏碁主板 前缀命名 -PrefixAcer = "AR-"
#苹果主板 -BranApple = "Apple" #苹果主板 前缀命名 -PrefixApple = "AL-"
#清华同方主板 -BranTHTF = "THTF" #清华同方主板 前缀命名 -PrefixTHTF = "TF-"
#七彩虹主板 -Brancolorful = "colorful" #七彩虹主板 前缀命名 -Prefixcolorful = "CL-"
#华硕主板-BranASUS = "ASUS" #华硕主板 前缀命名 -PrefixASUS = "AS-"
#戴尔主板 -BranDELL = "DELL" #戴尔主板 前缀命名 -PrefixDELL = "DL-"
#华为主板 -BranHUAWEI = "HUAWEI" #华为主板 前缀命名 -PrefixHUAWEI = "HW-"
#联想主板 -BrandLenovo = "Lenovo" #联想主板 前缀命名 -PrefixLenovo = "LV-"
#Viglen主板 -BrandViglen = "Viglen" #Viglen 前缀命名 -PrefixViglen = "VL-"
#HP主板 -BrandHP = "HP" #HP主板 前缀命名 -PrefixHP = "HP-"
#HP主板 -BrandHewlettPackard = "Hewlett-Packard" #HP主板 前缀命名 -PrefixHewlettPackard = "HP-"
#超微主板 -BrandSupermicro = "Supermicro" #超微主板 前缀命名 -PrefixSupermicro = "SM-"
#技嘉主板 -BrandGigabyte = "Gigabyte" #技嘉主板 前缀命名 -PrefixGigabyte = "GB-"
#ESXI虚拟机 -Brandvmware = "vmware" #ESXI虚拟机 前缀命名 -Prefixesxi = "VM-"
#Hyper-V虚拟机 -BrandHyperv= "Microsoft Corporation", #Hyper-V虚拟机 前缀命 -PrefixHyperv = "HY-"
#未识别到主板制造商信息默认输出 前缀命名 -Prefixdefault = "LB-"
#获取主板序列号规则要符合包含字母和数组并且小于12位数 (默认值12位数)
#查看主板品牌、序列号PowerShell命令:gwmi win32_baseboard gwmi win32_bios gwmi win32_computersystem
#先从 Win32_baseboard 取序列号、不符合则在Win32_BIOS 取序列号,两者都不符合则取当前年 、月、 日、 秒、毫秒
示例 :修改默认前缀、hyper-v虚拟机前缀
SCCMOEMOSDisk_x64.exe -Prefixdefault “ts-” -PrefixHyperv “cs-”
用于判断主板序列号小于等于 12位、大于等于13位(默认参数)
-Digital = "12",
用于截取主板序列号后12位
-lengthDigital = 12
这两个参数只对符合序列号规则有效,若规则返回是时间命名则无效。
示例:想增加计算机默认前缀5位数输入,设定小于等于10位序列号取值,大于等于11位则截取后10位
SCCMOEMOSDisk_x64.exe -Prefixdefault “Demo-” -Digital “10” -lengthDigital “10”
===============================================================================================
默认自动计时变量 $OEMTimeout=30
多个外部参数示例: 默认信息 win11 专业版 2022 ,添加下拉选择信息,取序列号后10位
SCCMOEMOSDisk_x64.exe -combobox9text “Win11” -combobox10text “专业版” -combobox11text “2022” -combobox9itemsadd “Win11,Win12” -combobox10itemsadd “专业版,企业版” -combobox11itemsadd “2022,2022” -Digital “10” -lengthDigital “10” -Prefixdefault “ts-” -PrefixHyperv “cs-”
#输出此程序运行完成标志 $TSEnv.Value("luobots_OEMOSDDisk") = true
#选择系统盘符变量 $TSEnv.Value(“OSDdisk”) 示例变量值: C:
#选择操作系统变量 $TSEnv.Value(“luobots_OSDOS”) 示例变量值: Windows10x64
#选择操作系统镜像版本类型 $TSEnv.Value('luobots_OSDImageIndex') 示例变量值: 2 - Enterprise
#选择操作系统版本 $TSEnv.Value(“luobots_OSDOSversion”) 示例变量值: 2004
#选择操作系统组合变量 $TSEnv.Value(“luobots_oswim”) 示例变量值: Windows10x64 2 - Enterprise 2004
#扫描操作系统输出标志 $TSEnv.Value("OSDWINDOWS") = System disk not scanned、Scan to system disk
#引导硬盘启动属性标志 $TSEnv.Value("luobots_BootFromDisk") = true
#引导硬盘启动编号 $TSEnv.Value("luobots_BootFromDiskDiskNumber")示例变量值: 0
#指定分区物理磁盘编号,优先任务序列设定值 $TSEnv.Value("OSDDiskIndex") 示例变量值: 0
#格式化硬盘变量转存 $TSEnv.Value("OSDDiskIndexdisk")示例变量值: 0
#独立启动硬盘容量变量 $TSEnv.Value("diskformat_BootFromDiskdisk"):示例变量值 :120GB
#独立启动硬盘编号变量 $TSEnv.Value("luobots_BootFromDiskDiskNumber")示例变量值 :0
#独立OS硬盘标志变量 $TSEnv.Value("SystemDisk")示例变量值 :true
#独立OS硬盘编号变量 $TSEnv.Value("luobots_SystemDiskNumber")示例变量值 :0
#启动盘、OS硬盘同一个标志变量 $TSEnv.Value("luobots_Bootosdisk") = true
#启动盘、OS硬盘编号同一个变量 $TSEnv.Value("luobots_BootSystemDiskNumber"):示例变量值 :0
#独立OS硬盘容量,启动硬盘、OS硬盘容量变量 $TSEnv.Value("diskformat")示例变量值: 120GB
#AD用户变量用于自动登录或添加本地管理员组调用 $TSEnv.Value("luobots_ADUser")
#AD用户密码变量用于自动登录调用 $TSEnv.Value("luobots_ADUserPassWrod")
#AD组织单位变量 $TSEnv.Value("OSDDomainOUName")
#硬盘编号输出变量 $TSEnv.Value("luobots_DiskNumber0")...("luobots_DiskNumber8")示例变量值: 0
#硬盘容量变量 $TSEnv.Value("diskformat0")...("diskformat8")示例变量值: 120GB
操作系统返回版本信息对应参考条件switch ($OEMEditionID) {{ $_ -eq 'Ultimate' } { $combobox10.Text = '4 - Ultimate' }{ $_ -eq 'Education' } { $combobox10.Text = '1 - Education' }{ $_ -eq 'ServerStandard' } { $combobox10.Text = '2 - Server Standard' }{ $_ -eq 'EnterpriseS' } { $combobox10.Text = '1 - EnterpriseS' }{ $_ -eq 'Enterprise' } { $combobox10.Text = '2 - Enterprise' }{ $_ -eq 'Professional' } { $combobox10.Text = '3 - Pro' }{ $_ -eq 'ServerEnterprise' } { $combobox10.Text = '3 - Server Enterprise' }{ $_ -eq 'ProfessionalEducation' } { $combobox10.Text = '4 - Pro Education' }{ $_ -eq 'ServerDatacenter' } { $combobox10.Text = '4 - Server Datacenter' }{ $_ -eq 'ProfessionalWorkstation' } { $combobox10.Text = '5 - Pro For Workstations' }{ $_ -eq 'ServerWEB' } { $combobox10.Text = '7 - Server WEB' }default{ $combobox10.Text = $combobox10text }#default{ $combobox10.Text = $combobox10text; $combobox11.text = "$combobox11text" }}diskformat_BootFromDiskdisk、diskformat...diskformat8 硬盘容量大小变量参考if ($PhysicalDiskdir -ge 35GB -and $PhysicalDiskdir -le 45GB){# Write-Host "小于等于45GB"$diskformat = '45GB'(New-Object -COMObject Microsoft.SMS.TSEnvironment).Value('diskformat') = $diskformat}elseif ($PhysicalDiskdir -ge 55GB -and $PhysicalDiskdir -le 80GB){#Write-Host "小于等于80GB"$diskformat = '80GB'(New-Object -COMObject Microsoft.SMS.TSEnvironment).Value('diskformat') = $diskformat}elseif ($PhysicalDiskdir -ge 100GB -and $PhysicalDiskdir -le 128GB){#Write-Host "小于等于128GB"$diskformat = '128GB'(New-Object -COMObject Microsoft.SMS.TSEnvironment).Value('diskformat') = $diskformat}elseif ($PhysicalDiskdir -ge 145GB -and $PhysicalDiskdir -le 160GB){#Write-Host "小于等于160GB"$diskformat = '160GB'(New-Object -COMObject Microsoft.SMS.TSEnvironment).Value('diskformat') = $diskformat}elseif ($PhysicalDiskdir -ge 200GB -and $PhysicalDiskdir -le 256GB){# Write-Host "小于等于256GB"$diskformat = '256GB'(New-Object -COMObject Microsoft.SMS.TSEnvironment).Value('diskformat') = $diskformat}elseif ($PhysicalDiskdir -ge 290GB -and $PhysicalDiskdir -le 320GB){# Write-Host "小于等于320GB"$diskformat = '320GB'(New-Object -COMObject Microsoft.SMS.TSEnvironment).Value('diskformat') = $diskformat}elseif ($PhysicalDiskdir -ge 460GB -and $PhysicalDiskdir -le 500GB){#Write-Host "小于等于500GB"$diskformat = '500GB'(New-Object -COMObject Microsoft.SMS.TSEnvironment).Value('diskformat') = $diskformat}elseif ($PhysicalDiskdir -ge 900GB -and $PhysicalDiskdir -le 1000GB){#Write-Host "小于等于1000GB"$diskformat = '1000GB'(New-Object -COMObject Microsoft.SMS.TSEnvironment).Value('diskformat') = $diskformat}elseif ($PhysicalDiskdir -ge 1600GB -and $PhysicalDiskdir -le 2000GB){#Write-Host "小于等于2000GB"$diskformat = '2000GB'(New-Object -COMObject Microsoft.SMS.TSEnvironment).Value('diskformat') = $diskformat}elseif ($PhysicalDiskdir -ge 2400GB -and $PhysicalDiskdir -le 3000GB){#Write-Host "小于等于3000GB"$diskformat = '3000GB'(New-Object -COMObject Microsoft.SMS.TSEnvironment).Value('diskformat') = $diskformat}elseif ($PhysicalDiskdir -ge 3400GB -and $PhysicalDiskdir -le 4000GB){#Write-Host "小于等于4000GB"$diskformat = '4000GB'(New-Object -COMObject Microsoft.SMS.TSEnvironment).Value('diskformat') = $diskformat}else{# write-host '未匹配到磁盘大小'$diskformat = 'false'(New-Object -COMObject Microsoft.SMS.TSEnvironment).Value('diskformat') = $diskformat}
SCCM2103系列,OSD任务序列部署操作系统,SCCMOEMOSDisk辅助工具
下一篇:返回列表