2

PowerShell을 통해 Live @ edu 용 Exchange 2010에 연결합니다. 표준 메서드를 사용하여 연결할 수 있습니다. 그러나 매번 세션 명령을 다운로드하고 가져 오는 것은 낭비입니다. 특히 LAN에 있지 않기 때문에 낭비입니다. 또한 때때로 이러한 스크립트는 웹 페이지로 데이터를 반환 할 것이므로 가져 오기 시간이 낭비되는 것처럼 보입니다.가져온 PowerShell 세션을 사용하는 동안 Live @ EDU (outlook.com)에 대해 어떻게 인증합니까?

Export-PSSession cmdlet을 사용하여 세션을 내보내는 방법을 찾았습니다. Import 모듈을 사용하여 해당 내 보낸 모듈을 가져 오면 한 가지 문제를 제외하고 모든 것이 제대로 작동합니다. 모듈에서 cmdlet을 실행하면 대화식으로 GUI를 통해 암호를 설정해야합니다. 내가 정말로 원하는 것은 스크립트가 비대화 형 방식으로 실행되지만 모듈을 로컬로로드하는 것입니다.

이 작업을 수행 할 수 있습니까?

답변

2

직면 한 문제는 가져온 모든 함수에 대해 암시 적으로 PSSession을 설정할 수 있어야한다는 것입니다. 이를 수행하려면 Set-PSImplicitRemotingSession 기능을 실행할 수 있어야합니다.

불행히도 해당 기능을 내보낼 수 없으므로 액세스 할 수 없습니다. 이 문제를 해결하려면 PSM1 파일을 열어이 기능을 $script:ExportModuleMember 끝에 추가해야합니다. 이제 모듈을 가져 오면 모든 기능에 대해 PSSession을 설정하는 기능을 사용할 수 있습니다.

가져온 모듈을 사용하기 위해 powershell 또는 스크립트를 실행해야합니다.

Import-Module "C:\Credentials.psm1" 
Import-Module "C:\ExportedPSSession.psm1" 
$Cred = Import-Credential -path C:\Cred.xml 
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri "https://ps.outlook.com/powershell/" -Authentication Basic -AllowRedirection -Credential $Cred 
Set-PSImplicitRemotingSession -PSSession $Session -createdByModule $True 
#You can now run any of the imported functions. 

Credentials.psm1주의! xml 파일을로드 할 수있는 사용자라면 누구나 가장 할 수 있습니다!

function Export-Credential($cred, $path) {  
    $cred = $cred | Select-Object *  
    $cred.password = $cred.Password | ConvertFrom-SecureString 
    $obj = New-Object psobject 
    $obj | Add-Member -MemberType NoteProperty -Name UserName -Value $cred.username 
    $obj | Add-Member -MemberType NoteProperty -Name Password -Value $cred.password 
    $obj | Export-Clixml $path 
} 

function Import-Credential($path) {  
    $obj = Import-Clixml $path  
    $obj.password = $obj.Password | ConvertTo-SecureString 
    return New-Object system.Management.Automation.PSCredential($obj.username, $obj.password) 
} 
+0

나는 그 부분을 작동 시켰습니다. 나는 그의 코드를 따라 BPOS가 올바르게 작동하도록했다. 그러나 BPOS cmdlet은 자격 증명 매개 변수를 사용합니다. 그러나 Live @ edu의 경우에는 자격 증명을 지정하는 방법이 표시되지 않습니다. 이 지시 사항을 따르고 모듈을로드하거나 모듈을로드하고 지시 사항을 따르는 경우, 여전히 대화식으로 암호를 묻습니다. –

+0

PowerShell이 ​​대화식으로 사용자로부터 cred를 요청하거나 다른 양식/프로세스가 PS 외부에서이 요청을하고 있습니까? – jamason1983

+0

PowerShell에서 대화식으로 creds를 요청하고 있습니다. 사용자 이름은 세션을 내보내는 데 사용 된 사용자로 미리 채워져 있습니다. –