PowerShell Remote w / Exchange 2010: Giá trị không thể là null


8

Tôi gặp khó khăn khi chạy các lệnh ghép ngắn Exchange 2010 thông qua các phiên PowerShell từ xa.

Tôi bắt đầu phiên PowerShell cục bộ của mình với tư cách Quản trị viên và ban hành các lệnh sau -

PS C:\Windows\system32> $mailcred = Get-Credential
PS C:\Windows\system32> $mailSession = New-PSSession -ComputerName MAILSRV -Credential $mailcred
PS C:\Windows\system32> Enter-PSSession $mailSession
[MAILSRV]: PS C:\Users\jdoe\Documents> Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010
[MAILSRV]: PS C:\Users\jdoe\Documents> hostname
MAILSRV
[MAILSRV]: PS C:\Users\jdoe\Documents> Get-ExchangeServer
Value cannot be null.    
Parameter name: serverSettings
    + CategoryInfo          : 
    + FullyQualifiedErrorId : System.ArgumentNullException,Microsoft.Exchange.Management.SystemConfigurationTasks.GetExchangeServer

[MAILSRV]: PS C:\Users\jdoe\Documents> get-mailbox
Value cannot be null.    
Parameter name: serverSettings
    + CategoryInfo          : 
    + FullyQualifiedErrorId : System.ArgumentNullException,Microsoft.Exchange.Management.RecipientTasks.GetMailbox

Như bạn có thể thấy, không có lệnh ghép ngắn nào đang hoạt động. Điều gì có thể là vấn đề?


Chỉ cần kiểm tra, người dùng bạn đang chạy phiên có được phép chạy các lệnh ghép ngắn này không? tức là bạn có thể chạy chúng trực tiếp trên máy chủ mà không gặp vấn đề gì không?
Ben Pilbrow

Vâng Họ chạy tốt trên máy chủ trong cùng một tài khoản. Bất kỳ loại điều khiển từ xa (lệnh gọi hoặc tương tác) đều thất bại.
pk.

Hãy thử ImportSystemModulestải các mô-đun đã đăng ký vào không gian hiện tại. Lệnh ghép ngắn có thể không được tự động nhập vào phiên / runspace từ xa.
Bernie White

Câu trả lời:


2

Bạn đang cố gắng kết nối với điểm cuối từ xa mặc định trên Exchange Server và thêm các snapins ps từ đó. Cái này sai. Thay thế 3 dòng đầu tiên của bạn bằng điều này:

$mailcred = Get-Credential
$mailSession = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://MAILSRV/PowerShell/ -Credential $mailcred
Import-PsSession $mailSession

Thay vào đó, bạn không phải nhập phiên, nhập phiên vào địa phương. Từ đây trở đi, bạn có thể sử dụng CmdLets dành riêng cho Exchange. Ngoài ra, một số loại Exchange .Net được cài đặt với Exchange Management Console, do đó, loại này cần được cài đặt trên máy tính cục bộ của bạn nếu bạn muốn thực hiện công cụ với kích thước hộp thư (Exchange sử dụng loại riêng cho các đối tượng kích thước)


Đây là cách phù hợp để đi, cài đặt EMC trên quản lý hoặc trạm làm việc của bạn cho các tính năng bổ sung PS. Bằng cách đó, PS cục bộ có quyền truy cập vào các công cụ cần thiết khi bạn kết nối. --- HOẶC một khi bạn đã thực hiện cài đặt EMC, hãy sử dụng Exchange Powershell được cài đặt trực tiếp. Nhấp chuột phải và chạy nó như một người dùng quản lý nếu cần thiết. Tôi sử dụng tất cả các thời gian.
Đánh dấu

1

Bạn có thể làm điều đó như thế này, với nhập-pssesion và chỉ định kết nốiURI & Tên cấu hình.

PS U:\> $cred = Get-Credential
PS U:\> $session = New-PSSession -ConnectionUri http://Exchange01/powershell -ConfigurationName Microsoft.Exchange -Credential $cred
PS U:\> Import-PSSession $session
PS U:\> Get-Mailbox marius.davidsen

Name                      Alias                ServerName       ProhibitSendQuota                                                                                        
----                      -----                ----------       -----------------                                                                                        
Marius Davidsen           Marius.Davidsen      Exchange01       unlimited             

Điều này đòi hỏi bạn phải cho phép cổng tcp 80 trong tường lửa của bạn.

Sử dụng phiên đó, bạn cũng có thể nhập nó như bạn muốn:

PS U:\> Enter-PSSession $session
[Exchange01]: PS> get-mailbox
[Exchange01]: PS> get-mailbox marius.davidsen

Name                      Alias                ServerName       ProhibitSendQuota                                                                                        
----                      -----                ----------       -----------------                                                                                        
Marius Davidsen           Marius.Davidsen      Exchange01       unlimited         

0

Tôi đã có cùng một vấn đề một lần. Tôi nghĩ rằng giải pháp là thế này:

$s=new-pssession -computername xxxxx
import-pssession -session $s

sau đó thêm snap-in của bạn và chạy các lệnh của bạn

nguồn: http://forums.veeam.com/viewtopic.php?f=2&t=7514


Điều này sẽ cho tôi một phiên từ xa hoàn toàn không phải là những gì tôi sẽ làm. Tôi thực sự muốn làm việc từ xa tương tác làm việc. Với mục đích khắc phục sự cố này, tôi đã thử một phiên từ xa ẩn và nó đã thất bại theo một cách khác. "Nhập-PSSession: Thực thi lệnh Get-Command trong phiên từ xa đã báo cáo lỗi sau: Ngoại lệ đã bị ném bởi mục tiêu của lệnh gọi .."
pk.

0

Bạn đã thử cài đặt Công cụ quản lý Exchange từ DVD và định cấu hình máy trạm của mình chưa?


0

Tôi sẽ đề nghị sử dụng điểm cuối từ xa là một phần của cài đặt trao đổi thông thường. Bạn có thể tìm thêm chi tiết ở đây

Tôi đã sử dụng thành công cả EX 2010 và EX 2013. Cách này được hỗ trợ và nó tuân theo các quy tắc RBAC, vì vậy tôi sẽ khuyên bạn nên sử dụng nó thay vì thêm Exchange snappin vào điểm cuối từ xa "bình thường".


0

Vấn đề là cả hai máy phải nằm trong cùng một miền.

Ngoài ra, hãy đảm bảo bạn sử dụng tài khoản miền, không phải tài khoản địa phương.

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.