在文本文件中的 powershell 中重命名计算机并加入域

Renaming computer in powershell in a text file and joining domain

我是 powershell 新手,我正在尝试在 powershell 中开发一个小脚本来重命名文本文件中的计算机并将它们加入域中。我知道主要步骤,但我对细节有一些困难。

首先,我使用的是 powershell 3.0,并从远程服务器启动脚本。由于我的电脑刚被非物质化,我只有 ip 地址可以帮助我。幸运的是,我们使用的是静态 IP,所以我创建了一个包含所有 IP 地址的文本文件,以便它们成为我想要的。

第一个问题是我们的命名约定是 department-local-00 、 01 、 02 等等……我无法创建一个包含 2 位数字的循环……前 9 个条目只有 1 个(0、1、2、3 ....)。我尝试了很多东西,但它看起来很麻烦而且不起作用。

到目前为止,这是我的代码:

$Computers = Get-Content -Path "C:\blablabla\computer\test.txt"
$room = "b4554"
$b = 0

foreach ($Computer in $Computers)
    {
        Write-Host ("department-" + $room + "-" + $b)
        Invoke-Command -ComputerName $computer -credential ladmin -ScriptBlock {Rename-Computer -NewName ("logti-" + $classe + "-" + $b) } 
        add-computer -DomainName axiom.ad.ca -Credential AXIOM\dadmin
        Restart-Computer -computername $computer
        $b = $b + 1
        $computer
    } 

到目前为止...唯一困扰我的是我无法在我的循环中添加 00 到 09 并且似乎通过使用 -credential 开关我发送了我的域管理员用户名和密码...远非理想。

有人知道如何清理它吗?如果有人有更好的主意,我愿意接受建议。

使用 format operator (-f):

构建您的字符串
foreach ($Computer in $Computers)
    {
        Write-Host (<b>"department-{0}-{1:d2}" -f $room, $b</b>)
        Invoke-Command -ComputerName $computer -credential ladmin -ScriptBlock {
          Rename-Computer -NewName (<b>"logti-{0}-{1:d2}" -f $args[0], $args[1]</b>)
        } -ArgumentList $classe, $b
        add-computer -DomainName axiom.ad.ca -Credential AXIOM\dadmin
        Restart-Computer -computername $computer
        <b>$b++</b>
        $computer
    }