Get-inboxrule -mailbox jdoe | disable-inboxrule -confirm:$false >>>> not working. - powershell

I have a powershell script that disable user's AD accounts. One part is to disable the exchange inbox rules.
However when I try to run this.
Get-inboxrule -mailbox jdoe | disable-inboxrule -confirm:$false
I get this confirm popup.
Using Outlook Web App or Windows powershell to modify your rules will delete any rules what were previously turned off using outlook. If you want to preserve the rules you turned off using Outlook, select No and user outlook to edit your rules, are you sure you want to proceed?
How can I stop the confirm prompt?

think this did it.
Get-inboxrule -mailbox jdoe | disable-inboxrule -confirm:$false -AlwaysDeleteOutlookRulesBlob

Related

How to setup a group policy to set a logon script on every user in Active Directory using Powershell?

I know how to set group policy to add a logon script to every user using GUI but I wanted to know how can this be done using Powershell commands(or maybe with python).
Currently, the only real way to set a GPO setting via powershell requires that you know the registry key you're changing (all GPO settings resolve to registry entries), but be aware that settings done like this won't show up with the nice descriptions in the group policy gui tools:
Get-GPO -Name 'Logon Scripts' | Set-GPRegistryValue -Context User -Key 'HKEY_CURRENT_USER\path\to\key' -Value 'Foo.bat'
Generally, the better way to do what you want is to set the AD User's ScriptPath property instead:
Get-ADUser $user | Set-ADUser -ScriptPath 'Foo.bat'

Deleting an email using powershell

I want to delete an email from Exchange serveur and then from the mailbox received items,so I used this following powershell command but after a while , powershell_ise crashes and it closes
Search-Mailbox -Identity "Khalil Med" -SearchQuery 'Subject:"Phishing"' -DeleteContent
I live in the ISE daily and sometimes VSCode as needed and I do this sort of thing regularly in the ISE and VSCode, neither have crashed on me for this kind of use case. Yet, environments can differ. I find it hard to understand how running this simple request would crash the ISE, as it's not doing anything $psISE / ISE GUI specific.
Are you doing this on the Exchange server directly, or via Explicit or Implicit remote session from your admin workstation?
Also, make sure you have the RBAC role to perform this...
Get-ManagementRoleAssignment -Role 'Mailbox Import Export'
New-ManagementRoleAssignment -Role 'Mailbox Import Export' -User 'Administrator'
... and make sure you are getting something to act on, meaning actual emails using...
Search-Mailbox -Identity 'HostMaster TestUser' -SearchQuery "Subject:test" -EstimateResultOnly
If the response from the above is '0', then well, you now know why the -DeleteContent did not actually work.
As a sanity check. Rather than looking at one account. Look at all accounts to see if you are getting any hits on anyone..
Get-Mailbox -ResultSize Unlimited |
Search-Mailbox -SearchQuery 'Subject:test' -EstimateResultOnly -Force |
Where-Object -Property ResultItemsCount -gt 0

Office 365 Exchange Management Shell - Use data from Excel to run a loop with command

We are having round about 400 users that use Office 365 E-Mail Exchange which is managed on a local server via the Exchange Management Console. We activated E-Mail archives for the users that had PST-Files left on the server and migrated them by hand. To activate the mailbox archive we used the following command :
enable-remotemailbox <username> -archive
That worked fine and all. Now we want to double check and activate the archive for every user that has not been activated by hand. For this we have an excel sheet of all users with usernames which we want to run in a loop - so my question is :
Is it possible to tell the powershell to take information form an Excel/CSV file and loop through it with the above command (if an error occurs it needs to ignore and still run through). I imagined it somehow like
$users = Import-CSV C:\users.csv | foreach $user in $users
enable-remotemailbox $user -archive
Is it possible in this way or even an easier way?
You are almost there. Lets consider your CSV looks like this:
User
Alice
Bob
Then you can import the CSV and loop over each user using:
Import-Csv C:\users.csv | ForEach-Object {
enable-remotemailbox $_.User -archive
}

Need a msol command like set-mailbox -emailaddresspolicyenabled for hybrid server

We have office 365 and a hybrid server. It is set to sync 1 way from hybrid to o365.
We are wanting to run
Set-mailbox "$usertodisable#domain.com" -EmailAddressPolicyEnabled $true
on the hybrid server.
The problem is the hybrid server doesn't support/have the -mailbox commands. It has the -msol commands. I can not find an msol command that changes the emailaddresspolicyenabled. I also don't see a module to load for -mailbox.
We are running this command directly off the server itself. Any help would be great. Thank you and have a great day.
Use the Set-RemoteMailbox cmdlet to modify remote mailboxes. A remote mailbox is a mail user in Active Directory that's associated with a mailbox in the cloud-based service.
So what you are searching for seamed to be:
Set-RemoteMailbox -Identity "$usertodisable#domain.com" -EmailAddressPolicyEnabled $True

PowerShell - how to set mailbox to a user in Exchange 2003 remotely from a Win2008 server

in my company we still have Exchange 2003 with a MS domain 2003. I also have some member servers 2008 and I would like to run some powershell scripts from this last server.
I need to create a user which have 3 different email addreses SMTP.
I run this code to create the user
New-ADUser -SamAccountName $adpsID -Name $fmbName -Description
$fmbName -DisplayName $fmbName -UserPrincipalName $adpsID
-EmailAddress $fmbNameEmail -AccountPassword (ConvertTo-SecureString -AsPlainText "!$%&DF45DFG_" -Force) -Enabled $true -PasswordNeverExpires $false -Path $pathFMB
and I tried this to add an extra email...
Set-Mailbox -identity $fmbName -EmailAddresses -Description
"SMTP:$($fmbNameEmail)#$($domainFQDN)"
I get the following error:
Set-Mailbox : The term 'Set-Mailbox' is not recognized as the name of
a cmdlet, function, script file, or operable program. Check the
spelling of the name, or if a path was included, verify that the path
is correct and try again.
searching in google I found how to query the exchange 2003 usin WMI object but I couldnt find how to add mailboxes with WMI.
is it possible? is there any way to do so?
thanks a lot in advance.
Jose
The Exchange Management Shell was first introduced in Exchange 2007 so all the scripts you have for 2007,2010,2013 will not work on 2013 you will need to start from scratch.
On Exchange 2003 the Exchange API to use for Management is CDOEXM (important if you want to Mail-Enable objects) this is Com library you get when you install the exchange 2003 system management tools .Or you can modify the Directory objects directly using LDAP via ADSI. WMI on 2003 is useful if you want to access management information like Mailbox sizes or MessageTracking logs or you need to reconnect a disconnected Mailbox.
Cheers
Glen