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
GELÖST

Alle Benutzer in der Domäne abmelden

Frage Microsoft Windows Server

Mitglied: D3adm4n

D3adm4n (Level 1) - Jetzt verbinden

07.02.2012 um 12:32 Uhr, 6693 Aufrufe, 23 Kommentare

Sehr geehrtes Forum,

Ich habe hier einen windows server 2003 von dem aus ich mit einem geplanten task alle noch angemeldeten user zu einer bestimmten zeit, vor der sicherung abmelden möchte.

Ich habe psshutdown schon ausprobiert, dabei funktioniert der "wildcardschalter" bei mir nicht, da wird dann nur der Benutzer am Server abgemeldet. Die nächste möglichkeit ist die ab zu meldenden Rechner z.b. mit ip in eine textdatei zu schreiben, jedoch alle rechner händisch dort ein zu tippen wäre sehr müsig.

Daher die frage kann ich vll die Benutzerkonten aus dem ad auslesen lassen, per .bat datei vll die diese dann in die Textdatei schreibt die das psshutdown abfragt.

würde mich sehr über eine Lösung Lösungsvorschläge freuen.

Mit freundlichen Grüßen

D3adm4n
Mitglied: DerWoWusste
07.02.2012 um 13:32 Uhr
Hi.

Beschreib genau, was Du willst.
Benutzer vom Server abmelden=? Sind sie am Server selbst per RDP angemeldet oder wird auf Freigaben zugegriffen, oder...? Oder willst Du sie wirklich an deren eigener Arbeitsstation abmelden?

Schau in jedem Fall mal die Befehle net session, net file und net view an. Zu psshutdown: gib die Syntax an, die bei Dir nicht geht.
Bitte warten ..
Mitglied: D3adm4n
07.02.2012 um 13:39 Uhr
Hi,

ich will die user an ihren arbeitsstationen abmelden.

die nicht funktionierende syntax:
psshutdown -o \\*

und um sich auf einträge einer datei zu beziehen würde es so lauten:
psshutdown -o @(dateipfad)

die von dir angegebenen Befehle habe ich mir gerade einmal angesehen, leider sind die für mein Problem so weit ich sagen kann nicht hilfreich.

Gruß
Bitte warten ..
Mitglied: Lousek
07.02.2012 um 13:50 Uhr
Sali,

Die User bekommst du sicher raus, z.B. mit dsget (liegt auf dem DC unter C:\Windows\system32, gibts aber sicher auch in den Support Tools oder dem Resource Kit).
Wie wäre es mit dem ganz normalen shutdown-Befehl und dem Schalter mm? Z.B. shutdown /f /t 15 /c "Automatischer Logoff" /m \\*

Gruss
lousek
Bitte warten ..
Mitglied: DerWoWusste
07.02.2012 um 13:54 Uhr
\\* ist nicht lauffähig? Liegt es evtl. daran, dass Du keinen Domänenadmin bei der Ausführung verwendest bzw. trotz verwendetem Domänenadmin keinen Zugriff auf die Freigaben \\remotepc\admin$ hast? Prüf das.
Bitte warten ..
Mitglied: D3adm4n
07.02.2012 um 13:57 Uhr
Hi,

wäre nicht das problem^^, nur die arbeit das ganze manuell in die txt datei zu schreiben, automatisch wäre das schön.

bei dem von dir gezeigten befehlt ist kein schalter zum abmelden/herunterfahren/neustarten dabei und ich könnte nur die rechner neustarten oder herunterfahren, der schalter mit dem abmelden funktioniert im zusammenhang mit dem schalter zum Computernamen angeben nicht. Zumindest laut syntax wenn man shutdown ? in der cmd eingibt.

Gruß
Bitte warten ..
Mitglied: D3adm4n
07.02.2012 um 14:03 Uhr
der Task bzw. die tests wenn ich die befehle in der cmd eingebe werden immer als Domänen-Admin ausgeführt, bin am server als dieser angemeldet.

Auf deine anregung hin mit der Freigabe habe ich dies gerade einmal probiert, ich habe vom server aus den unc pfad eingegeben und bin ohne murren auf die freigabe gekommen.

