rookeydooks
asked on
Login Script to pull users IP Phone from AD and then create a registry key in HKCU with that value
I need a login script to pull the IP Phone from Active Directory and add the value to:
HKEY_CURRENT_USER/SOFTWARE /XYZ/Phone Client
I found the script below on another website but unfortunately it thread ends with the original post'er saying.. they did a little tweaking to what was suggested and got it working! But they never posted what they done.
The suggested login script is
Dim objSysInfo, objUser
Set objSysInfo = CreateObject("ADSystemInfo ")
Set objUser = GetObject("LDAP://" & objSysInfo.UserName)
set strtelno = objuser.telephonenumber ' Currently logged in User
Const HKEY_CURRENT_USER = &H80000001
strComputer = "."
Set objRegistry = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv" )
strKeyPath = "SOFTWARE\shoreline teleworks\shoreware client\"
KeyPath = "SOFTWARE\shoreline teleworks\shoreware client"
strValueName = "AgentID"
strValue = strtelno ' <-- This sets the Telephone Number
objRegistry.CreateKey HKEY_CURRENT_USER, strKeyPath, strvaluename, strvalue
I'm guessing i need to add an LDAP path on line 3 >> Set objUser = GetObject("LDAP://" & objSysInfo.UserName)
Something like >> LDAP://OU=OurUSerGroup,DC= OurDomain, DC=com
I've researched objuser for IP Phone and it says use >> objuser.ipPhone (instead of line 4 >> set strtelno = objuser.telephonenumber ' Currently logged in User)
Then edit lines 9 and 10 >>
strKeyPath = "SOFTWARE\shoreline teleworks\shoreware client\"
KeyPath = "SOFTWARE\shoreline teleworks\shoreware client"
To our value >> SOFTWARE/XYZ/PhoneClient
I want to run this as a login script via Group Policy to around 50 users.
HKEY_CURRENT_USER/SOFTWARE
I found the script below on another website but unfortunately it thread ends with the original post'er saying.. they did a little tweaking to what was suggested and got it working! But they never posted what they done.
The suggested login script is
Dim objSysInfo, objUser
Set objSysInfo = CreateObject("ADSystemInfo
Set objUser = GetObject("LDAP://" & objSysInfo.UserName)
set strtelno = objuser.telephonenumber ' Currently logged in User
Const HKEY_CURRENT_USER = &H80000001
strComputer = "."
Set objRegistry = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv"
strKeyPath = "SOFTWARE\shoreline teleworks\shoreware client\"
KeyPath = "SOFTWARE\shoreline teleworks\shoreware client"
strValueName = "AgentID"
strValue = strtelno ' <-- This sets the Telephone Number
objRegistry.CreateKey HKEY_CURRENT_USER, strKeyPath, strvaluename, strvalue
I'm guessing i need to add an LDAP path on line 3 >> Set objUser = GetObject("LDAP://" & objSysInfo.UserName)
Something like >> LDAP://OU=OurUSerGroup,DC=
I've researched objuser for IP Phone and it says use >> objuser.ipPhone (instead of line 4 >> set strtelno = objuser.telephonenumber ' Currently logged in User)
Then edit lines 9 and 10 >>
strKeyPath = "SOFTWARE\shoreline teleworks\shoreware client\"
KeyPath = "SOFTWARE\shoreline teleworks\shoreware client"
To our value >> SOFTWARE/XYZ/PhoneClient
I want to run this as a login script via Group Policy to around 50 users.
ASKER
Hi Chris, Yes the value exists.
Its called Endpoint
Its called Endpoint
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Should i be able to save the below in to a notepad file, save as script.vbs and run it from the desktop of a windows 7 machine to test ?
try {
$adUser = ([ADSISearcher]"(sAMAccoun tName=$env :USERNAME) ").FindOne ()
$ipPhone = $adUser.Properties['ipPhon e'][0]
Set-ItemProperty HKCU:\SOFTWARE\XYZ\PhoneCl ient -Name Endpoint -Value $ipPhone
} catch {
# Would you like to log any errors?
}
try {
$adUser = ([ADSISearcher]"(sAMAccoun
$ipPhone = $adUser.Properties['ipPhon
Set-ItemProperty HKCU:\SOFTWARE\XYZ\PhoneCl
} catch {
# Would you like to log any errors?
}
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
VbScript version, untested.
Const HKEY_CURRENT_USER = &H80000001
Const REG_PATH = "SOFTWARE\XYZ\PhoneClient"
Dim objSysInfo : Set objSysInfo = CreateObject("ADSystemInfo")
Dim objUser : Set objUser = GetObject("LDAP://" & objSysInfo.UserName)
Dim strIPPhone : strIPPhone = objUser.Get('ipPhone')
Dim objReg : Set objReg = GetObject("winmgmts:\\.\root\default:StdRegProv")
objReg.SetStringValue HKEY_CURRENT_USER, REG_PATH, "Endpoint", strIPPhone
ASKER
Just saved your last script (below) as .ps1 and ran from the desktop. It worked a treat. My IP Phone value is now in the registry under endpoint.
Thank you so much Chris.
try {
$adUser = ([ADSISearcher]"(sAMAccoun tName=$env :USERNAME) ").FindOne ()
$ipPhone = $adUser.Properties['ipPhon e'][0]
Set-ItemProperty HKCU:\SOFTWARE\XYZ\PhoneCl ient -Name Endpoint -Value $ipPhone -Force
} catch {
# Would you like to log any errors?
}
Thank you so much Chris.
try {
$adUser = ([ADSISearcher]"(sAMAccoun
$ipPhone = $adUser.Properties['ipPhon
Set-ItemProperty HKCU:\SOFTWARE\XYZ\PhoneCl
} catch {
# Would you like to log any errors?
}
ASKER
Excellent help and support from Chris Dent. My issue was resolved in minutes.
Thank you so much Chris.
Thank you so much Chris.
Open in new window
Note that I made up a property name under the registry key, you might want to fix that. The key is assumed to exist before the script runs. Is that reasonable?