Nhập mô-đun Powershell AD trong chuỗi nhiệm vụ MDT


13

Tôi đã viết tập lệnh powershell ngắn này để đổi tên máy tính thành một phần của chuỗi nhiệm vụ MDT:

Import-Module ActiveDirectory

$AdminUsername = 'domain.com\administrator'
$AdminPassword = 'password' | ConvertTo-SecureString -asPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential -ArgumentList $AdminUsername, $AdminPassword              

$Domain = Get-ADDomainController DomainName domain.com -Discover -NextClosestSite
$Site = $Domain.Site
$DomainComputer = Get-WmiObject Win32_BIOS 
$Serial = $DomainComputer.SerialNumber
$Computername = $Site + "-" + $Serial

Rename-Computer -NewName $Computername -DomainCredential $cred 

Khi MDT chạy tác vụ này, nó sẽ chạy nó với tư cách quản trị viên cục bộ. Tôi nhận được lỗi sau khi nó cố tải Mô-đun AD.

Warning: Error initializing default drive:  'The server has rejected the client credentials.'.

Tôi có thể nhập mô-đun tốt sau khi chuỗi nhiệm vụ kết thúc từ máy khi đăng nhập với tư cách quản trị viên tên miền, nhưng không phải là quản trị viên cục bộ của máy. Có cách nào để chạy chuỗi nhiệm vụ MDT với tư cách là quản trị viên tên miền hoặc nâng cao các đặc quyền của quản trị viên cục bộ trong chuỗi nhiệm vụ không?

Cảm ơn trước cho bất kỳ trợ giúp bạn có thể cung cấp,

Mx

CẬP NHẬT: 10/13/2015

Tôi đã quyết định chuyển sang sử dụng mô-đun AD trong tập lệnh MDT của mình và ngay sau khi đăng bài này đã nghĩ ra một cách khác để thực hiện điều này. Kết quả của tôi với mô-đun AD là không thể dự đoán tốt nhất. Tôi muốn đăng nó ở đây cho hậu thế. Tôi thêm phần này vào thư mục Khôi phục trạng thái> Tác vụ tùy chỉnh dưới dạng "Chạy tập lệnh Powershell" trong chuỗi nhiệm vụ MDT của tôi và sau đó thêm tác vụ Khởi động lại máy tính ngay bên dưới nó. Nó đã hoạt động như một cơ duyên trên triển khai hơn 1600 khách hàng trong năm qua.

$type = [System.DirectoryServices.ActiveDirectory.DirectoryContextType]"Domain"
$context = New-Object System.DirectoryServices.ActiveDirectory.DirectoryContext($type, "yourdomain.edu", "domainadmin", "yourpasswordhere")
$domain = [System.DirectoryServices.ActiveDirectory.Domain]::GetDomain($context)
$DC = $domain.FindDomainController().Name
$Prefix = $DC.Substring(0,5)
$DomainComputer = Get-WmiObject Win32_BIOS 
$Serial = $DomainComputer.SerialNumber
$Computername = $Prefix + "-" + $Serial
$Password = "yourpasswordhere"
$Username = "yourdomain.edu\domainadmin"
$Computer = Get-WmiObject Win32_ComputerSystem
$Computer.Rename($Computername,$Password,$Username)

Bạn có bị thiếu $AdminPasswordtrong Danh sách đối số PSCredential không?
Mathias R. Jessen

Lời xin lỗi, nó nằm trong kịch bản thực tế, nhưng phải được bỏ qua trong bản sao và dán.
Mx Gorply

Bạn có thực hiện chuỗi nhiệm vụ CMDhay PowerShellkhông? Nếu bạn đang thực thi powershell thì hãy thử cmdlệnh: powershell Ngoài ra tôi sẽ kiểm tra và xem hộp powershell có được kiểm tra trên màn hình cấu hình xây dựng boot.wim không
Elliot Labs LLC

@MxGorply Bạn có thể xác nhận: 1. tập lệnh đang được thực thi sau khi Windows khởi động sau khi cài đặt hệ điều hành như trong giai đoạn Khôi phục trạng thái hoặc là trong giai đoạn trước đó trong WinPE hoặc trong hệ điều hành được làm mới. 2. Trước khi bước này được chạy, bạn đã thực hiện bước tên miền tham gia / tham gia lại chưa.
Bernie White

4
@MxGorply Ah ok, vậy không có vấn đề gì với việc thực thi các lệnh? Cảnh báo là bởi vì khi mô-đun nhập, nó sẽ tự động cố gắng liên kết bằng thông tin đăng nhập hiện tại không hợp lệ, điều này sẽ được mong đợi. Nếu các lệnh đang chạy thì tôi sẽ lo lắng về cảnh báo trước khi bạn cung cấp thông tin đăng nhập. Bạn có thể sử dụng -WarningAction SilentlyContinueđể thay thế thông báo trên lệnh nhập mô-đun.
Bernie White

Câu trả lời:


1

Khi bạn chưa đăng nhập với tư cách là người dùng tên miền, bạn cần khởi tạo một cách rõ ràng một PSDrive và sau đó chạy các lệnh * -AD * từ đó:

Import-Module ActiveDirectory -WarningAction SilentlyContinue
New-PSDrive -Name AD -PSProvider ActiveDirectory -Server <your DC> -Root //RootDSE/ -Credential $cred
Set-Location AD:
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.