Danke schonmal für eure anregungen =)

Gruß
Bitte warten ..
Mitglied: Lousek
07.02.2012 um 14:14 Uhr
Hast du mal die Möglichkeit mit dsget.exe oder dsquery.exe angeschaut?
Examples:
To find all computers that have been inactive for the last four weeks and
remove them from the directory:

dsquery computer -inactive 4 | dsrm

To find all users in the organizational unit
"ou=Marketing,dc=microsoft,dc=com" and add them to the Marketing Staff group:

dsquery user ou=Marketing,dc=microsoft,dc=com | dsmod group
"cn=Marketing Staff,ou=Marketing,dc=microsoft,dc=com" -addmbr

To find all users with names starting with "John" and display his office
number:

dsquery user -name John* | dsget user -office

To display an arbitrary set of attributes of any given object in the
directory use the dsquery * command. For example, to display the
sAMAccountName, userPrincipalName and department attributes of the object
whose DN is ou=Test,dc=microsoft,dc=com:

dsquery * ou=Test,dc=microsoft,dc=com -scope base
-attr sAMAccountName userPrincipalName department

To read all attributes of the object whose DN is ou=Test,dc=microsoft,dc=com:

dsquery * ou=Test,dc=microsoft,dc=com -scope base -attr *


Also ein Kommando auf der CMD kannst du mit > in eine Datei umleiten (z.B. ipconfig > test.txt).
Oder mit dem dsquery-Beispiel:
dsquery user -name John* | dsget user -office > test.txt

Gruss
lousek
Bitte warten ..
Mitglied: D3adm4n
07.02.2012 um 14:34 Uhr
also könnte ich mit dsquery auch alle computerkonten in eine datei ausgeben lassen richtig ?
wie müsste dann der befehlt aussehen ?, Domänenpfad zu den Computerkonten ist: Projekt.de\small\Computer

wenn damit mein problem gelöst ist wäre das echt super, danke schonmal =)

müsste dieser befehl für mich funktionieren ?: dsquery \small\computer -name "Computername" > computer.txt

Gruß
Bitte warten ..
Mitglied: Lousek
07.02.2012 um 15:05 Uhr
sali

Also am besten mal ein bisschen ausprobieren mit dsquery, einfach auf der Kommandozeile dsquery /? eingeben, schon bekommst du eine ausführliche Hilfe dazu.
In einer LDAP-Umgebung gibt man den "Pfad" so an, wie es im Beispiel gezeigt wird: ou=Test,dc=microsoft,dc=com

Für deine OU wäre dass: ou=Computer,ou=small,dc=projekt,dc=de

LG
lousek
Bitte warten ..
Mitglied: D3adm4n
07.02.2012 um 15:16 Uhr
hi,

kannst du mir vll sagen warum dieser befehl nicht funktioniert ?:
dsquery * ou=Computer,ou=small,dc=Projekt,dc=de | dsget "Computername" >computer.txt

habe ich vll. was vergessen ?, nach meiner jetzigen auffassung müsste er mir so die Computernamen ausgeben die er in Projekt.de\small\Computer findet oder ?

Gruß
Bitte warten ..
Mitglied: Lousek
07.02.2012 um 15:18 Uhr
Was passiert, wenn du nur
dsquery * ou=Computer,ou=small,dc=Projekt,dc=de
ausführst?

Gruss
lousek
Bitte warten ..
Mitglied: D3adm4n
07.02.2012 um 15:24 Uhr
hab das mal in eine datei umgeleitet, da wurde dann folgendes rein geschrieben:

"OU=Computer,OU=small,DC=Projekt,DC=de"
"CN=WKS0138,OU=Computer,OU=small,DC=Projekt,DC=de"

ich will ja das er mir nur das wks0138 da rein schreibt und wenn es mehrere sind diese darunter schreibt.

Gruß
Bitte warten ..
Mitglied: Lousek
07.02.2012 um 15:32 Uhr
nimm mal:
dsquery computer ou=Computer,ou=small,dc=Projekt,dc=de -o rdn

Mit dem * zeigt er dir alle Objekte (also auch OUs und User etc.) an ...

