PowerShell:修改機碼-IE列印邊界

大多數一般IT都會使用批次檔或是reg檔來修改機碼,但是自從我開始學習Powershell之後,我能用Powershell做的,我盡可能都會用Powershell。畢竟我之前的整套裝機流程從Batch改成PS之後,就是一條不歸路了,畢竟用Powershell會比起用Batch來的有優越感。

今天的任務是我要在User的Profile下修改他的IE列印邊界。

目標

需要寫入的機碼

因為我需要寫入的機碼實在不少,所以我變數命名是有規則的

[cc lang=”powershell”]

#IE Printer Setting
$RegistryPath130 = “HKCU:\SOFTWARE\Microsoft\Internet Explorer\PageSetup”
$Name130 = “font”
$Value130 = “”
$Ptype130 = “String”
$Name131 = “footer”
$Value131 = “&u&b&d”
$Ptype131 = “String”
$Name132 = “header”
$Value132 = “&w&bPage &p of &P”
$Ptype132 = “String”
$Name133 = “margin_bottom”
$Value133 = “0.393700”
$Ptype133 = “String”
$Name134 = “margin_left”
$Value134 = “0.196850”
$Ptype134 = “String”
$Name135 = “margin_right”
$Value135 = “0.196850”
$Ptype135 = “String”
$Name136 = “margin_top”
$Value136 = “0.393700”
$Ptype136 = “String”
$Name137 = “Print_Background”
$Value137 = “no”
$Ptype137 = “String”
$Name138 = “Shrink_To_Fit”
$Value138 = “yes”
$Ptype138 = “String”

$breaktime = 500

IF(!(Test-Path $RegistryPath130))
{
New-Item -Path $RegistryPath130 -Force | Out-Null
}
New-ItemProperty -Path $RegistryPath130 -Name $Name130 -Value $Value130 -PropertyType $Ptype130 -Force
Start-Sleep -m $breaktime
New-ItemProperty -Path $RegistryPath131 -Name $Name131 -Value $Value131 -PropertyType $Ptype131 -Force
Start-Sleep -m $breaktime
New-ItemProperty -Path $RegistryPath132 -Name $Name132 -Value $Value132 -PropertyType $Ptype132 -Force
Start-Sleep -m $breaktime
New-ItemProperty -Path $RegistryPath133 -Name $Name133 -Value $Value133 -PropertyType $Ptype133 -Force
Start-Sleep -m $breaktime
New-ItemProperty -Path $RegistryPath134 -Name $Name134 -Value $Value134 -PropertyType $Ptype134 -Force
Start-Sleep -m $breaktime
New-ItemProperty -Path $RegistryPath135 -Name $Name135 -Value $Value135 -PropertyType $Ptype135 -Force
Start-Sleep -m $breaktime
New-ItemProperty -Path $RegistryPath136 -Name $Name136 -Value $Value136 -PropertyType $Ptype136 -Force
Start-Sleep -m $breaktime
New-ItemProperty -Path $RegistryPath137 -Name $Name137 -Value $Value137 -PropertyType $Ptype137 -Force
Start-Sleep -m $breaktime
New-ItemProperty -Path $RegistryPath138 -Name $Name138 -Value $Value138 -PropertyType $Ptype138 -Force
Start-Sleep -m $breaktime

[/cc]

因為我測試發現機碼寫入太快,不知道為什麼有時候會寫不完整,所以我每次寫一個值就會暫停500毫秒,避免沒有寫完整。