Archive for the jobb Category

PowerShell Script

Posted in it, jobb, PowerShell with tags on 3 januari, 2013 by pirathotten

Blaha, hmm tänkte jag skulle bidra med lite PowerShell-Script.

Med detta script ser man till att alla användare i ett specifikt OU endast kan logga in på angivna maskiner.
Man kan även ta bort tillåtna arbetsstationer att logga in på.
Använder detta när jag ska låsa ner manuella gruppmailkonton så de endast kan läsa mailen ifrån OWA’n och ej logga in vartsomhelst i verksamheten.

#HottenScript
#Detta script gör att alla personer i ett angivet OU endast kan logga in på angivna servrar.
Import-module activedirectory
# LDAP Filter, searches for all accounts with workstations
$strFilter = ‘(&(objectCategory=User))’
# Datorer som läggs till i ”log in to” fliken, dvs datorer som användarna får logga in på.
$addStations = [string[]]( ”cas01”, ”cas02” )
# Arbetsstationer som skrivs in och ersätter fältet ”sune” är arbetsstationer som kommer tas bort ifrån ”log on to”
$removeStations = [string[]]( ”sune” )
# Redigera nedanstående rad så att sökvägen stämmer.
$objDomain = New-Object System.DirectoryServices.DirectoryEntry(”LDAP://OU=OUdir,OU=OUdir,ou=OUdir,DC=contoso,DC=com”)
# Create the Searcher
$objSearcher = New-Object System.DirectoryServices.DirectorySearcher
$objSearcher.SearchRoot = $objDomain
$objSearcher.PageSize = 1000
$objSearcher.Filter = $strFilter
$objSearcher.SearchScope = ”Subtree”
# Properties to load
$colPropList = [string[]]( ”samaccountname”, ”userworkstations” )
# Load Properties
foreach ($i in $colPropList) { $objSearcher.PropertiesToLoad.Add($i) }
# Get Results
$colResults = $objSearcher.FindAll()
# Loop through accounts
foreach ($objResult in $colResults) {
$User = $objResult.GetDirectoryEntry();
$samAccountName = $User.samAccountName;
$userWorkstations = [string]$User.userWorkstations;
# Convert workstations to an array
$userWorkstationsArray = $userWorkstations.split(”,”)
# Add workstations if they don’t already exists
foreach ($temp in $addStations) {
# Add only if it doesn’t already exist
if (!($userWorkstationsArray -contains $temp)) {
$userWorkstationsArray += $temp;
}
}
# Remove workstations if they exist
foreach ($temp in $removeStations) {
$userWorkstationsArray = $userWorkstationsArray |? { $_ -ne $temp }
}
# Make sure you only have unique entries (removes duplicates!)
$userWorkstationsArray = $userWorkstationsArray | select –uniq
# Convert to a comma separated string
$newWorkstations = $userWorkstationsArray -join ”,”
# Debugging output
Write-Host ”$samAccountName : ‘$userWorkstations'”
Write-Host $newWorkstations
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# UNCOMMENT BELOW IF YOU WANT TO SAVE THE CHANGES
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$User.userWorkstations = $newWorkstations; # Updates the userWorkstations property
$User.SetInfo(); # Saves the record
}

Med detta script aktiverar man ett mailkonto på ett AD konto.

#HottenScript
#Detta script skapar en mailbox på en AD-user.
Import-Module activedirectory
add-pssnapin Microsoft.Exchange.Management.PowerShell.E2010
add-pssnapin Microsoft.Exchange.Management.Powershell.Support
#I fältet efter ”/OUdir/” skriver man namnet som det står i AD’t efter alias skriver man inloggningsnamnet.
#Vill man byta container skriver man det i fältet efter -identity.
Enable-Mailbox -Identity ‘contoso.com/OUdir/OUdir/Namn Ad‘ -Alias ‘NaAd0101’

Med detta script aktiverar man fullmakt för angivna användare på ett specifikt mailkonto.
Det är fullt möjligt att aktivera flera users genom att kopiera ”add-mailboxpermissions” raden och lägga till flera rader under för att kunna lägga till fler users.

#HottenScript
#Detta script ger användare fulla rättigheter till den angivna brevlådan som finns i sökvägen.
Import-Module activedirectory
add-pssnapin Microsoft.Exchange.Management.PowerShell.E2010
add-pssnapin Microsoft.Exchange.Management.Powershell.Support
#Glöm inte att ändra sökvägarna samt användare till de som ska få fulla rättigheter på brevlådan. Brevlådans namn anges efter ”CN=” det som kommer efter är sökvägen till brevlådan.
Add-MailboxPermission -Identity ‘CN=ADalias,OU=OUdir,OU=OUdir,OU=OUdir,DC=contoso,DC=com’ -User ‘Domain\NaAd0101’ -AccessRights ‘FullAccess’

Detta script funkar precis som ovanstående fast man lägger ”send-to” rättigheter så att användaren kan skicka mail med den brevlådan som avsändare.

#HottenScript
#Detta script ger användare ”skicka som” rättigheter på angiven brevlåda.
Import-Module activedirectory
add-pssnapin Microsoft.Exchange.Management.PowerShell.E2010
add-pssnapin Microsoft.Exchange.Management.Powershell.Support
#Glöm inte att ändra brevlåda samt sökväg till brevlådan i nedanstående fält.
#Vill man ha flera användare så är det bara att kopiera raden och göra ändringar på namn.
Add-ADPermission -Identity ‘CN=ADalias,OU=OUdir,OU=OUdir,OU=OUdir,DC=contoso,DC=com’ -User ‘DOMAIN\NaAd0101’ -ExtendedRights ‘Send-as’

Detta script använder jag för att populera upp Lync med användare som finns i en angiven AD-grupp.

#HottenScript
#Detta script ser till att alla medlemmar i ”employee-adm” (med exchangekonto) bir inlagda i ly01 servern.
import-module activedirectory
import-module lync
$groupmember = get-adgroupmember employee-adm
foreach ($member in $groupmember)
{
$aduser = get-csaduser -identity $member.Name | where-object {$_.enable -ne ”true”}
if ($aduser -ne $())
{
enable-csuser -identity $aduser.identity -RegistrarPool ly01.contoso.com -SipAddressType emailaddress
}
}

Detta script byter lösenord på alla användare i en ad-grupp till ett angivet lösenord.

#HottenScript
#Detta script byter lösenordet för alla användare i gruppen ”PasswordChange” till ”Sommar99” och bli promptade att byta lösenord vid första inloggningen.
import-module activedirectory
Get-ADGroupMember ”PasswordChange” | Set-ADAccountPassword -reset -NewPassword (ConvertTo-SecureString -AsPlainText ”Sommar99” -Force)
Get-ADGroupMember ”PasswordChange” | Set-ADUser -ChangePasswordAtLogon $true

Detta script använder jag för att ta ut användare i en specifik grupp till en html fil så att jag snabbt kan kopiera alla användare och klistra in i en ny grupp. Detta använde jag för att vi hade massa gamla slaskgrupper som jag ville städa upp och skapa nya grupper efter microsofts AGDLP standard.

#HottenScript
#Detta script används för att ta ut medlemmar i en specifik grupp och exportera till ett html dokument.
#Syftet är att man enkelt kan kopiera alla användare i en grupp för att sedan klistra in någonting annat.
import-module activedirectory
Get-adgroupmember –identity X | convertto-html –property name | out-file c:\*.html

Scripten är testade och skapade i en miljö bestående av Windows Server 2008R2, Exchange 2010 SP1, Lync 2010

Annonser
%d bloggare gillar detta: