Vielen Dank,
es funktioniert nun.
Vielen Dank,
es funktioniert nun.
Hallo,
ich habe folgendes Script um die Terminalsession von Terminalservern auszulesen.
#include <array.au3>
local $aUSer[0]
$strComputer = "SERVERNAME"
$objWMI = ObjGet("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& $strComputer & "\root\cimv2")
$colSessions = $objWMI.ExecQuery _
("Select * from Win32_LogonSession Where LogonType = 10")
If $colSessions.Count = 0 Then
Else
For $objSession in $colSessions
$colList = $objWMI.ExecQuery("Associators of " _
& "{Win32_LogonSession.LogonId=" & $objSession.LogonId & "} " _
& "Where AssocClass=Win32_LoggedOnUser Role=Dependent" )
For $objItem in $colList
_ArrayAdd($aUSer,$objItem.Name)
Next
Next
EndIf
_Arraydisplay($aUSer)
Alles anzeigen
Das funktioniert auch soweit, nur leider dauert das ziemlich lange, da ich gerne die Session von ca 40 Terminalserver auslesen möchte.
Hat jemand eine Idee wie ich die Auswertung beschleunigen kann?
Gruß,
svart
Es funktioniert zwar mit _GUICtrlListView_ClickItem, doch dann wird die listview immer aktiviert...
Hallo,
ich habe folgendes Problem:
Ich möchte gerne eine ListView aktualisieren - das ausgewähle Item soll nach dem aktualisieren markiert bleiben.
- alle Werte in der ListView löschen und neu schreiben.
Wenn ich in der Funktion _GUICTRLListView_Setitemselected die Variable $selected eingebe funktioniert es nicht, wenn ich anstelle der Variable eine 1 eingebe funktioniert es.
Woran liegt das?
Hat jemand eine andere Lösung für mein Problem?
Vielen Dank für die Hilfe
Hier ein Beispiel:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <ListViewConstants.au3>
#include <WindowsConstants.au3>
#include <ListViewConstants.au3>
#include <GuiListView.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 376, 284, 192, 124)
$ListView1 = GUICtrlCreateListView("TEST - Name", 152, 50, 177, 217)
GUICtrlCreateListViewItem("Tester",$ListView1)
GUICtrlCreateListViewItem("Mustermann",$ListView1)
$Button1 = GUICtrlCreateButton("Button1", 24, 40, 113, 33)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
$selected = _GUICtrlListView_GetSelectedIndices($ListView1)
_GUICTRLListView_DeleteAllItems($ListView1)
GUICtrlCreateListViewItem("Tester",$ListView1)
GUICtrlCreateListViewItem("MusterFrau",$ListView1)
_GUICTRLListView_Setitemselected($ListView1,$selected,True,True)
EndSwitch
WEnd
Alles anzeigen
Wie BananaJoe schon schrieb, aus dem OR ein AND machen dann siehts wie folgt aus:
funktioniert das bei dir? -> bild.zip
so z.B. ?
[Blockierte Grafik: http://up.picr.de/21896140gz.jpg]
#include <GUIConstantsEx.au3>
#include <ListViewConstants.au3>
#include <WindowsConstants.au3>
#include <array.au3>
#include <GuiListView.au3>
$sFile = "test.txt"
$size = 0
$GUI = GUICreate("Test_Form", 623, 442, -1, -1)
$List = GUICtrlCreateListView("Read_1 | Read_2 | Read_3 | Read_4", 8, 8, 610, 422)
_GUICtrlListView_SetColumnWidth($List,0,150)
_GUICtrlListView_SetColumnWidth($List,1,150)
_GUICtrlListView_SetColumnWidth($List,2,150)
_GUICtrlListView_SetColumnWidth($List,3,150)
_ReadSections("Read_1|Read_2|Read_3|Read_4")
GUISetState(@SW_SHOW)
[/autoit][autoit][/autoit][autoit][/autoit][autoit]While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
func _ReadSections($sSectionNames)
$aSectionNames = StringSplit($sSectionNames,"|")
$X = _getArraySize($sSectionNames)
$Y = ubound($aSectionNames)
dim $aArray[$x][$y]
for $i = 1 to ubound($aSectionNames) - 1
$aSectionText = IniReadSection ($sFile,$aSectionNames[$i])
for $j = 1 to ubound($aSectionText) - 1
$aArray[$j-1][$i-1] = $aSectionText[$j][0] & "=" & $aSectionText[$j][1]
Next
Next
_GUICtrlListView_AddArray($List,$aArray)
EndFunc
func _getArraySize($sSectionNames)
$aSectionNames = StringSplit($sSectionNames,"|")
for $i = 1 to ubound($aSectionNames) - 1
$aSectionText = IniReadSection ($sFile,$aSectionNames[$i])
if $size < ubound($aSectionText)-1 then $size = ubound($aSectionText)-1
Next
return $size
EndFunc
Beispiel Ini:
[READ_1]
Name=Max Mustermann
Geburtstag=08.01.1966
Wohnort=Berlin
[READ_2]
Hobby1=Fussball
Hobby2=Handball
Hobby3=Tischtennis
Hobby3=Basketball
[READ_3]
Schule=Musterschule
Beruf=Lokführer
Arbeitgeber=BAHN
[READ_4]
CPU=Intel
RAM=4GB
HDD=500GB
GRAFIK=NVIDIA
LW=DVD
Monitor=19"
TEST=1234
Das Tutorial hatte ich auch gefunden, werde ich mir mal anschauen.
Danke dir, das funktioniert.
RegExp habe ich mir bisher noch nicht angeschaut und kapier das leider NOCH (hoffe ich) nicht.
Das wäre zu einfach
es muss der komplette Datensatz gelöscht werden, der fängt mit <datensatz> and und hört mit </datensatz> auf.
Kann man mittels StringRegExpReplace auch nach "<datensatz> * <wert>99999<\/wert> * </datensatz>" suchen?
probiers mal so:
[autoit]
Func _runSelf($command)
Local $pid
If @Compiled Then
$pid = Run(@ComSpec & ' /c ' & @ScriptFullPath & ' ' & $command, '', @SW_HIDE)
Else
$pid = Run(@ComSpec & ' /c ' & @AutoItExe & " " & @ScriptFullPath & ' ' & $command, "", @SW_SHOW)
EndIf
Return $pid
EndFunc ;==>_runSelf
Es existiert leider nur eine Zeile.
Hallo,
ich habe folgendes Problem:
Ich habe eine XML Datei, in der ich komplette Datensätze löschen will, in denen ein Wert z.B. "99999" ist.
Beispiel:
[autoit]
$sString ='<datensatz><nn name="Vorname"><wert>Max</wert></nn><nn name="Nachname"><wert>Mustermann</wert><nn><nn name="Geburtsdatum"><wert>09.03.1977</wert><nn></datensatz>' & _
'<datensatz><nn name="Vorname"><wert>Moritz</wert></nn><nn name="Nachname"><wert>Mustermann</wert><nn><nn name="Geburtsdatum"><wert>99999</wert><nn></datensatz>' & _
'<datensatz><nn name="Vorname"><wert>Konrad</wert></nn><nn name="Nachname"><wert>Mustermann</wert><nn><nn name="Geburtsdatum"><wert>02.11.1988</wert><nn></datensatz>'
$searchString = '<wert>99999</wert>'
[/autoit]Wenn $searchString gefunden wird, soll der ganze Datensatz gelöscht werden.
PS. es ist alles in einer Zeile
hat jemand eine Idee wie man das Problem löst?
Vielen Dank schonmal
Hallo,
ich bräuchte mal etwas Hilfe.
Folgendes Problem:
Ich möchte, wenn ich auf ein Bereich (z.B. im Bereich (250,100,200,200)) eines Bildes in der GUI klicke eine Funktion ausführen.
Beispiel:
[autoit]
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
$GUI = GUICreate("", 732, 546, 192, 124)
$PIC = GUICtrlCreatePic("C:\Windows\Web\Wallpaper\Landscapes\img9.jpg", 16, 16, 697, 513)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Der Fehler lautet: -2147352567
Ich glaube ich habe herausgefunden woran es liegt.
Wenn die Kombination aus Vorname und Nachname bereits im AD existiert, kann ich, obwohl der Anmeldename anders ist, keinen User anlegen.
Da wir ca. 4000-5000 User im AD haben kann es unter Umständen schon passieren, dass z.B. 2 "Martin Schmidt"'s existieren.
Die haben wir bisher mit "schmidtm" und "schmidtma" angelegt.
Hallo,
ich habe ein Problem mit der "ad.au3"
Folgendes Beispiel:
[autoit]
#include <ad.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Opt("GUIOnEventMode", 1)
$sAD_OU = "OU=Benutzer,OU=SKP,OU=Klassen,DC=berufschule,DC=TEST,DC=de"
$Form1 = GUICreate("Form1", 400, 200, 500, 126)
$Input_vorname = GUICtrlCreateInput("Vorname", 80, 30, 250, 20)
$Input_nachname = GUICtrlCreateInput("Nachname", 80, 60, 250, 20)
$Input_anmeldename = GUICtrlCreateInput("Anmeldename", 80, 90, 250, 20)
$Button1 = GUICtrlCreateButton("Benutzer anlegen", 80, 120, 250, 25)
GUICtrlSetOnEvent ($Button1, "Test")
GUISetOnEvent ($GUI_EVENT_CLOSE, "Close")
GUISetState(@SW_SHOW)
While 1
sleep(50)
WEnd
func test()
$ad_open = _AD_Open()
if $ad_open = 1 Then
$createuser = _AD_CreateUser($sAD_OU, GUICTRLREAD($Input_anmeldename), GUICTRLREAD($Input_nachname) & "\, " & GUICTRLREAD($Input_vorname))
if $createuser = 1 then msgbox(0,"","Benutzer angelegt")
if $createuser = 0 then msgbox(0,"","Fehler: " & @Error)
Else
msgbox(0,"","Verbindung zur Domäne konnte nicht hergestellt werden")
EndIf
_AD_Close()
EndFunc
func Close()
Exit
EndFunc
Es klappt alles soweit, wenn ich beim ersten mal auf "Benutzer anlegen" klicke.
Ändere ich nun Vorname, Nachname und Anmeldename um einen 2. Benutzer anzulegen erhalte ich einen Fehler, da _AD_CreateUser den Benutzer nicht anlegen kann.
Hat Jemand eine Idee woran das liegt?
Danke,
aber wenn ich runterscrolle erscheint der Scrollbalken wieder.
#include <GUIConstantsEx.au3>
#include <MsgBoxConstants.au3>
#include <WindowsConstants.au3>
#include <GuiListView.au3>
#include <GuiScrollBars.au3>
Example()
Func Example()
GUICreate("listview items", 220, 250, 100, 200, -1, $WS_EX_ACCEPTFILES)
GUISetBkColor(0x00E0FFFF) ; will change background color
Local $idListview = GUICtrlCreateListView("", 10, 10, 200, 150)
_GUICtrlListView_AddColumn($idListview,"TEST","400")
_GUICTRLListView_ADDitem($idListview,"dsgfodngidfnfghgfhgfhghfdgkfnhkjgfhkngkhjnb")
_GUICTRLListView_ADDitem($idListview,"dsgfodngidfnfghgfhgfhghfdgkfnhkjgfhkngkhjnb")
_GUICTRLListView_ADDitem($idListview,"dsgfodngidfnfghgfhgfhghfdgkfnhkjgfhkngkhjnb")
_GUICTRLListView_ADDitem($idListview,"dsgfodngidfnfghgfhgfhghfdgkfnhkjgfhkngkhjnb")
_GUICTRLListView_ADDitem($idListview,"dsgfodngidfnfghgfhgfhghfdgkfnhkjgfhkngkhjnb")
_GUICTRLListView_ADDitem($idListview,"dsgfodngidfnfghgfhgfhghfdgkfnhkjgfhkngkhjnb")
_GUICTRLListView_ADDitem($idListview,"dsgfodngidfnfghgfhgfhghfdgkfnhkjgfhkngkhjnb")
_GUIScrollBars_ShowScrollBar(GUICtrlGetHandle($idListview), $SB_HORZ, False)
GUISetState(@SW_SHOW)
[/autoit][autoit][/autoit][autoit]While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
EndSwitch
WEnd
EndFunc
Wenn ich die Spalte verkleiner verschwindet der Scrollbalken,
ist aber auch keine zufriedenstellende Lösung:
#include <GUIConstantsEx.au3>
#include <MsgBoxConstants.au3>
#include <WindowsConstants.au3>
#include <GuiListView.au3>
Example()
[/autoit][autoit][/autoit][autoit]Func Example()
GUICreate("listview items", 220, 250, 100, 200, -1, $WS_EX_ACCEPTFILES)
GUISetBkColor(0x00E0FFFF) ; will change background color
Local $idListview = GUICtrlCreateListView("", 10, 10, 200, 150)
_GUICtrlListView_AddColumn($idListview,"TEST","196")
_GUICTRLListView_ADDitem($idListview,"dsgfodngidfnfghgfhgfhghfdgkfnhkjgfhkngkhjnb")
_GUICTRLListView_ADDitem($idListview,"dsgfodngidfnfghgfhgfhghfdgkfnhkjgfhkngkhjnb")
_GUICTRLListView_ADDitem($idListview,"dsgfodngidfnfghgfhgfhghfdgkfnhkjgfhkngkhjnb")
_GUICTRLListView_ADDitem($idListview,"dsgfodngidfnfghgfhgfhghfdgkfnhkjgfhkngkhjnb")
_GUICTRLListView_ADDitem($idListview,"dsgfodngidfnfghgfhgfhghfdgkfnhkjgfhkngkhjnb")
_GUICTRLListView_ADDitem($idListview,"dsgfodngidfnfghgfhgfhghfdgkfnhkjgfhkngkhjnb")
_GUICTRLListView_ADDitem($idListview,"dsgfodngidfnfghgfhgfhghfdgkfnhkjgfhkngkhjnb")
GUISetState(@SW_SHOW)
[/autoit][autoit][/autoit][autoit]While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
EndSwitch
WEnd
EndFunc
Hi,
könnte mir jemand sagen, wie ich in der ListView das horizontale Scollen deaktiviere?
[autoit]
#include <GUIConstantsEx.au3>
#include <MsgBoxConstants.au3>
#include <WindowsConstants.au3>
#include <GuiListView.au3>
Example()
[/autoit][autoit][/autoit][autoit]Func Example()
GUICreate("listview items", 220, 250, 100, 200, -1, $WS_EX_ACCEPTFILES)
GUISetBkColor(0x00E0FFFF) ; will change background color
Local $idListview = GUICtrlCreateListView("", 10, 10, 200, 150)
_GUICtrlListView_AddColumn($idListview,"TEST","400")
_GUICTRLListView_ADDitem($idListview,"dsgfodngidfnghfdgkfnhkjgfhkngkhjnb")
GUISetState(@SW_SHOW)
[/autoit][autoit][/autoit][autoit]While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
EndSwitch
WEnd
EndFunc
Hi, ich habe gestern festgestellt, das der Parametzer sehr wohl ausgelesen wird, aber warum auch immer liefert MS nicht das gewünschte Ergebnis so wie alle anderen Parameter sondern so was:
CodeuserParameters|CtxCfgPresent PCtxCfgPresent㔵攱戰ぢ LCtxWFProfilePath挵挵搶㠶㌷㈷〳ㄳ㈳㐳挵㐷㌷〷㈷昶㘶㤶挶㔶㐲挵搶㠶挵搶㔶㤷㔶㈷攲㐶㔶㐷挶㔶㘶〰.CtxMaxDisconnectionTimeっ㜲㤰〰 CtxMaxIdleTime〰㐷㝢(CtxMaxConnectionTime〰〰〰〰CtxCfgFlags1〰て㈲〹
Unter UserParameters wird der Wert für "CtxWFProfilePath" leider kryptisch ausgegeben.
Siehst Du da noch eine Chance da was vernünftiges raus zubekommen ?[Blockierte Grafik: http://www.selfadsi.de/img/tutorial/ad-user-attributes-14.png]
Falls noch einer suchen sollte:
[autoit]
func _Get_TSProfile($sAD_User)
$distingshedname = _AD_GetObjectAttribute($sAD_User, "distinguishedName")
local $oUser = __AD_ObjGet("LDAP://"& $distingshedname)
Return $oUser.TerminalServicesProfilePath
EndFunc
func _Set_TSProfile($sAD_User)
$distingshedname = _AD_GetObjectAttribute($sAD_User, "distinguishedName")
local $oUser = __AD_ObjGet("LDAP://"& $distingshedname)
$oUser.TerminalServicesProfilePath = "\\Server"&$sAD_User&"$\Profile" ;~ müsste angepasst werden
$oUser.SetInfo
EndFunc
Ahh, besten Dank.
Man sollte sich vorher die komplette UDF anschauen
_AD_SetAccountExpire habe ich dann nun auch gefunden.