当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 使用所需的计算机名称和 OU 将计算机加入域

作者:精品下载站 日期:2024-12-14 08:14:01 浏览:16 分类:玩电脑

使用所需的计算机名称和 OU 将计算机加入域


有人提交了 PowerShell 请求,要求编写将工作站添加到域的脚本。该解决方案将在映像过程中使用,能够更改工作站名称并将工作站导入用户指定的组织单位,而无需在步骤之间重新启动。我将一步一步地处理这个请求,从基础知识到用户提示。还显示少量验证,以帮助您开始处理无效输入。

步骤#1:这是将计算机添加到域的最简单方法。在此示例中,系统将提示您输入凭据,然后进行所需的重新启动。

Add-Computer -DomainName "your.domain.here"
Restart-Computer

步骤#2:如果您需要自动化脚本而不提示用户输入凭据,您可以为用户帐户提供将计算机添加到域的权限。

$cred = New-Object System.Management.Automation.PsCredential("domain\useraccountwithjoinpermissions", (ConvertTo-SecureString "useraccountpassword" -AsPlainText -Force))
Add-Computer -DomainName "your.domain.here" -Credential $cred
Restart-Computer

步骤 #3:以下示例显示如何指定计算机帐户将驻留在 Active Directory 中的组织单位。

$cred = New-Object System.Management.Automation.PsCredential("domain\useraccountwithjoinpermissions", (ConvertTo-SecureString "useraccountpassword" -AsPlainText -Force))
Add-Computer -DomainName "your.domain.here" -Credential $cred -OUPath "OU=computers,OU=yourlocation,DC=your,DC=domain,DC=here"
Restart-Computer

步骤#4:以下示例重点介绍了如何将计算机作为新计算机名称添加到域中,而无需重新启动。映像进程最初可能会为您的计算机分配一个随机名称,需要更改该名称以包含特定的命名标准。

$cred = New-Object System.Management.Automation.PsCredential("domain\useraccountwithjoinpermissions", (ConvertTo-SecureString "useraccountpassword" -AsPlainText -Force))
Add-Computer -DomainName "your.domain.here" -Credential $cred -OUPath "OU=Computers,OU=YourLocation,DC=your,DC=domain,DC=here"
Rename-Computer -NewName $newcomputername -DomainCredential $credential -Force
Restart-Computer

步骤 #5:最后一个示例允许用户输入以确定计算机名称和 Active Directory 位置。这利用 Write-Host 和 Read-Host 以及少量 IF THEN 验证来实现此目的。如果有人没有输入任何值,它将使用向用户显示的默认值。对于数字 1-4 选项,如果输入了无效字符,它也将使用指定的默认设置。

Write-Host "Please enter your desired computer name: [Default $env:computername]:"
$computername = Read-Host

$renamecomputer = $true
if ($computername -eq "" -or $computername -eq $env:computername) { $computername = $env:computername; $renamecomputer = $false }

Write-Host "Please enter your desired location [1-4] [Default 1]:
1. Chicago
2. Paris
3. Sydney
4. Toronto"
$ou = Read-Host

$validate = $false
if ($ou -eq "" -or $ou -eq "1") { $ou = "OU=Computers,OU=Chicago,DC=your,DC=domain,DC=here"; $validate = $true }
if ($ou -eq "2") { $ou = "OU=Computers,OU=Paris,DC=your,DC=domain,DC=here"; $validate = $true }
if ($ou -eq "3") { $ou = "OU=Computers,OU=Sydney,DC=your,DC=domain,DC=here"; $validate = $true }
if ($ou -eq "4") { $ou = "OU=Computers,OU=Toronto,DC=your,DC=domain,DC=here"; $validate = $true }
if ($validate -eq $false) { Write-Host "Invalid input, defaulting to [1]."; $ou = "OU=Computers,OU=Chicago,DC=your,DC=domain,DC=here"}

$credentials = New-Object System.Management.Automation.PsCredential("yourdomain\useraccountwithjoinpermissions", (ConvertTo-SecureString "useraccountpassword" -AsPlainText -Force))
Write-Host "Adding $computername to the domain"
Add-Computer -DomainName "your.domain.here" -Credential $credentials -OUPath $ou
if ($renamecomputer -eq $true) { Rename-Computer -NewName $computername -DomainCredential $credentials -Force }
Restart-Computer

[玩转系统] 使用所需的计算机名称和 OU 将计算机加入域

步骤#6:以下是一个函数示例,可以在脚本中使用,也可以在读者的 GUI 补充中使用。

function Join-Domain {

Param(
[Parameter(Position=0)]
[String]$computername = $env:computername,
[Parameter(Position=1)]
[ValidateSet(“OU=Computers,OU=Chicago,DC=your,DC=domain,DC=here”,”OU=Computers,OU=Paris,DC=your,DC=domain,DC=here”,”OU=Computers,OU=Sydney,DC=your,DC=domain,DC=here”,”OU=Computers,OU=Toronto,DC=your,DC=domain,DC=here”)]
[string]$OU = “CN=Computers,OU=Chicago,DC=your,DC=domain,DC=here”
)
$renamecomputer = $true
if ($computername -eq “” -or $computername -eq $env:computername) { $computername = $env:computername; $renamecomputer = $false }

$credentials = New-Object System.Management.Automation.PsCredential(“yourdomain\useraccountwithjoinpermissions”, (ConvertTo-SecureString “useraccountpassword” -AsPlainText -Force))
Write-Verbose “Adding $computername to the domain under $OU”
Add-Computer -DomainName “your.domain.here” -Credential $credentials -OUPath $OU
if ($renamecomputer -eq $true) { Rename-Computer -NewName $computername -DomainCredential $credentials -Force }
}

请随意发表评论或向我发送您希望在 PowerShell Blogger 上解决的您自己的场景。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