Auslesen von Userdaten per Batch (Umsetzung aus VBA)
Hallo zusammen,
in VBA konnte ich schon Userdaten wie Vorname, Nachname und Abteilung von dem aktuell angemeldeten User auslesen.
Ich müsste dies nun unter Windows in einer Batch-Datei umsetzen und zwar so, dass die Daten in eine Datei (z.B. Userdaten.txt) gespeichert werden.
Ich habe leider keinen Plan, wie ich das machen kann.
Kann mir hier jemand auf die Sprünge helfen?
Vielen Dank im Voraus.
in VBA konnte ich schon Userdaten wie Vorname, Nachname und Abteilung von dem aktuell angemeldeten User auslesen.
Dim con As New ADODB.Connection
Dim cm As New ADODB.Command
Dim rs As New ADODB.Recordset
Dim objUser
Dim strADsPath
On Error GoTo fehler
con.Provider = "ADsDSOObject"
con.Open ("Active Directory Provider")
cm.ActiveConnection = con
cm.CommandText = "Select * from 'LDAP://ITDCXXXX.YYYY.de/DC=ZZZZ,DC=de' where samaccountname = '" & StrUserName() & "'"
Set rs = cm.Execute()
strADsPath = ""
strADsPath = Trim(rs.Fields(0).Value)
Set objUser = GetObject(strADsPath)
rs.Close
con.Close
User_Vorname = objUser.givenname
User_Nachname = objUser.sn
User_Abteilung = objUser.department
Set rs = Nothing
Set con = Nothing
Set cm = Nothing
Set objUser = Nothing
On Error GoTo fehler
Ich müsste dies nun unter Windows in einer Batch-Datei umsetzen und zwar so, dass die Daten in eine Datei (z.B. Userdaten.txt) gespeichert werden.
Ich habe leider keinen Plan, wie ich das machen kann.
Kann mir hier jemand auf die Sprünge helfen?
Vielen Dank im Voraus.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 5963872353
Url: https://administrator.de/contentid/5963872353
Ausgedruckt am: 22.11.2024 um 00:11 Uhr
6 Kommentare
Neuester Kommentar
Pure Batch
Batch mit Powershell gewürzt
Such dir was aus
Wurstel
dsquery user -samid %username% | dsget user -fn -ln -dept -L >userdaten.txt
@echo off
powershell -EP Bypass -C "[adsisearcher]::new(\"(samAccountName=$env:USERNAME)\",('sn','givenname','department')).findOne() | foreach{$_.Properties['givenname'] + ',' + $_.Properties['sn'] + ',' + $_.Properties['department']} | set-content userdaten.txt"
Wurstel
Zitat von @Newby01:
Kannst du mir nur kurz noch sagen, wie ich jeweils einen Zeilenumbruch in die Textdatei reinbekomme,
Kannst du mir nur kurz noch sagen, wie ich jeweils einen Zeilenumbruch in die Textdatei reinbekomme,
die
+ ',' +
+ [environment]::NewLine +
+ \"`r`n\" +
Hybrid Batch/Powershell File
@(set "0=%~f0"^)#) & powershell -nop -ep bypass -c iex([io.file]::ReadAllText($env:0)) & exit/b
$code = {
[adsisearcher]::new("(samAccountName=$env:USERNAME)",('sn','givenname','department')).findOne() | foreach{
$_.Properties['givenname'] + [Environment]::NewLine +
$_.Properties['sn'] + [Environment]::NewLine +
$_.Properties['department']
} | set-content userdaten.txt
}
start powershell -args "-nop -ep bypass -c &{$($code -replace '"','\"')}"