Weboldal keresés

Automatizálja a Lync/Skype for Business felhasználók engedélyezését és letiltását


Amikor azt látom, hogy a rendszergazdák manuálisan engedélyezik az összes Lync/Skype for Business-felhasználójukat, megborzongok. A PowerShell néhány sorával és egy ütemezett feladattal automatikusan engedélyezheti a felhasználókat a Lync/Skype Vállalati verzió számára. Egyszerűen másolja át a szkriptpéldákat, és módosítsa azokat az infrastruktúra adataival, és távirányítással végezzen ütemezett feladatot Lync/Skype Vállalati kiszolgálón vagy nem Lync/Skype Vállalati verzió kiszolgálón.

Először is meg kell határozni, hogy kinek kell engedélyeznie a Lync/Skype for Business szolgáltatást, és milyen beállításokat kell megadni ezeknek a felhasználóknak. Példákat mutatok be különböző forgatókönyvekre, a felhasználók engedélyezésére vagy letiltására egyaránt. (Minden példa csak a jelenleg nem engedélyezett Lync/Skype for Business felhasználókat keresi, és feltételezi, hogy az e-mail cím az engedélyezett SIP-cím.)

1. példa: Engedélyezze a vállalat összes felhasználóját a @sajatdomain.com e-mail fiókkal a Lync normál használatához.

Get-CsAdUser -Filter { Enabled -ne $True -and WindowsEmailAddress -like '*@yourdomain.com' } |
Enable-CsUser -RegistrarPool 'yourpool' -SipAddressType emailaddress

2. példa: Engedélyezze a vállalat összes felhasználóját egy adott Active Directory szervezeti egységen belül, valamint egy @sajatdomain.com e-mail fiókot a Lync normál használatához.

Get-CsAdUser -OU 'your.domain.com/OU' -Filter { Enabled -ne $True -and WindowsEmailAddress -like '*@yourdomain.com' } |
Enable-CsUser -RegistrarPool 'yourpool' -SipAddressType emailaddress

3. példa: Engedélyezze a vállalat összes felhasználóját egy adott City attribútummal a Lync normál használatához megfelelő regisztrátorkészlettel.

Get-CsAdUser -Filter { Enabled -ne $True -and WindowsEmailAddress -like '*@yourdomain.com' -and City -eq 'YourCityName' } |
Enable-CsUser -RegistrarPool 'yourlocationdependantpool' -SipAddressType emailaddress

4. példa: Engedélyezze a vállalat összes felhasználóját egy adott City attribútummal a Lync normál használatához megfelelő regisztrátorkészlettel és egy adott helyházirenddel.

$users = Get-CsAdUser -Filter { Enabled -ne $True -and WindowsEmailAddress -like '*@yourdomain.com' -and City -eq 'YourCityName' }
ForEach ($user in $users)
{
	Enable-CsUser $user.Identity -RegistrarPool 'yourlocationdependantpool' -SipAddressType emailaddress
	Grant-CsLocationPolicy -Identity $user.Identity -PolicyName 'yourlocationpolicy' -Confirm:$False
}

5. példa: Engedélyezze a vállalat összes felhasználóját egy adott City attribútummal az Enterprise Voice számára egy adott hangszabályzattal, tárcsázási tervvel, konferenciaházirenddel és helyházirenddel. (Ne felejtsen el egy egyedi sor URI-t a Set-CsUser parancs futtatásakor, ha szükséges.)

$users = Get-CsAdUser -Filter { Enabled -ne $True -and WindowsEmailAddress -like '*@yourdomain.com' }
ForEach ($user in $users)
{
	Enable-CsUser -Identity $user.Identity -RegistrarPool 'yourlocationdependantpool' -SipAddressType emailaddress
	Set-CsUser -Identity $user.Identity -EnterpriseVoiceEnabled $True -Confirm:$False
	Grant-CsConferencingPolicy -Identity $user.Identity 'yourconferencingpolicy' -Confirm:$False
	Grant-CsDialPlan -Identity $user.Identity -PolicyName 'yourdialplan' -Confirm:$False
	Grant-CsLocationPolicy -Identity $user.Identity -PolicyName 'yourlocationpolicy' -Confirm:$False
	Grant-CsVoicePolicy -Identity $user.Identity -PolicyName 'yourvoicepolicy' -Confirm:$False
}

6. példa: A következő példa kiemeli a PowerShell Remoting alkalmazást, amellyel távolról hajthatja végre a felhasználói fiókok engedélyezését egy külön számítógépről.

$serviceuser = 'serviceuser'
$servicepassword = 'servicepassword' | ConvertTo-SecureString -AsPlainText -Force
$servicecredential = New-Object system.Management.Automation.PSCredential($serviceuser, $servicepassword)
$lyncsession = New-PSSession -ConnectionUri 'https://yourpoolname/ocspowershell' -Credential $servicecredential
$emailaddress = '*@yourdomain.com'
Invoke-Command -Session $lyncsession -ScriptBlock {
	param ($emailaddress) Get-CsUser -Filter "WindowsEmailAddress -like '$emailaddress'" |
	Enable-CsUser -RegistrarPool 'yourpool' -SipAddressType emailaddress
} -ArgumentList $emailaddress
Remove-PSSession $lyncsession

