try { # Import admin credentials $serverAddress = Get-Content -Path ".\DefaultServer.txt" $credential = Import-Clixml -Path ".\AdminCredential.xml" # Establish session with Exchange Server $session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://$serverAddress/PowerShell/ -Authentication Kerberos -Credential $credential Import-PSSession $session -DisableNameChecking # Parameter from batch script $identity = $args[0] # Debugging output for identity parameter Write-Output "Identity provided: $identity" # Attempt to fetch user's signature configuration try { $mailboxConfig = Get-MailboxMessageConfiguration -Identity $identity Write-Output "Mailbox configuration retrieved successfully." # Debugging output for mailbox configuration Write-Output "MailboxConfig: $mailboxConfig" $signatureHtml = $mailboxConfig.SignatureHtml if ($signatureHtml) { # Save signature as HTML file Write-Output "Signature found. Saving to .\UserSignature.html" Set-Content -Path ".\UserSignature.html" -Value $signatureHtml } else { # No HTML signature exists for this user Write-Output "No HTML signature found for user: $identity" } } catch { # Error retrieving mailbox configuration Write-Output "Failed to retrieve mailbox configuration for user: $identity. Error: $_" } } catch { # General error handling for PowerShell session Write-Output "An error occurred: $_" } finally { # Clean up the remote PowerShell session if ($session) { Write-Output "Cleaning up the session." Remove-PSSession $session } }