How to get-aduser for a manager using a UPN - powershell

Im using
$Manager = Get-aduser ($User.Manager) -replace "#email.com"
To try and process a spreadsheets data based on a form. the manager item the end user puts into the form is managers email aka...their UPN but im trying to use the upn to pull and assign the aduser as the manager for the individuals im trying to process.
any ideas?

Related

Add Sip to proxyaddress attribute in AD using powershell

I have username, and email address.
Couldn’t find a simple command to add sip address in AD attributes.
SIP:emiladdress
Please help
Thanks
You need to get the AD user you want to update then append the ProxyAddresses property (attribute) then set the AD user. I neat and easy way to do this is to use the Active Directory cmdlets instancing feature.
$ADUser = Get-ADUser <UserName> -Properties ProxyAddresses
$ADUser.ProxyAddresses = $ADUser.ProxyAddresses += "sip:user#domain.com"
Set-ADUser -Instance $ADUser

Reading CSV, getting AD properties of each item and sending an email via PowerShell

trying to automate a part of my job that requires me to audit inactive users and email their managers. This report comes in the form of a CSV with several columns. I was hoping to have a PowerShell script that goes through one of the columns, reads the username and gets the ad-properties such as Full name and manager. I would then like to be able to have the script send a pre-canned response to this manager to let them know that their direct report needs to log in.
Example CSV:
Name | username | last log in | etc
I've read in a similar posting that some create an array and store each item in a column into an array such as
$usernames=#()
$usernames+= $_.username
But I am having difficulties fleshing out the rest of the logic once all items are in an array.
Please forgive any issues, this is my first post. Thanks for your time.
I am having difficulties fleshing out the rest of the logic once all items are in an array.
Once you have an array of usernames, you just need a loop statement - like a foreach loop:
foreach($username in $usernames){
# fetch user account from AD
$ADUser = Get-ADUser $username -Properties manager,displayName
# fetch manager account from AD
$ADManager = Get-ADUser $ADUser.manager -Properties mail,displayName
# compose email content
$subject = "'$($ADUser.displayName)' needs to log in!"
$body = "Dear $($ADManager.displayName),`n`nPlease inform your direct report '$($ADUser.displayName)' that they need to log in!`n`nBest Regards`nMarkM"
# send email to manager
Send-MailMessage -From markm#company.tld -Subject $subject -Body $from -SmtpServer mail.server.fqdn
}

Create AD Object - Not Exchange

I am currently trying to create an Active Directory contact object in a specific OU in our Active Directory. I am not looking at using Exchange PowerShell. I would like to do this via normal PowerShell directly in to AD.
I have looked online and found that I can create a contact using the below command, this creates it in a specific OU.
New-ADObject -Name SaraDavisSGTContact3 -Type contact -Path "OU=SGTestOU,OU=Contacts,DC=example,DC=Example,DC=local"
How would I also get it to add other attributes such as mail (email address), first name, surname, etc.? I tried -Mail example.com, etc., but this didn't work.
Please bear in mind I will eventually try and get this to read from a CSV to do in bulk, so the simplier the code the better.
Use the -OtherAttributes Parameter to add additional attributes.
See New-ADObject MSDN Documentation
New-ADObject -name SaraDavisSGTContact3 -Type Contact -path "OU=SGTestOU,OU=Contacts,DC=example,DC=Example,DC=local" -OtherAttributes #{
'mail'="sara#gmail.com";
'proxyAddresses'="sara#gmail.com";
'givenName'="Sara";
'sn'="Davis";
'displayname'="Sara Davis"
}

Powershell - Exchange calendar sharing looping through all users

What I would like to do is get a list of all users in exchange and loop through them giving each user full access ("owner") right to every other calendar. So basically I want everyone at the company to have "owner" permission to everyone else.
Here is what I have to far it works fine but I would like this to be automated meaning the "username1" and "username2" to be replaced with active users from my exchange server.
Add-MailboxFolderPermission -Identity "username1":\calendar -user "username2" -AccessRights owner
From my comment on the question.
You have lots of options but you can use
Get-Mailbox | ForEach-Object{Add-MailboxFolderPermission -Identity "username1":\calendar -user $_.SamAccountName -AccessRights owner}
This will grab every mailbox, since no filter is applied, and add the MailboxFolderPermission to those mailboxes.
That should work. Be careful as you are making irreversable changes to everyone.

How to get LDAP displayname and email id using Msbuild?

I got communitytasks to send mail. But in subject itself if i add display name of LDAP user, I would know who is taking build.
Following Code in Powershell would give me mail id and displayname
$searcher = [adsisearcher]"(samaccountname=$env:USERNAME)"
$mailid= $searcher.FindOne().Properties.mail
$DispName= $searcher.FindOne().Properties.displayname
Is there any way to get mail id and displayname in Msbuild or is it better to call powershell commands through inline task?
In MSBuild you can refer to environment variables as if they were defined properties, so taking the name of the user is as simple as writing $(USERNAME).