7. példa: A következő példa kiemeli, hogy több városon keresztül kell áthaladni, és beállítani a megfelelő készletet és házirendeket az adott városnak megfelelően. Ez a példa egy .CSV fájlt használ, amely tartalmazza az összes várost és a hozzájuk tartozó beállításokat. Ugyanezt a kóddal is elérheti egy egyéni objektum hozzáadásával, majd minden város hozzáadásával. CSV-fájl használata javasolt, mivel ez lehetővé teszi városok hozzáadását/eltávolítását a jövőben a szkript megváltoztatása nélkül.


<#
Contents of an example cities.csv

Name,RegistrarPool,DialPlan,ConferencingPolicy,LocationPolicy,VoicePolicy
London,LondonPool,LondonDialPlan,LondonConferencingPolicy,LondonLocationPolicy,LondonVoicePolicy
Chicago,ChicagoPool,ChicagoDialPlan,ChicagoConferencingPolicy,ChicagoLocationPolicy,ChicagoVoicePolicy
Toronto,TorontoPool,TorontoDialPlan,TorontoConferencingPolicy,TorontoLocationPolicy,TorontoVoicePolicy
Sydney,SydneyPool,SydneyDialPlan,SydneyConferencingPolicy,SydneyLocationPolicy,SydneyVoicePolicy
#>

$cities = Import-Csv cities.csv

ForEach ($city in $cities) {
	$users = Get-CsAdUser -Filter { Enabled -ne $True -and WindowsEmailAddress -like ‘*@yourdomain.com’ -and City -eq $city.Name }
	ForEach ($user in $users)
	{
		Enable-CsUser -Identity $user.Identity -RegistrarPool $city.RegistrarPool -SipAddressType emailaddress
		Set-CsUser -Identity $user.Identity -EnterpriseVoiceEnabled $True -Confirm:$False
		Grant-CsConferencingPolicy -Identity $user.Identity $city.ConferencingPolicy -Confirm:$False
		Grant-CsDialPlan -Identity $user.Identity -PolicyName $city.DialPlan -Confirm:$False
		Grant-CsLocationPolicy -Identity $user.Identity -PolicyName $city.LocationPolicy -Confirm:$False
		Grant-CsVoicePolicy -Identity $user.Identity -PolicyName $city.VoicePolicy -Confirm:$False
	}
}

Az alábbiakban néhány példa látható a felhasználók Lync szolgáltatásból való automatikus letiltására, ha az Active Directory-fiókjuk le van tiltva.

1. példa: A Lync/Skype for Business letiltása az Active Directory összes letiltott felhasználójáról.

Get-CsAdUser -LDAPFilter "(&(userAccountControl:1.2.840.113556.1.4.803:=2)(msRTCSIP-UserEnabled=TRUE))" |
Disable-CsUser

2. példa: A Lync/Skype for Business távoli letiltása az Active Directory összes letiltott felhasználójáról.

$serviceuser = 'serviceuser'
$servicepassword = 'servicepassword' | ConvertTo-SecureString -AsPlainText -Force
$servicecredential = New-Object system.Management.Automation.PSCredential($serviceuser, $servicepassword)
$lyncsession = New-PSSession -ConnectionUri 'https://yourpoolname/ocspowershell' -Credential $servicecredential
Invoke-Command -Session $lyncsession -ScriptBlock {
	Get-CsAdUser -LDAPFilter "(&(userAccountControl:1.2.840.113556.1.4.803:=2)(msRTCSIP-UserEnabled=TRUE))" |
	Disable-CsUser
}
Remove-PSSession $lyncsession

3. példa: A kérésnek megfelelően itt van a megoldás a Lync/Skype for Business távoli letiltására az Active Directory-csoport összes felhasználójánál. A kulcs itt az LDAP-szűrő beállítása, hogy csak egy adott csoport tagjait tartalmazza.

$serviceuser = 'serviceuser'
$servicepassword = 'servicepassword' | ConvertTo-SecureString -AsPlainText -Force
$servicecredential = New-Object system.Management.Automation.PSCredential($serviceuser, $servicepassword)
$lyncsession = New-PSSession -ConnectionUri 'https://yourpoolname/ocspowershell' -Credential $servicecredential
Invoke-Command -Session $lyncsession -ScriptBlock {
	Get-CsAdUser -LDAPFilter "(&(memberof=CN=YourGroup,OU=Users,DC=YourDomain,DC=com)(msRTCSIP-UserEnabled=TRUE))" |
	Disable-CsUser
}
Remove-PSSession $lyncsession

Nyugodtan írjon megjegyzést a kívánt forgatókönyvhöz, és frissíteni fogom ezt a bejegyzést a megoldással.

Kapcsolódó cikkek