Der Beitrag Remove Delegate from SQL Database erschien zuerst auf .
]]>We know that we have sometimes Problem with Delegates, we can´t read / Change / remove with sefautil.exe.
I create a Script for this issue, this is very helpful
If you have more delegate under „Manage Calls from:“ and no other Chance to remove it, you can use this small script.
Example: Get-SFBDelegate -DelegatorSip test1@contoso.com -DelegateSIP Test2@contoso.com
function Get-SfBDelegate {
Param([Parameter(Mandatory=$True,Position=0)][string]$delegateSIP,
[Parameter(Mandatory=$True,Position=1)][string]$delegatorSIP)
$SFBPools = Get-CsService | sort identity |select identity
$table =@()
foreach ($SFBPool in $SFBPools.identity)
{
$split = $SFBPool.Split(„:“)
$table += @{‚Function‘ = $split[0];’FQDN’=$split[1]}
}
$out = $table.ForEach({[PSCustomObject]$}) | ?{$.Function -match „registrar“} | Group-Object -Property Function
$menu = @{}
$Fqdn = ($out.group | ?{$_.FQDN -match „pool“} | select fqdn -Unique).FQDN
if ($fqdn.Count -gt „1“){
for ($i=1;$i -le $FQDN.count; $i++) {
Write-Host “ $i. $($FQDN[$i-1])“
$menu.Add($i,($FQDN[$i]))
}
}
else{
for ($i=1;$i -le $FQDN.count; $i++) {
Write-Host “ $i. $($FQDN)“
$menu.Add($i,($FQDN[$i]))
}
}
[int]$ans = Read-Host ‚Enter selection‘
$selection = $menu.Item($ans)
$servers = (Get-CsComputer -Pool $selection).identity
###################################################################
#$Servers = (Get-CsComputer | Where-Object -Property Pool -Match $pool | Select-Object identity).identity
$array =@()
foreach ($server in $Servers){
$DelegateQuery = „Select * From rtc.dbo.Resource Where UserAtHost='$delegateSIP
‚“
$DelegateResult= (Invoke-Sqlcmd -ServerInstance $Server\rtclocal -Query $DelegateQuery)
$DelegatorQuery= „Select * From rtc.dbo.Resource Where UserAtHost='$delegatorSIP
‚“
$DelegatorResult= (Invoke-Sqlcmd -ServerInstance $Server\rtclocal -Query $DelegatorQuery)
$resourceID = $DelegatorResult.ResourceId
$DelegationQuery = „select * From [rtc].[dbo].[Delegate] Where DelegatorId = '$resourceID
‚“
$DelegationResult =(Invoke-Sqlcmd -ServerInstance $Server\rtclocal -Query $DelegationQuery)
foreach ($Delegation in $DelegationResult){
$search = $Delegation.DelegateId
$SQLscript = „select * From rtc.dbo.Resource where ResourceId = '$search
‚“
$return= (Invoke-Sqlcmd -ServerInstance $Server\rtclocal -Query $SQLscript)
if ($DelegateResult.ResourceId -notmatch $search){$toRemove = „yes“} else {$toRemove = „no“}
$Subscribs = New-Object psobject -Property @{DelegatorId = $Delegation.DelegatorId;
DelegatorSIP =$DelegatorResult.UserAtHost;
DelegateId = $Delegation.DelegateId;
DelegateSIP =$return.UserAtHost;
FrontendServer = $server;
toRemove = $toRemove}
$array += $Subscribs
}
}
($Global:array = $array)| sort toRemove | ft -a Delegator*, Delegate*, Front*, to*
if (!([string]::IsNullOrEmpty($Global:array))){
$n = „n“
$n = Read-Host -Prompt „Do you like to remove all with property toRemove = yes? Press y = yes, n = no“
if ($n -eq ‚y‘){
foreach ($arr in $array){
if ($arr -match „yes“) {
$removeDelegator = $arr.DelegatorId
$removeDelegate = $arr.DelegateId
$DeleteQuery =“Delete From [rtc].[dbo].[PromptedSubscriber] Where PublisherId = '$removeDelegator
‚ AND SubscriberId = '$removeDelegate
‚
Delete From [rtc].[dbo].[Delegate] Where DelegatorId = '$removeDelegator
‚AND DelegateId = '$removeDelegate
‚“
$server = $arr.FrontendServer+“\rtclocal“
Invoke-Sqlcmd -ServerInstance $server -Query $DeleteQuery -ErrorAction SilentlyContinue
Write-Output „DELETED !!“
$arr | ft -a
}
$SubscriberId | ft -a
}
}
}
else {Write-Host „we dont found Entrys for the delegator: $delegatorSIP and delegate: $delegateSIP „}
}# Remove Delegator in SQL DATABASE end
Der Beitrag Remove Delegate from SQL Database erschien zuerst auf .
]]>Der Beitrag check your Lync environment erschien zuerst auf .
]]>Damit könnt ihr eure Lync Umgebung Testen!
Im ersten Teil des Scriptes müsst ihr die Variable eintragen
#########################################################################################
# Set Credential and Variable
$Global:UserName1 ="TestUser1" # TestUser1 SamAccountName
$Global:UserName2 ="TestUser2" # TestUser2 SamAccountName
$Global:UserName3 ="TestUser3" # TestUser3 SamAccountName
$Global:UserPW1 = "PW2014!!" # TestUser1 Password
$Global:UserPW2 = "PW2014!!" # TestUser2 Password
$Global:UserPW3 = "PW2014!!" # TestUser3 Password
$Global:LogonDomain = "contoso" # Logon Domain
$Global:TargetPSTNNr = "+123456789" # a Mobil number maybe
$Global:SIPDomain = "contoso.com" # Sip Domain
$Global:Language = "de-DE" # Primary Language
$global:LyncFE01FQDN = "LyncFE01.contoso.com" # Lync Frontend FQDN for SE and EE
$global:LyncFE02FQDN = "LyncFE02.contoso.com" # Lync Frontend FQDN for EE
$Global:isSE = "TRUE" # if Standard Edition type True, If Enterprise edition type false
# CommonAreaPhone Part
$Global:CommonAreaPhoneExt= "short dial" # PhoneExtension
$Global:CommonAreaPhonePIN= "159753" # PIN
$Global:CommonAreaPhoneName= "TestPhone" # SIPName from commonAreaPhone with out SIPDomain
#########################################################################################
Lync_Test_CSLyncInfrastructur.zip
Folgende Test cmdlet von dem Modul Lync sind in dem Modul eingebaut:
# Lync-TestAddressBookService
# Lync-TestAddressBookWebQuery
# Lync-TestAVConference
# Lync-TestCertificateConfiguration
# Lync-TestClientAuth
# Lync-TestComputer
# Lync-TestDialInConferencing
# Lync-TestFederation
# Lync-TestGroupExpansion
# Lync-TestGroupIm
# Lync-TestIM
# Lync-TestKerberosAccountAssignment
# Lync-TestMcxConference
# Lync-TestMcxP2PIM
# Lync-TestMcxPushNotification
# Lync-TestOUPermission
# Lync-TestP2PAV
# Lync-TestPhoneBootstrap
# Lync-TestPresence
# Lync-TestPstnOutboundCall
# Lync-TestPstnPeerToPeerCall
# Lync-TestRegistration
# Lync-TestSetupPermission
# Lync-TestTopology
# Lync-TestTrunkConfiguration
# Lync-TestVoiceUser
# Lync-TestWebApp
# Lync-TestWebAppAnonymous
Der Beitrag check your Lync environment erschien zuerst auf .
]]>Der Beitrag Lync Powershell auf lokalen Computer/Server öffnen! erschien zuerst auf .
]]>hier kannst Du alle Lync Server eintragen, mit den Du Dich verbinden möchtest.
#So kannst du mit Credentials in einem PS-Script arbeiten. Achtung das PW wird mit dem ausführenden Benutzer verschlüsselt und kann nur von diesem gelesen werden.
#Einmalig muss das PW in ein File gespeichert werden
#read-host -AsSecureString | ConvertFrom-SecureString | Out-File "c:Scriptpass.txt"
[string] $MenuOption = "None"
[bool] $HasInternetAccess = ([Activator]::CreateInstance([Type]::GetTypeFromCLSID([Guid]'{DCB00C01-570F-4A9B-8D69-199FDBA5723B}‘)).IsConnectedToInternet)
[string] $Menu = @‘
**********************************
Lync Server 2013 – Remote Powershell Load script
**********************************
Please select an option from the choices below.
Preinstallation steps
========================
1) Fronent Server –> LyncPool01
2) EdgeServer –> Lyncedge01
3) SBA –> SBA01
99)
‚@
$Menu += @‘
99) Exit
Select an option.. [1-99]?
‚@
# Bitte Variablen anpassen
$DomainAccount = <DomainLyncAdminAccount>
$lyncPool = "<FQDN für LyncPool oder lync Frontend>"
$Lyncedge01 = "<FQDN für LyncEdgeServer oder LyncEdgePool>"
$SBA01 = "<FQDN für SBA>"
# Programm
Do {
if ($MenuOption -ne "None") {Write-Host "`nLast command: "$MenuOption -BackgroundColor Yellow -ForegroundColor black}
$MenuOption = Read-Host $Menu
switch ($MenuOption) {
1 { # Fronent Server –> LyncPool01
$username="$DomainAccount"
$pass= cat c:Scriptpass.txt | ConvertTo-SecureString
$credentials = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $username, $pass
$session = New-PSSession -ConnectionURI “https://$lyncPool/OcsPowershell” -Credential $credentials
Import-PsSession $session
}
2 { # EdgeServer –> Lyncedge01
$username="$DomainAccount"
$pass= cat C:UserssplanerDocumentsPowershellpass.txt | ConvertTo-SecureString
$credentials = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $username, $pass
$session = New-PSSession -ConnectionURI “https://$Lyncedge01/OcsPowershell” -Credential $credentials
Import-PsSession $session
}
3 { # SBA –> SBA01
$username="$DomainAccount"
$pass= cat C:UserssplanerDocumentsPowershellpass.txt | ConvertTo-SecureString
$credentials = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $username, $pass
$session = New-PSSession -ConnectionURI “https://$SBA01/OcsPowershell” -Credential $credentials
Import-PsSession $session
}
default {
Write-Host "You haven’t selected any of the available options."
}
}
} while ($MenuOption -ne 99)
Der Beitrag Lync Powershell auf lokalen Computer/Server öffnen! erschien zuerst auf .
]]>Der Beitrag zu einen Lync Server verbinden! erschien zuerst auf .
]]>read-host -AsSecureString | ConvertFrom-SecureString | Out-File "C:Users%userprofil%DocumentsPowershellpass.txt"
dein Passwort in deinem User Verzeichniss abspeichert!! Aber sei vorsichtig solange wie du an deinem PC Angemeldet bist. Kann jeder and diese Datei ran!!!!
#So kannst du mit Credentials in einem PS-Script arbeiten. Achtung das PW wird mit dem ausführenden Benutzer verschlüsselt und kann nur von diesem gelesen werden.
|
Der Beitrag zu einen Lync Server verbinden! erschien zuerst auf .
]]>