Mit dsquery computer /? bekommst du übringes genauere Hilfe.



LG
lousek
Bitte warten ..
Mitglied: D3adm4n
07.02.2012 um 15:38 Uhr
habe ich gerade ausprobiert, jetzt schreibt er mit nur "wks0138" in die datei, soweit so gut.

wenn du mir jetzt noch sagst wie man die anführungszeichen da auchnoch automatisch weg bekommt dann, funktioniert es =)

vielen vielen dank schonmal

Gruß
Bitte warten ..
Mitglied: Lousek
07.02.2012 um 15:49 Uhr
Da es mich selbst auch interessiert hat, habe ich kurz Google gefragt.
Das lässt sich schön mit einer for-Schleife realisieren (for /? auf der CMD für Hilfe):
01.
for /f %i in ('dsquery computer "ou=Computer,ou=small,dc=Projekt,dc=de" -o rdn') do echo %~i >> computers.txt
Gruss
lousek
Bitte warten ..
Mitglied: D3adm4n
07.02.2012 um 19:25 Uhr
werde ich direkt montag auf der arbeit ausprobieren, vielen vielen dank für deine super hilfe und das auch noch so schnell =)

beste Grüße

D3adm4n
Bitte warten ..
Mitglied: D3adm4n
13.02.2012 um 08:43 Uhr
Guten Morgen,

leider funktioniert der befehl nicht, mit einem pause in der zeile darunter lässt sich das ganze leider nicht anhalten, kann dir also nicht sagen woran es liegt.
Das dsquery zum auslesen des "wks138" funktioniert aber noch, also muss es wohl an der schleife liegen.

Gruß

D3adm4n
Bitte warten ..
Mitglied: Lousek
13.02.2012 um 09:00 Uhr
Morgen,

Machst du dass in einer Batch-Datei? ;)

Dann musst du die % verdoppeln, also so:
01.
for /f %%i in ('dsquery computer "ou=Computer,ou=small,dc=Projekt,dc=de" -o rdn') do echo %%~i >> computers.txt
Edit: Wenn du es direkt auf der CMD ausführst, brauchst du nur ein %, wenn du es im Batch ausführst brauchst du 2 ...

Gruss
lousek
Bitte warten ..
Mitglied: D3adm4n
13.02.2012 um 09:16 Uhr
Oh mann wie geil es funktioniert =), du bist mein scripting gott

dann eine frage wie das genau funktioniert:
for is ja eine schleife, wo bekommt die schleife eine angabe wie offt sie durchlaufen muss ?
mit dem "/f" gibt man an das das was in klammern steht eine zeichenkette ist oder ?
%i is ja eine variable aber was steht da drin ? der inhalt von dem was in der klammer ausgeführt wird ?
das rdn hinter dem -o was bewirkt das ?, habe in der dsquery hilfe geschaut aber da finde ich nix dazu nur das es das ausgabeformat bestimmt
was bewirkt das echo %%~i ?

fragen über fragen, bin nicht so der scripter, wäre also super wenn du mir die zeile erklähren könntest, möchte es ja auch verstehen


vielen vielen Dank und beste Grüße

D3adm4n
Bitte warten ..
Mitglied: Lousek
13.02.2012 um 09:45 Uhr
Sali

Ich bin definitiv KEIN scripting Gott ;)

Kann sein, dass ich jetzt also durchaus nicht alles 100% korrekt erkläre, aber ich lerne auch immernoch dazu ;)

Also, mit dem dsquery bekommst du ja mehr oder weniger eine "Liste" mit allen Computern zurück, ich würde mal behaupten, wie ein Array.
Mit der Option -rdn wird nur der "relative distinguished name" der Computer in der Liste ausgegeben, also der eigentlich Name des Computerobjekts wie z.B. "Rechner1". der normale DN (distinguished name) wäre wie ein kompletter Pfad, also z.B. "cn=Rechner1,ou=Computer,ou=small,dc=Projekt,dc=de" ...

