Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

PowerShell-VBScript und AltSecurityIdentities

Frage Entwicklung Batch & Shell

Mitglied: black-one

black-one (Level 1) - Jetzt verbinden

26.07.2012 um 15:41 Uhr, 3370 Aufrufe, 6 Kommentare

Hallo

Hallo,

ich habe ein kleines Problem und ja Scripting liegt mir nicht direkt. Aber ich muss mich gerade darin einfitzen für Import von Daten ins AD.
Bisher bin ich soweit das ich mittels einer csv Datei und 2 PowerShell Befehlen, Computerkonten anlegen kann und den servicePrincipalNames setzen kann aus der csv Datei ebenfalls heraus.
Die Anzahl der Computerkonten umfasst 5000, daher dieser Weg und nicht alles händisch.

Das was noch fehlt ist das setzen des altSecurityIdentities.

Gefunden habe ich momentan das hier, was als VBS Script nutzbar wäre.
Aber wie bekomme ich es hin, dass die Daten aus der csv gelesen werden und an den beiden Stellen markiert der Client-Name eingetragen wird, oder evtl. aus dem AD ausgelesen da eingetragen wird.
Original:

Const ADS_PROPERTY_APPEND = 3

Set oUser = GetObject ("LDAP://CN=Josef Novak,OU=CertTest,dc=contoso,dc=com")
oUser.PutEx ADS_PROPERTY_APPEND, "altSecurityIdentities", _
Array("X509:<I>S=Czech
Republic,L=Praque,O=Contoso,E=josefn@xxxxxxxxxxx,CN=Josef Novak<S>S=Czech
Republic,L=Praque,O=Contoso,E=josefn@xxxxxxxxxxx,CN=Josef Novak")

oUser.SetInfo
Idee:
Const ADS_PROPERTY_APPEND = 3

Set oUser = GetObject ("LDAP://CN=HIER CLIENTNAME,CN=Computers,dc=XXXX,dc=local")
oUser.PutEx ADS_PROPERTY_APPEND, "altSecurityIdentities", _
Array("X509:<I>DC=local,O=XXXX,OU=XX,CN=XXXX,E=XXXXX<S>DC=local,O=XXXX,OU=XX,CN=HIER CLIENTNAME")

oUser.SetInfo

Im Endeffekt hätte ich erstmal 3 Befehle separat, was mir vorerst reicht. Auch wenn man vielleicht alles direkt zusammenfassen kann, aber da liegt momentan mein Problem, das ich es nicht weis..
Mitglied: bastla
26.07.2012, aktualisiert um 16:03 Uhr
Hallo black-one und willkommen im Forum!

Für eine CSV-Datei "D:\Computers.csv" mit nur einer Spalte (= in jeder Zeile ein Computername) ginge das in VBS (ungetestet) etwa so:
01.
CSV = "D:\Computers.csv" 
02.
Const ADS_PROPERTY_APPEND = 3 
03.
 
04.
Computers = Split(CreateObject("Scripting.FileSystemObject").OpenTextFile(CSV).ReadAll, vbCrLf) 
05.
 
06.
For Each Computer In Computers 
07.
    If Trim(Computer) <> "" Then 'Leerzeilen überspringen 
08.
        Set oUser = GetObject ("LDAP://CN=" & Computer & ",CN=Computers,dc=XXXX,dc=local") 
09.
        oUser.PutEx ADS_PROPERTY_APPEND, "altSecurityIdentities", _ 
10.
            Array("X509:<I>DC=local,O=XXXX,OU=XX,CN=XXXX,E=XXXXX<S>DC=local,O=XXXX,OU=XX,CN=" & Computer) 
11.
        oUser.SetInfo 
12.
    End If 
13.
Next
Grüße
bastla
Bitte warten ..
Mitglied: black-one
26.07.2012 um 16:56 Uhr
Hallo,
ja endlich auch mal angemeldet hier

und wahnsinn wie schnell eine Antwort kam, DANKE schonmal dafür.

Also ich habs nun angepasst noch an uns und über cmd gestartet, lässt sich da evtl. noch nen Fenster einbauen, das man sieht wie weit er ist. Sonst sieht man nicht ob er erfolgreich war oder was fehlt, etc.. Geht das sowas?

Theoretisch wäre es auch möglich meinee vorhanden csv damit zu bedienen oder? Weil habe gerade die vorhanden csv soweit bereinigt das nur noch die Clients beinhaltet waren, und auch ohne Kopfzeile..

mittels den Befehlen hol ich mir nämlich die Konten und die SPN über die CSV rein ins AD, aber mit PowerShell:
import-csv "Datei".csv | foreach {New-ADComputer -Name $_.Name -Description $_.Description}
import-csv "Datei.csv | foreach {Set-ADComputer $_.Name -servicePrincialNames @{Add=$_.Host1,$_.Host2}}

Wo Host1 und Host2 entsprechend für die Werte in der Tabelle stehen für den SPN, und $_.Name ist der Kopf für die Clients.
Bitte warten ..
Mitglied: bastla
26.07.2012, aktualisiert um 17:39 Uhr
Hallo black-one!
lässt sich da evtl. noch nen Fenster einbauen, das man sieht wie weit er ist. Sonst sieht man nicht ob er erfolgreich war oder was fehlt, etc.. Geht das sowas?
Zumindest den Fortschritt kannst Du bei einem Start über "cscript D:\DasScript.vbs"" aus dem CMD-Fenster verfolgen, wenn die Schleife etwas angepasst wird:
01.
CSV = "D:\Computers.csv" 
02.
Const ADS_PROPERTY_APPEND = 3 
03.
 
04.
Computers = Split(CreateObject("Scripting.FileSystemObject").OpenTextFile(CSV).ReadAll, vbCrLf) 
05.
 
06.
Anzahl = UBound(Computers) 
07.
For i = 0 To Anzahl 
08.
    WScript.Echo "Verarbeite " & i & " von " & Anzahl 
09.
    If Trim(Computers(i)) <> "" Then 'Leerzeilen überspringen 
10.
        Set oUser = GetObject ("LDAP://CN=" & Computers(i) & ",CN=Computers,dc=XXXX,dc=local") 
11.
        oUser.PutEx ADS_PROPERTY_APPEND, "altSecurityIdentities", _ 
12.
            Array("X509:<I>DC=local,O=XXXX,OU=XX,CN=XXXX,E=XXXXX<S>DC=local,O=XXXX,OU=XX,CN=" & Computers(i)) 
13.
        oUser.SetInfo 
14.
    End If 
15.
Next
Grüße
bastla
Bitte warten ..
Mitglied: black-one
27.07.2012 um 10:13 Uhr
Hi,

habs grad mal so getestet, er verarbeitet zwar was, aber trägt nichts bei altSecurityIdentities ein.
Mi der oberen Variante gehts.
Bitte warten ..
Mitglied: bastla
27.07.2012 um 14:25 Uhr
Hallo black-one!

Sorry - kann ich nicht nachvollziehen; beide Schleifen machen das Gleiche ...

... aber Du könntest auch die erste Variante noch etwas informativer machen, indem Du vor Zeile 8 einfügst
WScript.Echo Computer
- dann aber ebenfalls über "cscript" starten, da ansonsten für jeden Computer eine MsgBox wegzuklicken wäre ...

Grüße
bastla
Bitte warten ..
Mitglied: black-one
27.07.2012 um 15:23 Uhr
na vielleicht find ich noch den Unterschied zwischen den beiden Versionen...

habs grad mal mit eingebunden in die erste Variante und nun seh ich das er die pc´s abarbeitet und entsprechend die einträge setzt.
mit den jeweiligen 2 Powershell Befehlen, shaut es im Moment ganz gut aus..
Muss dies aber noch auf einem anderen System zum Test nachstellen und dann hoffentlich als erledigt sehen...
Ich schreib bestimmt nochmal was hierzu....

Ich danke schonmal für die Mühe und schnelle Unterstützung.
DANNNNKKEEEEEEEE
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Batch & Shell
gelöst PowerShell Domain Join (2)

Frage von Patrick-IT zum Thema Batch & Shell ...

Batch & Shell
gelöst Powershell Hashtable to Übersichtliche Darstellung (2)

Frage von Marabunta zum Thema Batch & Shell ...

Batch & Shell
gelöst Powershell Mauszeiger ausblenden (11)

Frage von Marabunta zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (22)

Frage von M.Marz zum Thema Windows Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...