所以我制作了这个脚本来寻找系列中的下一个可用脚本。计算机将获得一个带有 ComputerXXXX 的名称(XXXX 为 0-9999)。当我在 TS 完成后手动运行它时它可以工作,但当我通过 TS 作为一个步骤运行它时它不起作用。有小费吗?它确实将信息打印到.csv文件中,以便脚本运行。一直在阅读有关 OSDComputername 或其他内容的信息,有任何相关信息吗?
# Variables debugging
$global:navneserie = $null
$global:navneserieNavn = $null
$computerName = $env:COMPUTERNAME
$Dato = (get-date)
$log = "Enabled"
write-host $computername
import-module ActiveDirectory
write-host $serialnumber
$global:navneserie = "Computer"
$global:navneserieNavn = "Computer"
function SCCMLog
{
if ($log -eq "Enabled")
{
add-content \\DOMAINNAME\NETLOGON\SCCMLog\SCCMlog.csv "$Dato;$Computername; ;OK"
}
}
if ($env:computerName -like "Computer*")
{
write-host $computername
exit
}
else
{
$OpptatteNavn = Get-ADComputer -properties name -filter *| where {$_.name -match $global:navneserie} | ForEach-Object {$_.Name} | sort
[int]$forrige = 9999
[int]$denne = 0000
$funn = $false
While (-not $funn)
{
Foreach ($navn in $OpptatteNavn)
{
$navn = $navn.substring($navn.length -4,4)
$denne = $navn
If ((($denne-$forrige) -gt 1)-and -not $funn)
{
[int]$nesteLedige = $forrige + 1
$funn = $true
break
}
$forrige = $navn
}
}
If ($nesteLedige -lt 10)
{
$000Name = $global:navneserieNavn+"000"+$nesteLedige
rename-computer -newname "$000Name"
write-host "Datamaskinen har blitt renamet til:"$global:navneserieNavn"000"$nesteLedige"`n"
LogSCCM
}
elseIf ($nesteLedige -lt 100)
{
$00Name = $global:navneserieNavn+"00"+$nesteLedige
rename-computer -newname "$00Name"
write-host "Datamaskinen har blitt renamet til:"$global:navneserieNavn"00"$nesteLedige"`n"
LogSCCM
}
elseIf ($nesteLedige -lt 1000)
{
$0Name = $global:navneserieNavn+"0"+$nesteLedige
rename-computer -newname "$0Name"
write-host "Datamaskinen har blitt renamet til:"$global:navneserieNavn"0"$nesteLedige
LogSCCM
}
else
{
rename-computer = $global:navneserieNavN$nesteLedige
write-host "Datamaskinen har blitt renamet til:$global:navneserieNavn$nesteLedige"
LogSCCM
}