Die for-Schleife führt für jede Zeile aus dem dsquery-Resultat das echo %~1 aus ... dabei speichert er die aktuelle Zeile in der Variable %i. Durch die Schreibweise %~1 bei der Ausgabe werden umschliessende Anführungszeichen entfernt (siehst du auch in der Hilfe mit for /?). Da das ganze in einem Batch-file ist, musst du die %-Zeichen verdoppeln (also %%1 und %%~1 ...)

Gruss
lousek
Bitte warten ..
Mitglied: D3adm4n
13.02.2012 um 09:57 Uhr
nicht so bescheiden

ach, hast du doch super erklährt, klingt für mich zumindest auch richtig so =)

so finalisierend noch eine frage: ich habe mir eine if abfrage drum rum gebaut, die mir die computer.txt löschen soll wenn vorhanden und dann den normalen befehl ausführen, wenn die datei noch nicht vorhanden ist soll er nur normal den befehl ausführen.

bin der meinung das es funktionieren müsste nachdem was ich in der cmd hilfe gesehen habe:
IF EXIST computer.txt
<del computer.txt>
<for /f %%i in ('dsquery computer "ou=Computer,ou=small,dc=Projekt,dc=de" -o rdn') do echo %%~i >> computer.txt>
else
<for /f %%i in ('dsquery computer "ou=Computer,ou=small,dc=Projekt,dc=de" -o rdn') do echo %%~i >> computer.txt>

kannst du mir sagen warum das nicht funktioniert ?, is ja eig nicht so wild


Gruß

D3adm4n
Bitte warten ..
Mitglied: Lousek
13.02.2012 um 11:16 Uhr
Sali

Also mir ist nicht ganz klar, warum du die for-Schleife überhaupt in die IF-Abfrage einpacken willst ... ?
Du kannst es ja einfach so lösen:
01.
IF EXIST computer.txt del computer.txt 
02.
for /f %%i in ('dsquery computer "ou=Computer,ou=small,dc=Projekt,dc=de" -o rdn') do echo %%~i >> computer.txt
Aber zwecks Verständnis, evt. geht es so:
01.
IF EXIST computer.txt 
02.
03.
del computer.txt 
04.
for /f %%i in ('dsquery computer "ou=Computer,ou=small,dc=Projekt,dc=de" -o rdn') do echo %%~i >> computer.txt 
05.
06.
ELSE 
07.
08.
for /f %%i in ('dsquery computer "ou=Computer,ou=small,dc=Projekt,dc=de" -o rdn') do echo %%~i >> computer.txt 
09.
)
Bin mir aber auch nicht 100%ig sicher ;)

Gruss
lousek
Bitte warten ..
Mitglied: D3adm4n
13.02.2012 um 11:33 Uhr
Ich wollt es so haben das wenn die datei schon existiert er diese löscht und danach die abfrage macht, wenn die nicht existiert soll er nur die abfrage ausführen.

deine erste lösung hatte ich auch schon, aber mir aufgehoben falls das if else nicht funktioniert , ich fands nämlich mit nehm else zweig irgendwie schöner

leider funktioniert die 2. version von dir auch nicht, dann lass ich mal einfach die erste ;)

Trotzdem Danke.

So und nochmal ein allegemeines Danke für deine super Hilfe =)

Gruß

D3adm4n
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

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

Ähnliche Inhalte
Windows Server
TS W2008 - Gezielt Benutzer abmelden (4)

Frage von novregen zum Thema Windows Server ...

Sicherheits-Tools
gelöst 2 faktor authentifizierung windows domäne nur bestimmte benutzer (7)

Frage von kal10bach zum Thema Sicherheits-Tools ...

Windows Server
gelöst Ausnahmeregeln in GPOs für bestimmte Benutzer in der Domäne priorisieren aber wie? (3)

Frage von ITCrowdSupporter zum Thema Windows Server ...

Exchange Server
gelöst Kalenderberechtigung aller Benutzer in einer Domäne zurücksetzen (3)

Frage von Type02 zum Thema Exchange Server ...

Heiß diskutierte Inhalte
Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Windows Server
DHCP Server switchen (20)

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

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

Frage von MegaGiga zum Thema Hardware ...

Exchange Server
DNS Einstellung - zwei feste IPs für Mailserver (15)

Frage von ivan0s zum Thema Exchange Server ...