![](https://www.mcseboard.de/uploads/set_resources_11/84c1e40ea0e759e3f1505eb1788ddf3c_pattern.png)
Kuddel071089
-
Gesamte Inhalte
559 -
Registriert seit
-
Letzter Besuch
Beiträge erstellt von Kuddel071089
-
-
Moin,
wenn du den Namen gegen zwei Quellen prüfen musst, würde ich zu Beginn eine gemeinsame Liste aus beiden Quellen erzeugen. Dann musst du nur einmal vergleichen und kannst einfacher eine Routine bauen, die verfügbare Namen vorschlägt.
Ein Identity Management ist ja ebensowenig kurzfristig einzuführen wie eine Umstellung der Namenskonvention für Anmeldenamen. Daher ergibt der Ansatz schon Sinn. Ob er prozessual ausreichend eingebettet ist, müsst ihr natürlich selbst prüfen.
Gruß, Nils
Hallo Nils,
vielen Dank erst einmal für deine Antwort.
Gutes Stichwort IDM. Haben wir auch schon mehrfach vorgeschlagen, wurde aber aus kostengründen ablehnt.
Somit sind Admins jetzt selber am fummeln und am basteln.
Ich werde mich dann mal ans Werk machen :-)
-
Es hat sich durchaus bewährt, als Username (=samAccountName) eindeutige Merkmale wie z.B. Personalnummern zu verwenden :)
Das die Verwendung von Personalnummern sinnvoll ist, ist natürich klar. Nur haben wir über 3000 User mit einem anderen SamAccount und die können wir nicht mal eben umstellen ;-)
-
Moin,
bevor wir uns jetzt von Punkt zu Punkt hangeln, ohne einen Überblick zu haben, wäre es fein, wenn du beschreibst, was denn eigentlich am Ende dein Ziel ist und was die Rahmenbedingungen sind.
Gruß, Nils
Hallo Nils,
ich bin dabei mein Skript zur Einrichtung eines neuen Users zu aktualisieren.
Vor der EInrichtung müssen wir immer manuell prüfen, ob der angedachte Username bereits in unserem E-Mail Archiv enthalten ist. Von diesem Archiv habe ich einen Export aller User und muss demetnsprechend prüfen, ob der Username noch nicht verwendet wurde.
Danach muss natürlich auch geprüft werden, ob der User evtl. schon im AD existiert, nur aber ohne Mail Adresse und daher nicht im Mail Archiv auftaucht.
Es wäre natürlich praktisch, wenn Username "Meyer" z.b. schon vergeben ist, automatisch ein "A" von seinem Vornamen "Andreas" an den Usernamen "Meyer-A" angefügt wird, sofern dieser noch frei ist.
Ich weiß nicht wie viel Aufwand das ganze macht. Primär sind für mich diese Schritt:
1. Eingabe angedachter Username
2. Check ob Username in CSV enthalten ist
3. Wenn User enthalten dann suche nach $username* in csv um die vergeben Usernamen anzuzeigen
4. Check ob Username im AD frei ist
5. Wenn nicht frei -> Get-ADUser -Filter {SamAccountName like "$username*"} | Select SamAccountName | FT -HideTableheader
Keine AHnung ob ich das ganze ein wenig umständlich machen. Praktisch wäre es aufjeden fall, wenn ich nur eine Liste bekomme, welche Usernamen schon in Verwendung sind.
Wenn es nicht ganz so kompliziert ist, soll der Username automatisch ausgewählt werden. Also Username= Nachname bzw. Nachname+BuchstabeVorname
-
Okay einen 1:1 Check habe ich jetzt. Für den Anfang nicht schlecht.
Kann ich die CSV auch durchsuchen um einen passenden Usernamen zu finden ?
Sprich: Suche nach Meyer*
Ergebnis:
Meyer
Meyer-B
Meyer-J
Somit weiß ich, dass ich zb Meyer-K anlegen kann.
Ich weiß nur leider nicht, wie ich die Suche anstoße
##### EDIT #####
Erster Versuch:
cls $username = "Meyer" IF(Select-String -Path C:\test.csv -Pattern "$username") { Select-String -Path C:\test.csv -Pattern "$username" }
Ergebnis:
C:\test.csv:2:meyer C:\test.csv:5:meyer-j
Wenn man jetzt irgendwie den Pfad vor dem Namen entfernen könnte, wäre das schon die Lösung
-
Hallo zusammen,
ich möchte eine CSV Datei mit Usernamen per Powershell durchsuchen, ob der Username in der CSV schon vorhanden ist.
Leider habe ich keine Ahnung wie ich das anstelle.
Hat jemand einen Tip für mich.
Bis jetzt bin ich bis
cls Write-Host "Username: " -NoNewline $Username = Read-Host $ImportFile = Import-csv "C:\test.csv" IF($ImportFile -contains $username) {Write-Host "Username vergeben"} else{ Write-Host "Username frei" }
Die CSV sieht im Moemnt so aus:
samaccountname meyer mueller schulz
Leider sagt er immer, dass der Username frei ist, obwohl er in der CSV ist.
Danke schoneinmal für die Hilfe
+++EDIT+++
Okay, -contains war falsch.
Mit -match funktioniert es ^^
-
habe es jetzt über eine Gruppe geregelt, in die die neuen Server automatisch hizugefügt werden. per gpo wird dann bei den mitgliedern der gruppe der administrator umbenannt.
falls doch jmd eine reine Powershell lösung hat, wäre ich noch interessiert
-
Was für Probleme denn? Dann würde ich diese erst lösen und das ganze per GPO umsetzen.
Die GPO wirkte auf die ganze OU. Eigentlich könnte ich das ja über eine Ad-Gruppe mache, in der die neue Server per Skript hinzugefügt werden
-
GPO Scope o. Filter setzen ?
Was genau meinst du ? Die GPO darf nur auf die neuen Server wirken ?
-
Hallo zusammen,
ich würde in einem unserer Server-Skripts gerne hinzufügen, dass bei neuen AD-Server der lokale Administrator umbenannt wird (aus Sicheritsgründen).
Per GPO habe ich es schon versucht, da wurde aber auch bei schon bestehenden AD-Servern der lokale Admin unbenannt, was zu Probleme geführt hat.
Kann man das ganze irgendwie per Powershell realisieren?
Vielen Dank schon einmal
-
Beispiel 9 war es. vielen dank
$servername = "VNTS999" Invoke-Command -ComputerName VNTS999 -ScriptBlock {net localgroup Administratoren S-ZBS-$using:Servername-Admin /ADD}
-
1. Ich würde kein - in eine Variable schreiben.
2. List du auch meinen Text? Vor allem das nach dem "Achtung".
1. Okay, den Gruppennamen kann ich noch bearbeiten.
2. Wie übergeben ich denn den Inhalt aus der Variable ? Der Wert ist ja pro VM unterschiedlich, somit kann ich da ja nichts fest eintragen
-
So in der Art. Achtung! Die Variablen aus dem eigentlichen Script hast du in der Remote Session nicht verfügbar, diese musst du übergeben.
Habe es jetzt so versucht, funktioniert aber leider nicht
#Admin-Gruppe berechtigen $adminskript = "net localgroup Administratoren $servername-Admin /ADD" Invoke-Command -Computer $servername -ScriptBlock {$adminskript}
-
Wieso musst du für die Berechtigungen auf den neuen Server?
Du musst eine neue Session öffnen und dann die Befehle in dieser Session per Invoke-command ausführen. Enter-pssession ist für eine interaktive Session.
Das würde dann so aussehen ?
Invoke-Command -Computer $servername -ScriptBlock {net localgroup remotedesktopbenutzer $admin-gruppe /ADDI}
-
Hallo zusammen,
ich habe mir ein Skript geschrieben womit ich automatisiert eine VM in unserer VMware Umgebung bereitstelle.
Zuerst werde Vorarbeiten im AD getätigt (Erstellung Computerobjekt, Erstellung Berechtigungsgruppen.
Danach wird die PowerCLI gestartet und die VM per Template ausgerollt und ins AD aufgenommen.
Jetzt zu meinem Problem:
Ich möchte nun, die im AD erstellt Berechtigungsgruppe der lokalen Admin-Gruppe des neuen Servers hinzufügen.
Mit "Enter-PSSession" komme ich zwar ohne weiteres auf denen neuen Server, die weiteren Befehle im Skript werden aber nicht ausgeführt.
$servername = "Test-Server" $admin-gruppe = "Test-Server-Admin" Enter-PSSession -$servername net localgroup remotedesktopbenutzer $admin-gruppe /ADD
Hat jemand eine Idee für mich, wie ich das via Powershell hinbekomme?
Danke schon einmal
-
Ich habe das ganze jetzt über oscustomizationspec gelöst
-
Das verstehe ich nicht wirklich. Was ist das für ein Konstrukt?
ja ist auch ein bisschen komplex. das zu erklären würde dauern.
daher sollten wir una einfach auf meine Schleife beschränken, damit die LAN Einstellungen erst geändert werden, wenn das Sysprep durch ist
-
zu 1) Gibt es einen Grund die LAN Karte nicht bereits im Template anzupassen?
zu 2) Update Manager / bzw. siehe 1)
Und den RAM kannste du beim deployen doch direkt im Anschluss anpassen.
das template hängt im moment an einem host. da wir pro host distributed switches haben, die alle den hostnamen enthalten, muss man einen Standard-Switch nehmen, da jeder Host einen "Migrations-LAN" Switch hat.
Dieser soll dann geändert werden.
Ich würde das alles gerne erst nach dem Sysprep machen, damit ich weiß, dass die VM nicht mehr eigenständig durch das Sysprep herunterfährt.
Bei den VMware Tools gebe ich dir recht. Das Template zu aktualisieren ist einfacher.
Den RAM / die CPU könnte ich natürlich auch direkt nach dem ausrollen bearbeiten, bevor die VM startet
-
Hi,
was hast du denn alles vor wenn die VM den richtigen Namen hat?
Gruß
Jan
1. Ändern der Lan Karte
2. Update VMware Tools
und wenn Nötig anpassen CPU / RAM
-
Hallo zusammen,
ich bin gerade dabei einSkript zu schreiben um automatisiert Vmware VMs via Template zu deployen.
So lange das Sysprep nicht gelaufen ist, hat die VM noch einen falschen Namen.
Erst wenn der Name korrekt ist, sollen die nächsten Schritte ausgeführt werden.
Also habe ich es mit einer Schleife versucht. Da ich das erste Mal mit Schleifen arbeite, habe ich leider keine Ahnung wo mein Fehler ist.
#PowerCLI abfrage des aktuellen Computernamen $DNS_Name = get-vm VNTS999 | select @{N="DnsName"; E={$_.ExtensionData.Guest.Hostname}} #Schleife while ($DNS_Name -notlike "*VNTS999") { sleep 3 $DNS_Name = get-vm VNTS999 | select @{N="DnsName"; E={$_.ExtensionData.Guest.Hostname}} }
Das Skript läuft nicht weiter, auch wenn die VM den korrekten Namen hat.
Da kann mir doch sichr jmd helfen?
-
Welche PS-Version? "Get-SMBOpenFile | Close-SMBOpenFile -force"
Version 3.0 auf Windows Server 2012
Kann man das irgendwie Filter. Ich will nur bestimmte Verbidnung trennen.
Get-smbOpenFile -Filter {Path -like "E:\Data3\StandortB*"}
-
Hallo zusammen,
wir sind gerade dabei eine Migration von Daten vorzubereiten.
Dazu würden wir gern ein Powershell-Skript verwenden.
Robocopy läuft bereits und Synchronisiert alle Änderungen
Den Pfad im DFS umstellen klappt auch schon.
Bevor die letzten Synchronisation läuft, sollen alle offnenen Datein geschlossen werden.
Das ganze soll automatisiert geschehen. Sonst müsste man es manuell über die Computerverwaltungm machen.
Jemand eine Idee ?
Vielen Dank schon einmal
-
also den export nach excel hab ich schon einmal hinbekommen.
folgendes fehlt jetzt noch:
-das Worksheet umbenennen
-eine Zweite Gruppe abfragen und ein neues Worksheet schreiben
Leider bin ich gerade zu b***d, das selber hinzubekommen
$excel = New-Object -ComObject Excel.Application $excel.Visible = $true $workbook = $excel.Workbooks.Add() $sheet = $workbook.ActiveSheet $counter = 2 $sheet.cells.Item(1,1) = "Username" $sheet.cells.Item(1,2) = "Anzeigename" Get-ADGroupMember Role-CMT-McAfee-Block-USB | Sort | Select SamAccountName, Name | ForEach-Object { $counter++ $sheet.cells.Item($counter,1) = $_.SamAccountName $sheet.cells.Item($counter,2) = $_.Name }
Update. Bin ein ganzes Stück weiter gekommen. Im Endeffekt muss ich die erstellt Datei nur noch speichern
cls $excel = New-Object -ComObject excel.application $excel.visible = $True $workbook = $excel.Workbooks.Add() $workbook.Worksheets.Add() $excel.DisplayAlerts = $False $sheet= $workbook.Worksheets.Item(1) #Block-USB #Tabelle benennen $sheet.Name = 'Block-USB' #Tabellenüberschriften setzen $sheet.Cells.Item(1,1) = 'Username' $sheet.Cells.Item(1,2) = 'Anzeigename' #Tabelle füllen $row = 2 $column = 1 Get-ADGroupMember Role-CMT-McAfee-Block-USB | Sort | Select SamAccountName, Name | ForEach { #SamAccountName $sheet.Cells.Item($row,$column) = $_.SamAccountName $column++ #Name $sheet.Cells.Item($row,$column) = $_.Name $column++ #Increment to next Row and reset Column $row++ $column = 1 } $usedRange = $sheet.UsedRange $usedRange.EntireColumn.AutoFit() | Out-Null #Monitor-USB $sheet= $workbook.Worksheets.Item(2) $sheet.Name = 'Monitor-USB' $sheet.Cells.Item(1,1) = 'Username' $sheet.Cells.Item(1,2) = 'Anzeigename' #Tabelle füllen $row = 2 $column = 1 Get-ADGroupMember Role-CMT-McAfee-Monitor-USB | Sort | Select SamAccountName, Name | ForEach { #SamAccountName $sheet.Cells.Item($row,$column) = $_.SamAccountName $column++ #Name $sheet.Cells.Item($row,$column) = $_.Name $column++ #Increment to next Row and reset Column $row++ $column = 1 } $usedRange = $sheet.UsedRange $usedRange.EntireColumn.AutoFit() | Out-Null
-
Wenn du einen DFS Pfad dazwischen hast ist das ein bekanntes Problem. Aktuelle Updates einspielen und es verschwindet. Wurde im kumulativen Update von Februar oder März korrigert.
DFS wird nicht verwendet. Es wird direkt eine Freigabe auf dem NAS verbunden
-
Hi,
du musst dazu mit dem COM Object Excel.Application eine "richtige" XLS erzeugen ($MeineExcelAnwendung = New-Object -COMObject Excel.Application).
Dann kannst du die CSVs entsprechend in Blatt1 und Blatt2 ausgeben. Oder du schreibst direkt in die XLS ohne den Umweg über CSV.
Gruß
Jan
direkt in Excel schreiben kann ich natürlich auch.
Was genau muss ich dazu machen?
Eventlog durschuchen
in Active Directory Forum
Geschrieben
Hallo zusammen,
in unserem AD ist eingestellt, dass ein UserAccount nach 5 falschen PWs für 10 Minuten gesperrt wird.
Da häufiger alte PWs im Browser etc. gespeichert werden, sperren sich die User gerne aus.
Jetzt möchte das Ereginislog der DCs dazu durchsuchen um die Fehlerquelle (PC) geraus zu fnden.
Leider weiß ich jetzt nicht, wie ich da noch die Suche nach einem SamAccountName hinzufügen kann.
Ich hoffe ihr könnt helfen.
Danke schon einmal
Mein erster Versuch ist schon einmal ganz vielversprechend
Nur dauert es eine ganze Weile, bis ein Ergebnis angezigt wird. Wenn ich direkt in der Ereignisanzeige schaue und dort nach der Event-ID suche, bekomme ich direkt Ergebnisse