
Powershell AD editace cesty k terminálovému profilu (screeny), díky
zdar lidi, ladím si skript v powershellu na zakládání uživatelů, potřeboval bych doplnit nějaké info do kolonek. Do běžných které jsou v základu v AD to není problém ( standardní profil, jména, adresy ,....). ale ani zaboha nemůžu doplnit adresu na kartě "Profil služby Vzdálená plocha".
Ví někdo jak jej donutit?
zbytek funguje takto :
$user = Get-QADUser $username
$user.company = "testovaci spolecnost"
Díky
http://social.technet.microsoft.com/Forums/en-US/w inserverpowershell/thread/2bd5fe5d-6e75-4548-b3ee- e488f51ab1f7/
co se popisuje na stránce jsem již zkoušel, stejně jako jiné možnosti, bohužel dostanu zpět
Exception calling "InvokeSet" with "2" argument(s): "Neznámý název. (Výjimka na
základě hodnoty HRESULT: 0x80020006 (DISP_E_UNKNOWNNAME))"
At C:\temp\bat\ad.ps1:15 char:1
+ $user.psbase.Invokeset("terminalservicesprofilepat h","\\cesta\k\profilu")
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException
když samo zkusím jiný argument, jako třeba "profilepath" (což není ta správná kolonka). tak vše včetně doplnění proběhne úspěšně.
Díky
- vyzobl sis usera z ADSI?
- terminal services v režimu serveru máš nastaveny?
http://gallery.technet.microsoft.com/scriptcenter/ d36bd6b8-91b4-482b-8f67-9016cf367dbe
skript vypadá takto, možná jej mám špatně, ale na ostatní mi funguje ok
$username = "jmeno-uzivatele"
function Get-QADUser( [string]$samid=$env:username){
$searcher=New-Object DirectoryServices.DirectorySearcher
$searcher.Filter="(&(objectcategory=person)(object class=user)(sAMAccountname=$samid))"
$user=$searcher.FindOne()
if ($user -ne $null ){
$user.getdirectoryentry()
}
}
$user = Get-QADUser $username
$user.psbase.Invokeset("terminalservicesprofilepat h","\\cesta\k\profilu")
$user.SetInfo()
no jo, ale to nejde jen tak mixovat commandlety!
znova viz http://social.technet.microsoft.com/Forums/en-US/w inserverpowershell/thread/2bd5fe5d-6e75-4548-b3ee- e488f51ab1f7/
edit: pokud použiješ ADSI, tak:
nvm, asi jsem úplně blbej, ale ať zkouším jakoukoliv metodu, vždy dostanu na z5 obdobnou hlášku že prostě objekt terminalservicesprofilepath neexistuje :(
vše samozřejmě testuji na čistém skriptu a pouze tento krok
spusť to na serveru..
edit: chápu správně, že použití Questovského cmdletu na jiné properties funguje?
Get-QADUser
tak tak, celé jak jsem to poslal na všech standardních (základních) položkách v AD funguje, ale co se TS profilů a nastavení týče, tak nic, a to ať to volám jakoukoliv metodou.
CO se týče spuštění na serveru, tak smysl toho všeho je, abych to mohl šéfovat od sebe ze stanice. Ale můžu vyzkoušet, nicméně tak i tak chci rozchodit na stanici.
Díky
narazil jsem ještě na tohle
http://blogs.technet.com/b/heyscriptingguy/archive /2008/10/23/how-can-i-edit-terminal-server-profile s-for-users-in-active-directory.aspx
moc nechápu metoru Get-Children
a myslím že pro moje účely by mohlo být mnohem jednodušší..
tak, spustil jsem na srv následující (PS spuštěn jako adm)
$objuser= [ADSI] "LDAP://CN=user test,OU=Test,DC=test,DC=lan"
$objuser
$objUser.psbase.InvokeSet(“TerminalServicesProfile Path”,"H:\test-user")
$objUser.SetInfo()
a proběhlo to bez chybičky a zapsalo.
Teď už jen, jak to teda zprovoznit na stanici?
dobře, na stanici máš nainstalované management tools pro Active Directory?
edit: 2693643
edit2: server je 2008 nebo 2012?
SRV 2008 R2 Stn EN
na stanici mám nainstalované "nástroje pro správu" AD, atd.. funkční. Lokalizace CZ, systém ještě raz W8 x64
koukám do aktualizací, to zmíněné KBčko tam mám, takže jsem instaloval právě to
zkus ještě pro sichr Win7, ale už mě moc věcí nenapadá.
hmm, nemám tu teď stanici s Win7 s potřebným vybavením. A tobě to valí? A pod jakým systémem? možná by to chtělo něco doinstalovat do toho PS
Tyhle srandavěci nepoužívám, mám na to o dost větší udělátor
Navíc jsem tyhle věci skriptoval spíše dávněji, ještě přes VBS (princip je ovšem stejný).
VBS mi v tomto přišlo dost neohrabané, abych v jednom skriptu zakládal síťové složky, účty na exch, a ještě doplňoval do AD.
Jinak napadá tě co mi může na PC chybět?
Dík
můžeš na tom PC to naklikat v těch RSAT? Pokud ano, tak je problém v PS (a jeho komponentách). Pokud ne, není RSAT kompletní.
jasně přes RSAT a AD to běžně dělám na tom PC a bez problémů.
Spíš mi přijde že chybí něco v PS, ale jak to tam dostat..? možná nějak cmdlet
a když to zkusíš interaktivně, tak to nevyhodí nějaký errorcode?
btw zkusil bych to přesto pomocí "starý dobrý ADSI: http://explorepowershell.com/2012/12/24/checking-s etting-remote-desktop-services-profile-settings/
i když zkouším podle odkazu, tak dostávám zpět chyby s neznámým názvem, dosadím nějakou klasiku jako Company, atd.. a vrací vše OK, zkusím sehnat starší PS
Ve virtualu WinXP PS 2.0 funguje samo vše OK, spuštěný PS 2.0 ve Win8 x64 furt to samý.., tak já nevím
já bych vyhodil ten zmetek Win8
edit: ještě je varianta, že je problém v bitovosti, tj. něktrá z komponent je pouze 32bit vs. 64bit PS. To ale nevím, jen se odvažuji odhadovat
a co nějaký emulátor, či doplnění knihoven do W8, to by nešlo? Musím mít W8, jdu s dobou
( néé, mám skrz to, že už nám NTB s Win8 down na W7, ale je otázka času kdy bude jen W8, tak se musíme připravit )
Nevím, zkus hledat na googlu, jestli to už někdo "nepotkal".
P.S.: Win8 určitě nebude "jen sám, samojediný", ve velkých firmách jen nedávno skončily WinXP a nasazuje se teprve Win7, takže další iterace OS bude nejdřív nástupce "Blue", a to jen v menších firmách okolo 1000-5000 PC, kde je inovační cyklus rychlejší a kde není přímá vazba na MS (tj mají jen nějakou volume licenci).
jsme menší firma cca 1k PC :) la ejak říkám, berem NTB s OS a už teď se moc nemají k W7 a na XP už nejsou ani drivery, dokonce si tu jeden namyslel takový NTB že nebyly drivery ani na W7
Jinak na Google už jsem prohledal 3dny, většinou jen všici různě přehazují parametry a způsoby zadání, ale o tom že si systém nepovídá nikde nic, možná nějaký bug.
a jen takové malé info:
ti vypíše co? (ideálně srovnat se serverem, kde to funguje)
Manifest ActiveDirectory {Add-ADCentralAccessPolicyMem...
Manifest AppLocker {Get-AppLockerFileInformation...
Manifest Appx {Add-AppxPackage, Get-AppxPac...
Manifest BitsTransfer {Add-BitsFile, Complete-BitsT...
Manifest BranchCache {Add-BCDataCacheExtension, Cl...
Manifest CimCmdlets {Get-CimAssociatedInstance, G...
Manifest DhcpServer {Add-DhcpServerInDC, Add-Dhcp...
Manifest DirectAccessClientComponents {Disable-DAManualEntryPointSe...
Script Dism {Add-AppxProvisionedPackage, ...
Manifest DnsClient {Resolve-DnsName, Clear-DnsCl...
Manifest DnsServer {Add-DnsServerConditionalForw...
Manifest GroupPolicy {Backup-GPO, Block-GPInherita...
Binary Hyper-V {Add-VMDvdDrive, Add-VMNetwor...
Manifest iSCSI {Get-IscsiTargetPortal, New-I...
Manifest IscsiTarget {Add-ClusteriSCSITargetServer...
Script ISE {New-IseSnippet, Import-IseSn...
Manifest Kds {Add-KdsRootKey, Get-KdsRootK...
Manifest Microsoft.PowerShell.Diagnostics {Get-WinEvent, Get-Counter, I...
Manifest Microsoft.PowerShell.Host {Start-Transcript, Stop-Trans...
Manifest Microsoft.PowerShell.Management {Add-Content, Clear-Content, ...
Manifest Microsoft.PowerShell.Security {Get-Acl, Set-Acl, Get-PfxCer...
Manifest Microsoft.PowerShell.Utility {Format-List, Format-Custom, ...
Manifest Microsoft.WSMan.Management {Disable-WSManCredSSP, Enable...
Manifest MsDtc {New-DtcDiagnosticTransaction...
Manifest NetAdapter {Disable-NetAdapter, Disable-...
Manifest NetConnection {Get-NetConnectionProfile, Se...
Manifest NetLbfo {Add-NetLbfoTeamMember, Add-N...
Manifest NetQos {Get-NetQosPolicy, Set-NetQos...
Manifest NetSecurity {Get-DAPolicyChange, New-NetI...
Manifest NetSwitchTeam {New-NetSwitchTeam, Remove-Ne...
Manifest NetTCPIP {Get-NetIPAddress, Get-NetIPI...
Manifest NetWNV {Get-NetVirtualizationProvide...
Manifest NetworkConnectivityStatus {Get-DAConnectionStatus, Get-...
Manifest NetworkTransition {Add-NetIPHttpsCertBinding, D...
Manifest PKI {Add-CertificateEnrollmentPol...
Manifest PrintManagement {Add-Printer, Add-PrinterDriv...
Script PSDiagnostics {Disable-PSTrace, Disable-PSW...
Binary PSScheduledJob {New-JobTrigger, Add-JobTrigg...
Manifest RemoteAccess {Add-DAAppServer, Add-DAClien...
Manifest SecureBoot {Confirm-SecureBootUEFI, Set-...
Manifest ScheduledTasks {Get-ScheduledTask, Set-Sched...
Manifest Storage {Add-InitiatorIdToMaskingSet,...
Manifest TroubleshootingPack {Get-TroubleshootingPack, Inv...
Manifest TrustedPlatformModule {Get-Tpm, Initialize-Tpm, Cle...
Manifest UpdateServices {Add-WsusComputer, Approve-Ws...
Manifest VpnClient {Add-VpnConnection, Set-VpnCo...
Manifest Wdac {Get-OdbcDriver, Set-OdbcDriv...
Manifest WindowsDeveloperLicense {Get-WindowsDeveloperLicense,...
Script WindowsErrorReporting {Enable-WindowsErrorReporting...
jinak spouštím z Win8 x64
verze PS
Name : ConsoleHost
Version : 3.0
InstanceId : b85901c4-9c0a-4a11-8d6f-893671b22cee
UI : System.Management.Automation.Internal.Host.Interna lHostUserInterface
CurrentCulture : cs-CZ
CurrentUICulture : cs-CZ
PrivateData : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy
IsRunspacePushed : False
Runspace : System.Management.Automation.Runspaces.LocalRunspa ce