Jump to content

Recommended Posts

Is there a way to be able to filter like power can filter?

Like the way this powershell script filters for instance:

Import-Module ActiveDirectory
Get-ADUser -Filter {EmailAddress -eq "$Usersemailaddress"}| Select-Object -ExpandProperty SamAccountName | Out-File C:\Users\"$env:username"\Desktop\email2samconversion.txt
 

Goal is trying to get the SamAccountName by filtering with the email address of a user in AD.

I have the AD.UDF but it only works with the Sam and the FQDN. i've tried running powershell in Autoit, but it takes at least 7 seconds to start Powershell>import the module>create the text file>read the text file>Delete the textfile from desktop>Display in Edit box in GUI. I'm wondering if there is a way to filter the search function of AD through autoit kind of like how Powershell does.

i've not yet been able to powershell to run properly in Autoit either:

I tried:

Run(powershell -Command Import-Module ActiveDirectory | Get-ADUser -Filter {mail -eq "$UserEmail"} | Select-Object -ExpandProperty SamAccountName | Out-File C:\users\$env:username\desktop\SamaccountNametextfile.txt")

But it keeps failing. I tried using ShellExecute as well and neither of them worked.

Edited by Quantumation
Figured it out, thanks to water
Link to post
Share on other sites

So you want to retrieve users based on their emailaddress?
This should be possible with _AD_GetObjectsInOU.
Can't test at the moment but if you like I can provide an example.

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2021-06-05 - Version 1.5.4.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
OutlookEX (NEW 2021-06-14 - Version 1.6.5.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download
Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki
PowerPoint (NEW 2021-07-28 - Version 1.1.0.0) - Download - General Help & Support - Wiki
Task Scheduler (2019-12-03 - Version 1.5.1.0) - Download - General Help & Support - Wiki

Standard UDFs:
Excel - Example Scripts - Wiki
Word - Wiki

Tutorials:
ADO - Wiki
WebDriver - Wiki

 

Link to post
Share on other sites
#include <AD.au3

Func EmailConvertSam()
    _AD_Open()
    If @error Then Exit MsgBox(16, "Active Directory", "Function _AD_Open encountered a problem. @error = " & @error & ", @extended = " & @extended)
    Local $Email = GUICtrlRead($emailaddress)
    $aObjects = _AD_GetObjectsInOU("", "(mail=" & $Email & ")", 2, "sAMAccountName", "sAMAccountName")
    _ArrayDisplay($aObjects)
    _AD_Close()
EndFunc   ;==>EmailConvertSam

@water I figured it out, no need for an example. I'll mark this topic as resolved.

Thank you for the accurate direction, very appreciated.

Link to post
Share on other sites

:)

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2021-06-05 - Version 1.5.4.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
OutlookEX (NEW 2021-06-14 - Version 1.6.5.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download
Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki
PowerPoint (NEW 2021-07-28 - Version 1.1.0.0) - Download - General Help & Support - Wiki
Task Scheduler (2019-12-03 - Version 1.5.1.0) - Download - General Help & Support - Wiki

Standard UDFs:
Excel - Example Scripts - Wiki
Word - Wiki

Tutorials:
ADO - Wiki
WebDriver - Wiki

 

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By DannyJ
      $sCommands1 = 'powershell.exe Get-ChildItem' $iPid = run($sCommands1   , @WorkingDir , @SW_SHOW , 0x2) $sOutput = ""  While 1     $sOutput &= StdoutRead($iPID)         If @error Then             ExitLoop         EndIf  WEnd ;~ msgbox(0, '' , $sOutput) ConsoleWrite("$sOutput") ConsoleWrite($sOutput) ConsoleWrite(@CRLF) $aOutput = stringsplit($sOutput ,@LF , 2) For $i=0 To  UBound($aOutput) - 1 Step 1     ConsoleWrite($aOutput[$i]) Next The script above reads the whole directory into a one dimensional array, but I need to work with the array, so I need to split the array into multiple dimensions.
      I have already read some forum answers here, and I have already tried these commands:
       
      Are there any way to use the $aOutput variable like in PowerShell:
      PowerShell:
      $a = Get-ChildItem $a.Mode I imagine this in AutoIt  $aOutput
      ConsoleWrite($aOutput[i].Mode) Or if I split this command into 2 dimension like:
      For $i To UBound($aOutput)-1 Step 1 ConsoleWrite($aOutput[$i][1]) ConsoleWrite($aOutput[$i][2]) Next  
    • By DannyJ
      If I try to run this script with   Get-ChildItem which means dir this script works perfectly, but If I try to run this command Get-RDUserSession, my script has the following error message:
      This command runs perfectly in PowerShell admin and I get back the values
      Get-RDUserSession -ConnectionBroker  broker.local | sort Username Or you can try this command as well
      Get-Command Get-RDUserSession If I run the above mentioned command this runs perfectly in PowerShell but not with AutoIt.
      Here is my script you can test the commands:
      #include<array.au3> $iPid = run('powershell Get-Command Get-RDUserSession'  , @WindowsDir , @SW_HIDE , 0x2) ;; This command not works in AutoIT you can test it in PowerShell but it won't work in Autoit ;$iPid = run('powershell Get-RDUserSession -ConnectionBroker  broker.local | sort Username'  , @WindowsDir , @SW_MAXIMIZE , 0x2) ; This command not works in AutoIT ;$iPid = run('powershell Get-ChildItem | sort Name'  , @WindowsDir , @SW_HIDE , 0x2) ; This runs perfectly $sOutput = ""  While 1     $sOutput &= StdoutRead($iPID)         If @error Then             ExitLoop         EndIf  WEnd ;~ msgbox(0, '' , $sOutput) $aOutput = stringsplit($sOutput , @LF , 2) _ArrayDisplay($aOutput)  
      That could be the solution of the problem if I could run, directly this PowerShell command window and Write to it and save it's values.
    • By DrLarch
      I'm trying to run this powershell command from Autoit and can't figure out how to pull it off:
      Get-ProvisionedAppxPackage -Online | Where-Object { $_.PackageName -match "xbox" } | ForEach-Object { Remove-ProvisionedAppxPackage -Online -AllUsers -PackageName $_.PackageName } I've been trying to run it many different ways including:
      $sCMD = 'Get-ProvisionedAppxPackage -Online | Where-Object { $_.PackageName -match "xbox" } | ForEach-Object { Remove-ProvisionedAppxPackage -Online -AllUsers -PackageName $_.PackageName }' RunWait(@comspec & ' /c powershell.exe -nologo -executionpolicy bypass -noprofile -Command "&' & $sCMD & '"') The problem is that it seems I'm missing something in how to escape or double the quotes. I've tried doubling the quotes in many different ways, but the end result always produces a syntax error in powershell. I could just run powershell first, then paste and run the command, then close the powershell window, but that's clunky. I'm trying to do it either via parameter (as above) or in one line like this:
      RunWait(@comspec & ' /c powershell.exe -nologo -executionpolicy bypass -noprofile -Command "&Get-ProvisionedAppxPackage -Online | Where-Object { $_.PackageName -match "xbox" } | ForEach-Object { Remove-ProvisionedAppxPackage -Online -AllUsers -PackageName $_.PackageName }"')  
    • By mLipok
      Yeasterday I found this:
      https://stackoverflow.com/questions/496751/base64-encode-string-in-vbscript
      https://www.motobit.com/tips/detpg_quoted-printable-encode/
      https://www.motobit.com/tips/detpg_quoted-printable-decode/
      Here is AutoIt Version:
      #Region - QuotedPrintableEncode_Binary ;~ https://www.motobit.com/tips/detpg_quoted-printable-encode/ ; This article contains a short function for quoted printable encoding, using CDO.Message object. ; You can use this function in ASP or .VBS files (wsh - windows scripting host files), or directly in VBA (visual basic 5, 6, Word, Excel, Access and Outlook scripting). ; A source data of this function is a String variable and charset parameter of destination data. ; The source string (16bit VBScript BSTR variable) is first converted to a destination charset, using ADODB.Stream (GetDecodedContentStream). ; If the destination charset is not specified, the ADODB.Stream uses "iso-8859-1" by default. ; The EncodedContentStream then converts the binary data to a Quoted-Printable output string. ; VBScript QuotedPrintable encoding ; 2005 Antonin Foller http://www.motobit.com ; $s_SourceString - string variable with source data, BSTR type ; $s_CharSet - $s_CharSet of the destination data Func _QuotedPrintable_Encode($s_SourceString, $s_CharSet) ;Create CDO.$oCDOMessage object For the encoding. Local $oCDOMessage = ObjCreate("CDO.Message") ; Set the encoding $oCDOMessage.BodyPart.ContentTransferEncoding = "quoted-printable" ; Get the data $oStream To write source string data ; As ADODB.$oStream Local $oStream = $oCDOMessage.BodyPart.GetDecodedContentStream ; Set the $s_CharSet For the destination data, If required If StringLen($s_CharSet) > 0 Then $oStream.CharSet = $s_CharSet ; Write the VBScript string To the $oStream. $oStream.WriteText($s_SourceString) ; Store the data To the $oCDOMessage BodyPart $oStream.Flush ; Get an encoded $oStream $oStream = $oCDOMessage.BodyPart.GetEncodedContentStream ; read the encoded data As a string Return $oStream.ReadText ; You can use Read method To get a binary data. ; $oStream.Type = 1 ; Return $oStream.Read EndFunc ;==>QuotedPrintableEncode ; Next is a binary variant of the function, with bytearray (VT_UI1 VT_ARRAY) as input and output. ; You can simply modify these two functions for combination of binary and string input and output parameters. ; This Func is used on Quoted-printable encoder online sample page. ; VBScript QuotedPrintableEncode_Binary encoding ; 2005 Antonin Foller http://www.motobit.com Func _QuotedPrintable_Encode_Binary($dSourceBinary) ; Create CDO.$oCDOMessage object For the encoding. Local $oCDOMessage = ObjCreate("CDO.Message") ; Set the encoding $oCDOMessage.BodyPart.ContentTransferEncoding = "quoted-printable" ; Get the data $oStream To write source string data ; As ADODB.$oStream Local $oStream = $oCDOMessage.BodyPart.GetDecodedContentStream ; Set the type of the $oStream To adTypeBinary. $oStream.Type = 1 ; Write the VBScript string To the $oStream. $oStream.Write($dSourceBinary) ; Store the data To the $oCDOMessage BodyPart $oStream.Flush ; Get an encoded $oStream $oStream = $oCDOMessage.BodyPart.GetEncodedContentStream ; Set the type of the $oStream To adTypeBinary. $oStream.Type = 1 ; You can use Read method To get a binary data. Return $oStream.Read EndFunc ;==>QuotedPrintableEncode_Binary #EndRegion - _QuotedPrintable_Encode_Binary #Region - _QuotedPrintable_Decode_Binary ;~ https://www.motobit.com/tips/detpg_quoted-printable-decode/ ; This article contains a short Func for quoted printable decoding, using CDO.Message object. ; You can use this Func in ASP or .VBS files (wsh - windows scripting host files), or directly in VBA (visual basic 5, 6, Word, Excel, Access and Outlook scripting). ; VBScript QuotedPrintableDecode decoding Function ; 2005 Antonin Foller http://www.motobit.com Func _QuotedPrintable_Decode($s_SourceData, $s_CharSet) ; Create CDO.Message object For the encoding. Local $oCDO_Message = ObjCreate("CDO.Message") ; Set the encoding $oCDO_Message.BodyPart.ContentTransferEncoding = "quoted-printable" ; Get the data $oStream To write source string data ; As ADODB.$oStream Local $oStream = $oCDO_Message.BodyPart.GetEncodedContentStream If VarGetType($s_SourceData) = 'String' Then ; Set $s_CharSet To base windows $s_CharSet $oStream.CharSet = "windows-1250" ; Write the VBScript string To the $oStream. $oStream.WriteText($s_SourceData) Else ; Set the type of the $oStream To adTypeBinary. $oStream.Type = 1 ; Write the source binary data To the $oStream. $oStream.Write($s_SourceData) EndIf ; Store the data To the $oCDO_Message BodyPart $oStream.Flush ; Get an encoded $oStream $oStream = $oCDO_Message.BodyPart.GetDecodedContentStream ; Set the type of the $oStream To adTypeBinary. $oStream.CharSet = $s_CharSet ; You can use Read method To get a binary data. Return $oStream.ReadText EndFunc ;==>_QuotedPrintable_Decode ; Next is a binary variant of the function, with bytearray (VT_UI1 VT_ARRAY) as output. ; The _QuotedPrintable_Decode_Binary then converts the binary data to a Quoted-Printable output string. ; Output of this Func are binary decoded data (you can use it, for example, as a data parameter of Response. ; BinaryWrite method) You can simply modify these two functions for combination of binary and string input and output parameters. ; This Func is used on Quoted-printable decoder online sample page. ; VBScript _QuotedPrintable_Decode_Binary decoding Function ; 2005 Antonin Foller http://www.motobit.com Func _QuotedPrintable_Decode_Binary($s_SourceData) ; Create CDO.Message object For the encoding. Local $oCDO_Message = ObjCreate("CDO.Message") ; Set the encoding $oCDO_Message.BodyPart.ContentTransferEncoding = "quoted-printable" ; Get the data $oStream To write source string data ; As ADODB.$oStream Local $oStream = $oCDO_Message.BodyPart.GetEncodedContentStream If VarGetType($s_SourceData) = 'String' Then ; Write the VBScript string To the $oStream. $oStream.Write($s_SourceData) Else ; Set the type of the $oStream To adTypeBinary. $oStream.Type = 1 ; Write the source binary data To the $oStream. $oStream.Write($s_SourceData) EndIf ; Store the data To the $oCDO_Message BodyPart $oStream.Flush ; Get an encoded $oStream $oStream = $oCDO_Message.BodyPart.GetDecodedContentStream ; Set the type of the $oStream To adTypeBinary. $oStream.Type = 1 ; You can use Read method To get a binary data. Return $oStream.Read EndFunc ;==>_QuotedPrintable_Decode_Binary #EndRegion - _QuotedPrintable_Decode_Binary  
      REMARK: License note from: https://www.motobit.com/tips/detpg_quoted-printable-decode/ and https://www.motobit.com/tips/detpg_quoted-printable-encode/:
       
    • By antonioj84
      any assistance how to incorporate this powershell command within autoit
       
      powershell.exe -nologo -executionpolicy bypass -WindowStyle hidden -noprofile -command "&Set-WinUserLanguageList -LanguageList fr-CA, en-CA -Force"
×
×
  • Create New...