所以我制作了这个脚本来查找系列中的下一个可用脚本。计算机将获得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
}