Powershell在TS下找到AD中的下一个可用资产名称

时间:2017-03-23 16:59:24

标签: powershell task sequence sccm computer-name

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

0 个答案:

没有答案