0

我正在尝试使用 Powershell 脚本根据序列号重命名计算机。

到目前为止,我有 - Set-ExecutionPolicy -Unrestricted $name = (Get-WmiObject win32_bios).SerialNumber.Trim() Rename-Computer -NewName $name -DomainCredential \

我不希望这个提示,因为我有几千个系统要映像,我希望这个只是静默重命名,然后 MDT 2012 Update 1 将重新启动。

在 powershell 和脚本方面,我是一个 n00b,我花了一周的大部分时间试图弄清楚这一点。我可以毫无问题地让重命名在本地工作,但我希望我能得到一些帮助,默默地做这件事。

我想我的问题是,如何在我的 powershell 脚本中输入密码,这样我就不必在工作站输入密码了?

4

2 回答 2

1

我有点晚了,但你不能在你的任务序列规则中做:OSDComputerName=%serialnumber%,因为你正在使用 MDT?

当任务序列运行时,它应该只将计算机名称设置为该序列号。如果您有 OSDComputerName=WS%SerialNumber% 之类的前缀或后缀

于 2014-05-15T00:56:57.233 回答
0

您可以使用Get-WmiObject相同的命令 let 并传递存储在变量中的密码,如下所示

(Get-WmiObject win32_computersystem).Rename( $NewName,$passwd,'domain\username')

要将密码存储在变量中,您可以执行类似的操作

$key = 1..32 | ForEach-Object { Get-Random -Maximum 256 }
$passwd = Read-Host "Enter password" -AsSecureString
$encpwd = ConvertFrom-SecureString $passwd -Key $key
$encpwd

这个例子取自这篇文章how to pass credentials to rename command?

浏览这篇文章;它详细解释了存储密码的安全和非安全方式。

于 2014-05-05T22:02:36.040 回答