magman
-
Gesamte Inhalte
109 -
Registriert seit
-
Letzter Besuch
Beiträge erstellt von magman
-
-
Guten Morgen
Ja Read-Host ist gut. Du bist schon auf dem richtigen Weg.
Bei Google und hier im Board findest du eine Menge nützlicher Infos damit du das Script erfolgreich selbst erstellen kannst.
Wenn du ein fertiges Script hast kannst du es ja mal online stellen.
Martin
-
Hi
du musst beides einsetzen. erstmal durchläufst du die schleife mit den einzelnen Dateien und vergleicht diese dann mit einer if abfrage.
Gruss Martin
PS ich habe deine einträge letzte woche schon gesehen und ich finde das dieses Forum nicht dazu da ist, dass du so lange fragst bis du ein fertiges script hast. Wir helfen alle gerne!
-
hi
Hier mal ein Beispiel was dich auf die richtig Spur führen könnte.
$ordner1 = Get-ChildItem c:\ordner1 $ordner2 = Get-ChildItem c:\ordner2 foreach ($datei1 in $ordner1) { write-host $datei1.name foreach($datei2 in $ordner2) { write-host $datei2.name } }
kleiner Denkanstoß
Martin
-
Hi
was kommt wenn du Get-ExecutionPolicy ausführst?
Martin
-
hi
kommt beim ausführen deines scripts eine fehlermeldung?
Führ das Script mal in einem geöffneten PS Fenster aus und guck nach ob da irgendeine Meldung kommt.
Martin
-
Ich habe mal mein Script abgeändert aber es nicht getestet.
Alle angaben ohne Gewähr.
# Prüft ob AD Module geladen ist und startet es ggf. If (Get-Module |where{$_.name -eq "activedirectory"}) {Write-Debug "AD Module schon importiert"} Else {Import-Module activedirectory -Force} # Daten holen $alladuser = Get-ADUser -Filter * # Daten ändern foreach($aduser in $alladuser) { $aduser.samaccountname if($aduser.initials -ne ""){Set-ADUser -Identity $aduser.samaccountname -Initials "i.A."} }
gruß
Martin
-
Dann hast du ja alle vorraussetzungen um es mit Powershell zu erledigen.
Hast du schon was mit Powershell gemacht?
Martin
-
Hallo Bern
ich würde es mit einem Powershell Script machen.
Was für einen Server hast du (2008r2?)?
Gruß
Martin
-
Hier meine Idee zu deinem Problem
get-acl C:\testacl | foreach{$_.access} |Where{$_.IdentityReference -eq "Gruppe"}
Gruß
Martin
-
Hi
etwas ausführlicher und rekursiv würde es so aussehen
Get-ChildItem c:\temp -Recurse -Exclude *.* |foreach{(get-acl($_.fullname)).access + $_.fullname}
Gruß
Martin
-
hi
du kannst auch Powershell mit dem Befehl Enable-ComputerRestore benutzen. Das sollte einfacher sein als VBS und es ist bei Win7 zeitgemäßer.
Gruß
Martin
-
Hallo Zusammen,
ich habe mir meine Idee nochmal genauer angesehen und habe festgestellt das nur derjenige das PW auslesen kann der den SecureString erstellt hat.
Da der Ersteller und Ausführer des Script eh ein ServiceUser ist und das PW nur 2 Leute kennen ist aus meiner Sicht die Sicherheit gewährleistet.
Danke nochmal
Und allen ein frohes neues Jahr
Martin
-
Danke
aber das hilft mir nicht weiter weil der connectionstring eine Password in klars***rift braucht.
$verbindung.ConnectionString = "Driver={TREIBER};System=127.0.0.1;Uid=$user;Pwd=$password;"
Oder gibt es hier die Möglichkeit das Pwd anderst anzugeben?
Gruß
Martin
-
Hallo zusammen,
gibt es eine Möglichkeit in einem ConnectionString das Password so anzugeben das man es nicht im Script irgendwo als klartext wieder ausgeben kann?
Momentan mache ich es so
$pws = "01000000d08c9ddf0115d1118c7a00c046(nicht vollständig)....."
$pw = ConvertTo-SecureString $pws
$PScred = New-Object system.Management.Automation.PSCredential("test", $pw)
$password = $PScred.GetNetworkCredential().Password
$verbindung = New-Object System.Data.Odbc.OdbcConnection
$verbindung.ConnectionString = "Driver={TREIBER};System=127.0.0.1;Uid=$user;Pwd=$password;"
Das PW steht jetzt zwar nicht in Klartext im script aber wenn ich mir $password ausgebe bekomme ich es angezeigt
Gruß
Martin
-
Kannst du die Datei nicht unter All Users auf den Desktop legen?
Meine Terminalserverzeit ist schon ein paar Jahre her.
-
Hi
Melden die sich alle auf einem Terminalserver an?
oder was meinst du mit rdp sitzung?
Martin
-
hi
Hyena nutzte ich fast täglich.
Solltest du dir unbedingt auch mal ansehen.
-
Nils hat recht
in einer produktivumgebung keine Risiken mit gefährlichem Halbwissen eingehen.
Martin
-
Nein ein Powershell Script.
Powershell solltest du dir als Admin mal genauer ansehen.
Es ist sehr hilfreich aber nicht das allerheilmittel.
Wie Nils schon geschrieben hat kann man dein Thema auch anders lösen.
Martin
-
OK
da musst du auf deinem 2003er noch was installieren.
habs selbst noch nicht auf einem 2003 AD gemacht sollte aber funktionieren.
und hier mal ein nicht getestetes script
Import-Module ActiveDirectory $log = New-Item "C:\userohne.txt" $ordner = Get-ChildItem \\Server\freigabe ForEach($i in $ordner) { $user = Get-ADUser -Filter { HomeDirectory -eq $ordner.name } if($user -eq $null){add-content $log $name} $user = $null }
-
Hi
OK
Ist mit Powershell nicht wirklich kompliziert.
Habt ihr ein 2008er AD oder 2003?
gruß
Martin
-
Hi
Soll das script bei jeder Anmeldung laufen oder willst du nur wissen ob jemand keinen Userordner auf dem Server hat?
Und das mit dem falsch verbunden sollte, sofern die Rechte sauber gesetzt sind, nicht vorkommen.
Gruß
martin
-
Ich sehe es ist überall das selbe.
Warum sollte es auch anderen Admins besser gehen
:D
Martin
-
Hi
so noch ne Stunde dann ist Wochenende und ich kann endlich den Stall für meine Laufenten bauen die ich am Dienstag bekomme.
Martin
Tipp: Set-StrictMode
in Windows Forum — Scripting
Geschrieben
Hi Blub
Super Hinweis. Das mit den Variablen ist mir auch schon einpaar mal passiert.
Gruß
Martin