PowerShell Remoting dengan Exchange 2010: Nilai tidak boleh nol

8

Saya mengalami kesulitan menjalankan cmdlet Exchange 2010 melalui sesi PowerShell jarak jauh.

Saya memulai sesi PowerShell lokal saya sebagai Administrator dan mengeluarkan perintah berikut -

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

Seperti yang Anda lihat, tidak ada cmdlet Exchange yang berfungsi. Apa yang bisa menjadi masalah?

pk.
sumber
Hanya untuk memeriksa, apakah pengguna yang Anda jalankan sesi memiliki izin untuk menjalankan cmdlet ini? yaitu Anda dapat menjalankannya langsung di server tanpa masalah?
Ben Pilbrow
Ya. Mereka berjalan dengan baik di server di bawah akun yang sama. Semua jenis remoting (perintah-perintah atau interaktif) gagal.
pk.
Coba ImportSystemModulesyang memuat modul terdaftar ke runspace saat ini. Exchange cmdlet mungkin tidak secara otomatis diimpor ke sesi / runspace jarak jauh.
Bernie White

Jawaban:

2

Anda mencoba menyambungkan ke titik akhir remoting default di Exchange Server dan menambahkan ps snapins dari sana. Ini salah. Ganti 3 baris pertama Anda dengan ini:

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

Anda tidak harus memasukkan sesi, impor saja ke sesi lokal. Dari sini, Anda dapat menggunakan CmdLets khusus Exchange secara lokal. Juga, beberapa tipe Exchange .Net diinstal dengan Exchange Management Console, jadi ini perlu diinstal pada komputer lokal Anda jika Anda ingin melakukan hal-hal dengan ukuran kotak surat (Exchange menggunakan jenisnya sendiri untuk objek ukuran)

Trondh
sumber
Ini adalah cara yang tepat untuk pergi, instal EMC pada manajemen Anda atau stasiun kerja untuk tambahan PS. Dengan cara itu PS lokal memiliki akses ke alat yang dibutuhkan saat Anda terhubung. --- ATAU begitu Anda telah menginstal EMC gunakan Exchange Powershell yang diinstal secara langsung. Klik kanan dan jalankan sebagai pengguna manajemen jika perlu. Saya menggunakannya sepanjang waktu.
Tandai
1

Anda dapat melakukannya seperti ini, dengan mengimpor-pssesion dan menentukan koneksiURI & ConfigurationName.

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             

Ini mengharuskan Anda mengizinkan tcp port 80 di firewall Anda.

Dengan menggunakan sesi itu, Anda juga dapat memasukkannya seperti yang Anda inginkan:

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         
mdavidsen
sumber
0

Saya punya masalah yang sama sekali. Saya pikir solusinya adalah ini:

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

lalu tambahkan snap-in Anda, dan jalankan perintah Anda

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

northben
sumber
Ini akan memberi saya sesi terpencil secara implisit yang bukan tujuan saya. Saya benar-benar ingin membuat remoting interaktif berfungsi. Untuk keperluan mengatasi masalah ini, saya memang mencoba sesi jauh implisit dan gagal dengan cara yang berbeda. "Impor-PSSession: Menjalankan perintah Get-Command di sesi jauh melaporkan kesalahan berikut: Pengecualian telah dilemparkan oleh target doa .."
.
0

Apakah Anda mencoba menginstal Alat Manajemen Exchange dari DVD dan mengonfigurasi workstation Anda?

Sunny Chakraborty
sumber
0

Saya akan menyarankan menggunakan titik akhir remote yang merupakan bagian dari instalasi pertukaran normal. Anda dapat menemukan detail lebih lanjut di sini

Saya telah menggunakannya dengan sukses baik dengan EX 2010 dan EX 2013. Ini didukung cara dan mengikuti aturan RBAC, jadi saya akan menyarankan menggunakannya daripada menambahkan Exchange snappin ke titik akhir remoting "normal".

BartekB
sumber
0

Masalahnya adalah bahwa kedua mesin harus berada dalam domain yang sama.

Pastikan juga Anda menggunakan akun domain, bukan yang lokal.

Vanuan
sumber