Hallo Zusammen,
wir haben unseren ersten Workflow selbst gebaut und bekommen jetzt ein Problem beim Ausführen der Powershell.
Der Workflow soll Citrix User abmelden. Das Powershell Skript funktioniert mit dem ServiceUser ohne Probleme. Dieser hat auf dem Citrix Server die erforderlichen Berechtigungen. DIe SDK ist installiert und wie gesagt in der Powershell direkt auf dem ESM Server auf dem der Workflow läuft klappt alles fehlerfrei und der User wird abgemeldet. Wenn das Skript im Workflow ausgeführt wird, dann bekommt man nur die Fehlermeldung das man unzureichende Berechtigungen hat. Und auch das das Modul von Citrix schon geladen ist. Die Fehler tauchen nicht auf wenn man es über die ISE mit dem ServiceUser ausführt.
Gibt es da einen Trick?
Leider wird auch kaum was protokolliert wenn man im Workflow in der Powershell Acivity start-transcript verwendet. Es werden nur Fehler protokolliert und nicht die Ausgabe.
Anbei das Skript welches wir verwenden:
param(
[string]$NBAccountName
)
#Clear Variables
Remove-Variable UserName
Remove-Variable SessionExists
Start-Transcript -path "C:\Admindata\CitrixSessionLog\CitrixSession.Log" -append
#-------------Test-Var below
#$NBAccountName = 'username'
asnp Citrix.*
Set-XDCredentials -ProfileType OnPrem
$ddcAddress = "CitrixServerController"
Test-AdminAccess -AdminAddress $ddcAddress -Operation 'Broker:GetMachine'
if ($NBAccountName -ne "")
{
$UserName = "domain\" + $NBAccountName
$SessionExists = Get-BrokerSession -UserName $UserName
if ($SessionExists)
{
Write-Output "Es wird der Benutzer $UserName von seiner Citrix Session abgemeldet"
#Get-BrokerSession -UserName $UserName -Verbose|fl
#Get-BrokerSession -UserName $UserName -Verbose|Stop-BrokerSession -Verbose
}
}
else
{
Write-output "Der Accountname ist leer, es wird keine Citrix Session ausgelogt"
}
Stop-Transcript
Protokoll:
**********************
Windows PowerShell transcript start
Start time: 20220905090311
Username: Domain\SVCUser
RunAs User: Domain\SVCUser
Configuration Name:
Machine: ESMSRV (Microsoft Windows NT 6.2.9200.0)
Host Application: C:\Program Files (x86)\Matrix42\Matrix42 Workplace Management\Worker\Core\Matrix42.Worker.Host.exe
Process ID: 4900
PSVersion: 5.1.17763.2931
PSEdition: Desktop
PSCompatibleVersions: 1.0, 2.0, 3.0, 4.0, 5.0, 5.1.17763.2931
BuildVersion: 10.0.17763.2931
CLRVersion: 4.0.30319.42000
WSManStackVersion: 3.0
PSRemotingProtocolVersion: 2.3
SerializationVersion: 1.1.0.1
**********************
asnp : Cannot add Windows PowerShell snap-in Citrix.Sdk.Proxy.V1 because it is already added. Verify the name of the
snap-in, and then try again.
At line:1 char:1
+ asnp Citrix.Sdk.Proxy.V1
+ ~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (Citrix.Sdk.Proxy.V1:String) [Add-PSSnapin], PSArgumentException
+ FullyQualifiedErrorId : AddPSSnapInRead,Microsoft.PowerShell.Commands.AddPSSnapinCommand
PS>TerminatingError(Get-BrokerSession): "Insufficient administrative privilege"
>> TerminatingError(Get-BrokerSession): "Insufficient administrative privilege"
**********************
Windows PowerShell transcript end
End time: 20220905090311
**********************
Für Hilfe oder Tipps wären wir dankbar.
Vielen Dank
ROBudus
Workflow Powershell Insufficient administrative privilege
Re: Workflow Powershell Insufficient administrative privilege
Hallo,
ich weiß, dass Dein Post schon etwas älter ist, aber ich habe ähnliche Problem. Bei uns wird das PS-Script, dass wir aus dem Workflow aufrufen, als system ausgeführt. Abfragen kannst Du das im Powershell mit. Lass Dir $username in eine Datei ausgeben. Das Powershell muss Du aber innerhalb eines Workflow starten.
Ein Powershellscript als anderer Nutzer auszuführen ist mir noch nicht gelungen. Also mit Invoke-<Irgendwas>, Start-Process usw. hatte ich bisher auch keinen richtigen Erfolg.
Gruß
Kuechi
ich weiß, dass Dein Post schon etwas älter ist, aber ich habe ähnliche Problem. Bei uns wird das PS-Script, dass wir aus dem Workflow aufrufen, als system ausgeführt. Abfragen kannst Du das im Powershell mit
Code: Select all
$username = $env:USERDOMAIN + "\" + $env:USERNAME
Ein Powershellscript als anderer Nutzer auszuführen ist mir noch nicht gelungen. Also mit Invoke-<Irgendwas>, Start-Process usw. hatte ich bisher auch keinen richtigen Erfolg.
Gruß
Kuechi
-
- Moderator
- Posts: 7969
- Joined: 13. Dec 2004, 23:10
- Location: Adendorf/Lüneburg
Re: Workflow Powershell Insufficient administrative privilege
Zum Ausführen eines Scripts mit einem anderen User hatte ich mal von einem Kollegen dieses snippet bekommen aber noch nicht getestet:
[Import.Win32]::LogonUser($Username, $Domain, $Password, 2, 0, [ref]$tokenHandle)
Hilft?
[Import.Win32]::LogonUser($Username, $Domain, $Password, 2, 0, [ref]$tokenHandle)
Hilft?
Hendrik Ambrosius / Senior Presales Consultant
Mobile: +49 172 408 4447 | hendrik.ambrosius@matrix42.com
Matrix42 GmbH | Elbinger Straße 7 | 60487 Frankfurt am Main | Germany | www.matrix42.com
Disclaimer: I participate in this forum on a voluntary basis. Views expressed are not necessarily those of Matrix42 or of the support team.
Mobile: +49 172 408 4447 | hendrik.ambrosius@matrix42.com
Matrix42 GmbH | Elbinger Straße 7 | 60487 Frankfurt am Main | Germany | www.matrix42.com
Disclaimer: I participate in this forum on a voluntary basis. Views expressed are not necessarily those of Matrix42 or of the support team.
Who is online
Users browsing this forum: No registered users and 0 guests