在文本文件中的 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
}
我是 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
}