Das Skript soll sich automatisiert über die Graph API alle Risk Infos der letzten 24 Stunden holen und die betroffenen User ausgeben
Es ist dennoch möglich zuzugreifen über die Microsoft Graph API / Es muss eine App im Azure erstellt werden und die Werte im PHP Skript entsprechend angepasst / Als täglicher Cron Job auf einem Linux Server im Einsatz - wobei stdout per Mail versand wird an administrativen Mail Account :)
Finde alle aktiven User deren letzte Passwortänderung länger als $daysLastPasswordChange zurück liegt und schicke ihnen eine E-Mail , damit sie ihr Passwort ändern
# Mail related
$smtp_server="smtp.office365.com"
$subject = "Passwort zu alt !"
$mail_username="USERNAME_AUTH"
$mail_password="PASSWORD_AUTH"
$securePass = ConvertTo-SecureString $mail_password -AsPlainText -Force
$mailAuth = New-Object System.Management.Automation.PSCredential ($mail_username, $securePass)
# End mail related
# AD Password Threshold related
$countAll=0
$daysLastPasswordChange=365
$timeThreshold=(Get-Date).Adddays(-($daysLastPasswordChange))
# End mail Threshold related
$userObjects = Get-ADUser -Filter { Enabled -eq $True -and pwdLastSet -lt $timeThreshold } -SearchBase 'LDAP_BASE_AD' -Properties UserPrincipalName,LastLogonTimeStamp,whenChanged,whenCreated,lastLogon,objectGUID,pwdLastSet,mail
Start-Transcript -path lastPasswordChangeUserTrack.txt
#Force TLS1.2
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Foreach ($user in $userObjects)
{
$lastLogon=[datetime]::FromFileTime($user.lastLogon)
$lastPasswordUpdate=[datetime]::FromFileTime($user.pwdLastSet)
write-host "$($user.UserPrincipalName) - lastPasswordUpdate: $lastPasswordUpdate last Logon: $lastLogon WhenChanged: $($user.whenChanged) WhenCreated: $($user.whenCreated) "
if($user.mail)
{
$destination= $user.mail
$mail_content="Bitte aendere deine Zugangsdaten im Schulnetzwerk sobald wie moeglich, deine letzte Passwortaenderung ist zu lange her: $lastPasswordUpdate"
Send-MailMessage -smtpserver $smtp_server -Subject $subject -From $mail_username -Body $mail_content -Credential $mailAuth -to $destination -UseSsl
if($?)
{
#No hammering the smtp server ! / We have no idea what microsofts skynet thinks about sending bulk mail
Start-Sleep -seconds (Get-Random -Minimum 2 -Maximum 10 )
write-host "SUCCESSFULLLY notified $($user.userPrincipalName) using $($user.mail) "
}
else
{
write-host "ERROR could not notify $($user.userPrincipalName) using $($user.mail) "
}
}
else
{
write-host "ERROR could not notify $($user.userPrincipalName) NO mail address listed"
}
$countAll+=1
}
write-host "All Elements counted: $countAll"
write-host "Days Last Password Update Threshold: $daysLastPasswordChange Days"
Stop-Transcript
showWindowsKey.ps1
Wenn ers schafft Windows Key auslesen (bei der digitalen Geräteinitiative für die Kids - rechtsklick „Mit powershell ausführen“ / Pic mit Handy machen Copy & Paste bei der Konsole Ausgabe des Keys
Add-Type -AssemblyName System.Windows.Forms
#wmic path softwarelicensingservice get OA3xOriginalProductKey
$productKey=(Get-WmiObject -query 'select * from SoftwareLicensingService').OA3xOriginalProductKey
if ( $productKey -le 0 )
{
[System.Windows.Forms.MessageBox]::Show("Fehler: Konnte Key nicht auslesen","Windows 10 Produktschluessel",0 ,[System.Windows.Forms.MessageBoxIcon]::Error )
}
else
{
[System.Windows.Forms.MessageBox]::Show("ProductKey: $productKey","Windows 10 Produktschluessel",0,[System.Windows.Forms.MessageBoxIcon]::Information)
}
Write-Host "ProductKey: $productKey"
pause
checkIntuneDevices.ps1 powershell
Wenn Geräte durch User enrolled wurden die es nicht mehr gibt können diese im Intune gelöscht werden
mehr checks ID ↔ mail ↔ UPN und zur Sicherheit noch ein „Mindestabstand“ zum Enrollment date
Home Verzeichnisse für User sind nicht vorhanden oder Rechte auf die Home Verzeichnisse passen nicht
Von cc geringfügig modifiziert
#####################################################################
# AUTHOR : Victor Ashiedu
# DATE : 01-10-2014
# WEB : iTechguides.com
# BLOG : iTechguides.com/blog
# COMMENT : This PowerShell script creates a home folder for all users in Active Directory
# (Accessed only by the user) If this script was helpful to you,
# please take time to rate it at: http://gallery.technet.microsoft.com/PowerShell-script-to-832e08ed
#####################################################################
############################VERY IMPORTANT:##########################
#before you run this script enure that you read the ReadMe text file
######################################################################
#This script has the following functionalities:#######################
#1 Creates a persoanl (home folder) for all AD users
#2 Provides option to create users folders as DisplayName or sAMAccountname (Log on name)
#3 Grants each users "Full Control" to his or her folder
#4 Maps the users folder as drive 'H' (Configured via AD Users property,
#5 Ensures that users canot access another user's folder
#######################################################################
#######################################################################
#BEGIN SCRIPT
#Define variable for a server to use with query.
#This might be necessary if you operate in a Windows Server 2003 Domain
# and have AD web services installed in a particular DC
$ADServer = 'SERVER_AD'
#Get Admin accountb credential
#$GetAdminact = Get-Credential
Import-Module ActiveDirectory
#define search base - the OU where you want to
# search for users to modify. you can define the
#domain as your searchbase
#add OU in the format OU=OU 1,Users OU,DC=domain,DC=com
$searchbase = "SEARCHBASE_DN"
#Search for AD users to modify
#-Credential $GetAdminact
#$ADUsers = Get-ADUser -server $ADServer -Filter * -searchbase $searchbase -Properties *
$ADUsers = Get-ADUser -server $ADServer -searchbase $searchbase -Properties * -Filter *
ForEach ($ADUser in $ADUsers)
{
#Happy Debugging
#$ADUser -properties SamAccountName | Format-List
#$ADUser | Select-Object -Property SamAccountName,homedirectory | Format-List
[string]$pathHomeDirectory = $( $ADUser.homedirectory )
[string]$userPrincipalName= $($ADUser.userPrincipalName )
if ( -not ( Test-Path $pathHomeDirectory ) )
{
write-host("--------");
write-host("Home Directory not found: "+$path);
write-host("AccountName: "+$ADUser.samAccountName);
#Create Missing directory
$homeShare = New-Item -path $pathHomeDirectory -ItemType Directory -force -ea Stop
Write-Host ("HomeDirectory created at {0}" -f $homeShare)
}
else
{
$homeShare=$pathHomeDirectory
write-host ("Username: {0}" -f $userPrincipalName)
}
$acl = Get-Acl $homeShare
$FileSystemRights = [System.Security.AccessControl.FileSystemRights]“Modify“
$AccessControlType = [System.Security.AccessControl.AccessControlType]::Allow
$InheritanceFlags = [System.Security.AccessControl.InheritanceFlags]“ContainerInherit, ObjectInherit“
$PropagationFlags = [System.Security.AccessControl.PropagationFlags]“None“
$AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule ($ADUser.SID, $FileSystemRights, $InheritanceFlags, $PropagationFlags , $AccessControlType)
$acl.AddAccessRule($AccessRule)
Set-Acl -Path $homeShare -AclObject $acl -ea Stop
write-host ("ACL's have been modified {0}" -f $homeShare)
}
#END SCRIPT
SimpleAssignLicenses.ps1 powershell
Domäne zB: schule.at
Kompatibel mit Virtualschool Style des AD's / Auf Grundlagen des Lizenzzuweisungsskripts von Virtualschool nur trivialer
Sollte es noch genug A3 Lehrer Lizenzen geben und es sich um einen Lehrer handeln weise A3 Lehrer Lizenz zu
Sollte es nicht mehr genug A3 Lehrer Lizenzen geben und es sich um einen Lehrer handeln weise A3 Schüler Lizenz zu
Sollte es sich um keinen Lehrer handeln und noch genug A3 Schüler Lizenzen vorhanden sein weise A3 Schüler Lizenz zu
Durch eine Verkettung unglücklicher Umstände kam es zu folgender Situation
Addressobjekte die Teil von Gruppenverteilern sind (durch die #EXT#@ Einträge in der Cloud ersichtlich) bekamen Lizenzen zugewiesen
Durch die Lizenzzuweisung wurde das proxy smtp:mailadresse Attribut der Einträge entfernt - beim Versand an die Gruppenverteiler kann der MS Mechanismus zum Auflösen die Mail Adressen nicht mehr „finden“
Dieser Fehler wird erst ersichtlich sobald die Gruppenverteiler im Outlook expandiert werden und eine Übermittlungsbestätigung angefordert wird ( 500er Fehler der MS Mail Server .. proxyAddresses primary Mail attribute missing )
Dieses Skript entfernt die Lizenz und weist den Einträgen wieder die Mailadresse zu
Windows 2012r2 erkennt den -RemoveFromRecycleBin - nach mehreren Stunden des erfolglosen Versuchs das Modul zu aktualisieren wurde es auf Windows 10 durchgeführt
$adminUPN="admin@DOMAIN"
$userCredential = Get-Credential -UserName $adminUPN -Message "Type the password"
Connect-MsolService -Credential $userCredential
Start-Transcript -path connect-office365-logging.txt -NoClobber
foreach ( $currentUser in Get-MsolUser -ReturnDeletedUsers -All )
{
$currentPrincipal = $currentUser.UserPrincipalName
write-host "Soll User mit der UPN: $currentPrincipal gelöscht werden?"
Remove-MsolUser -UserPrincipalName $currentUser.UserPrincipalName -RemoveFromRecycleBin
}
Stop-Transcript
manCreatePupils.ps1 powershell
Quick and Dirty anlegen von AD User Accounts + Sync in die Cloud (proxyAddresses)
PATH_FILE im Format vorname.nachname@domain;Passwort
param(
[string]$searchCriteria="*"
)
#wake on lan https://gallery.technet.microsoft.com/scriptcenter/Send-WOL-packet-using-0638be7b
#Begin wake on lan code
function Send-WOL
{
<#
.SYNOPSIS
Send a WOL packet to a broadcast address
.PARAMETER mac
The MAC address of the device that need to wake up
.PARAMETER ip
The IP address where the WOL packet will be sent to
.EXAMPLE
Send-WOL -mac 00:11:32:21:2D:11 -ip 192.168.8.255
#>
[CmdletBinding()]
param(
[Parameter(Mandatory=$True,Position=1)]
[string]$mac,
[string]$ip="255.255.255.255",
[int]$port=9
)
$broadcast = [Net.IPAddress]::Parse($ip)
$mac=(($mac.replace(":","")).replace("-","")).replace(".","")
$target=0,2,4,6,8,10 | % {[convert]::ToByte($mac.substring($_,2),16)}
$packet = (,[byte]255 * 6) + ($target * 16)
$UDPclient = new-Object System.Net.Sockets.UdpClient
$UDPclient.Connect($broadcast,$port)
[void]$UDPclient.Send($packet, 102)
}
# End wake on lan Code
foreach ($macAddress in Get-DhcpServerv4Scope | Get-DhcpServerv4Lease | Where-Object {$_.hostname -like $searchCriteria } )
{
echo "Sending wol to : $($macAddress.clientid);$($macAddress.hostname)"
Send-WOL -mac $($macAddress.clientId)
}
rdp server zertifikat austauschen
Für die Domäne , in diesem Beispiel schule.intern wird ein Wildcard Zertifikat von einer für das System gültigen CA ausgestellt die auf allen Servern ausgerollt wurde, auf die per RDP zugegriffen wird *.schule.intern
Im Linux wird das CA Zertifikat zum System hinzugefügt (dpkg-reconfigure ca-certificates - siehe Linux)
rdesktop (1.9.0) und xfreerdp (2.0.0-dev5 (2693389a+debian)) überprüfen nun das SSL Zertifikat und melden KEINE Fehlermeldung wenn das Zertifikat korrekt unterschrieben wurde und der Hostname als FQDN für den Zugriff richtig gesetzt
Zuweisen des Zertifikats zum RDP Dienst über Fingerprint - ohne Spaces und ACHTUNG ohne non printable Charakters wenn Copy&Paste über GUI passiert
Bulks Restore von gelöschten Usern - mit Mail Notification ihres Passworts für den Restore Account
#office 365 administration specific
$adminUPN="admin@pdomain"
$userCredential = Get-Credential -UserName $adminUPN -Message "Type the password"
Connect-MsolService -Credential $userCredential
if(!$?)
{
write-Host "Could not Connect to Office 365 Service"
exit 2
}
#Mailserver and useraccount that will be abused for notification of the users e.g. Microsoft smtp
$smtpServer="smtp.office365.com"
$mailUsername="E-MAIL-ADDRESS"
$mailPassword="E-MAIL-PASSWORD"
$securePass = ConvertTo-SecureString $mailPassword -AsPlainText -Force
$mailAuth = New-Object System.Management.Automation.PSCredential ($mailUsername, $securePass)
$successRestore="false"
$successPassword="false"
$successMail="false"
$simplePassword="false"
foreach ( $currentUser in Get-MsolUser -ReturnDeletedUsers -All -Search "SEARCH_PATTERN_NAME_TESTING" )
{
#Get the old UserPrincipal Name that conains an e-mail
$principalNameOld=$currentUser.UserPrincipalName
#Construct the new UserPrincipal Name
$principalNameNew=$principalNameOld.split("@")[0]+"-restore@domain"
$mailSubject="Alter Account: "+$principalNameNew
Restore-MSolUser -UserPrincipalName $principalNameOld -NewUserPrincipalName $principalNameNew -AutoReconcileProxyConflicts
if($?)
{
$successRestore="true"
#OK User could be restore with new Principal Name - Let's create a SIMPLE password for him
$simplePassword = "AcD!"+(Get-Random -Minimum 1000000 -Maximum 9999999)
Set-MsolUserPassword -UserPrincipalName $principalNameNew -NewPassword $simplePassword
if($?)
{
$successPassword="true"
$mailBody="Hallo, `r`n deine alten Daten wie Mail/OneDrive erreichst du folgendermaßen:`r`n Login https://login.microsoftonline.com `r`n Benutzername: "+$principalNameNew+"`r`n Passwort: "+$simplePassword+"`r`n LG Das IT Team"
Send-MailMessage -smtpserver $smtpServer -Subject $mailSubject -From $mailUsername -Body $mailBody -Credential $mailAuth -to $principalNameOld -UseSsl
if($?)
{
$successMail="true"
}
else
{
$successMail="false"
}
}
else
{
$successPassword="false"
}
#Lets pause the process we don't know if we can send that many mails without being marked as Spam or something else
Start-Sleep -seconds (Get-Random -Minimum 2 -Maximum 10 )
}
else
{
$successRestore="false"
}
write-Output "$principalNameOld;$principalNameNew;$simplePassword;$successRestore;$successPassword;$successMail" | Tee-Object -Append -FilePath "C:\Scripts\restore.txt"
}
poor mans windows advanced threat protection - intune
Getestet mit Windows 10 Pro (1909) / Windows 10 LTSC 2019
Intune vollverwaltet und teilverwaltete Geräte
Über Intune wird über die „Skripts“ Funktionalität ein Mechanismus deployed der analog zur Variante mit E-Mail / Kerberos Notifikationen eine Notifikation über einen Web Endpunkt triggered sobald ein Virus durch den Windows Defender gefunden wird
Server - Intune
Bei Geräte - Skripts - Hier werden alle Skripte angezeigt:
Das bereits hochgeladene Skript wurde ATP-Deploy benannt - nach einiger Zeit (nach 2 Tagen wieder überprüft) erscheint eine Statistik mit „Gerätestatus“ , „Benutzerstatus“
Das bereits hochgeladene Powershell Skript könnte nun wieder hochgeladen werden / Achtung in diesem Beispiel läuft es mit SYSTEM aka. root Berechtigungen / Das Powershell Skript wird nur für Mitglieder der Gruppe ATP-Geräte angewandt
In diesem Punkt könnte es nochmals hochgeladen oder geändert werden / Achtung nach dem Upload ist es nicht mehr möglich (ich habs noch nicht debugged) herauszufinden was eigentlich ausgeführt wird :) / Beim Hinzufügen handelt es sich um das gleiche User Interface / In meinem Fall möchte ich das Skript als SYSTEM ausführen auf 64 Bit Maschinen / Bei Überprüfen lässt sich noch die Gruppe angeben für die das Skript Gültigkeit hat - ATP-Geräte / Bei erneutem Hochladen eines geändert Skripts wird das Powershell Skript nochmals ausgeführt / Sonst wird es laut MS Doku nur einmal ausgeführt / Skriptbeispiel: atp-deploy-system.ps1.zip
Wie kommt es zur Zuweisung zur Gruppe der ATP-Geräte / über Umwege - die Gerätekategorie
Die Sicherheitsgruppe ATP-Geräte enthält Devices denen die Gerätekategorie ATP-Prototyping zugewiesen wurde
Skripte für HOSTNAME Webserver d.h. wohin notified werden soll: intune_atp_server.zip
Endgerät - Workstations
Debugging auf dem Endgerät
Die Intune Management Extension muss auf dem Gerät automatisch installiert werden damit die Powershell Skripte ausgeführt werden
Überprüfung ob das Gerät im Intune registriert wurde
Informationen zur Registrierung / Microsoft Intune Management Extension muss nach einiger Zeit (Testraum Check 2 Tage) erscheinen
Synchronisierung kann auch manuell nochmals angeworfen werden / Laut MS Docs wird sie auch bei Neustart und erneutem Login angestoßen / Es war nicht ersichtlich wodurch die Microsoft Intune Management Extension getriggered wird
Sobald installiert befinden sich einige Logfiles in diesem Verzeichnis C:\ProgramData\Microsoft\IntuneManagementExtension\
poor mans windows advanced threat protection - lokal
Getestet auf Windows LTSB 2016 64Bit / LTSC 2019
Es soll bei Virus/Malware Fund durch Windows Defender eine Notifikation an eine zentrale Stelle erfolgen
Regelmäßiges Scannen auf einem Server könnte zB: folgendermaßen gelöst werden , im folgenden Beispiel wird das Laufwerk G:\ gescannt → speichern als .ps1 und in Task Planer aufnehmen zB: wöchentlich
Aus aktuellem Anlass - da 200GB SSD Platten / NVMEs im Schulbereich zu klein sind / Wenn lokale Profile verwendet werden und zahlreiche User sich auf dem Gerät einloggen
Enthält ein Powershell Skript (C:\Scripts\*.ps1) , das beim Start (Aufgabe *.xml) ausgeführt wird / Durch das Batch file (*.bat) kann es als Computerrichtlinie deployed werden
Wenn die Geräte unter 16GB frei haben oder ein Festplattenproblem / Dateisystem Problem festgestellt wird , wird ein POST Request an das Support System getriggered, das eine Mail an den zuständigen Betreuer versendet
Aus aktuellem Anlass da bei manchen Endgeräten die Updates nicht installiert werden / WSUS wurde aufgrund zu vieler Fehler entfernt und ich möchte die Notifikationen per E-Mail pro Gerät erhalten ggf. wird ein Mail Filter eingerichtet
Gesetzt folgendem Fall - eine APC USV hängt per USB an einem Server und es wird ein Zweiter hinzugefügt und an der USV angehängt / Für diese USV Reihe existiert jedoch keine Management Interface Karte , daher weiß der „remote“ Server nicht wann die USV aktiv wird bei Stromausfall
Auf dem „Host“ Server der per USB mit der USV verbunden ist werden in der Aufgabenplanung Tasks (batch Files) gestartet um den zweiten Server bei Bedarf herunterzufahren
Getestet auf Host Server Windows 2012r2 Standard und Remote Server Windows 2016 Standard
Konfiguration „Host“ Server der mit USV verbunden ist
Achtung USV wird als „Akku“ angezeigt - das Skript liest die aktuelle Akku Ladung raus, fällt das Ladeniveau unter einen bestimmten threshold zB: 30% wird ein event getriggered , das beim zweiten Job dazu führt dass das Shutdown Skript ausgeführt wird
In scripts.zip befindet sich auch eine powershell Variante zum Herunterfahren - hier müsste bei der zu startenden Applikation powershell.exe gewählt werden + Parametern könnte Ausführung zB: folgendermaßen sein powershell.exe -ExecutionPolicy Bypass c:\scripts_shutdown\shutdown-server.ps1
Konfiguration „Remote Server“ der durch Windows Boardmittel shutdown vom „Host“ Server heruntergefahren wird
Lokalen Standard User anlegen:
Lokalen Standard User Herunterfahren von Remote erlauben
gpedit.msc
Netzwerkkonfiguration Datei und Druckerfreigabe damit psshutdown connecten kann
Software RAID1 mit Windows Boardmitteln
Getestet auf Windows 2012r2 mit Hp Microserver gen8 und 2 SSD Platten / MBR Boot
Datenträger auswählen → konvertieren in Dynamischen
zB: Wenn Datenträger 0 gespiegelt werden soll auf Datenträger 1
Datenträger 1 vollständig löschen alle Volumes falls vorhanden
Datenträger 0 rechtsklick auf Partition Spiegelung hinzufügen → Datenträger1 auswählen
Sollte „Die Synchronisation wird wiederholt“ - ohne Prozentanzeige stehen - klick in betroffene Spiegelung und einmal F5 drücken und er aktualisiert die Anzeige mit Prozentangabe
Boot Treiber auf AHCI stellen
Getestet auf Windows 2012r2 / HP Microserver gen 8 B120I Software RAID
Umstellung von B120I RAID auf AHCI Modus
Nach der Umstellung im abgesichterten Modus starten & aus dem abgesicherten Modus neu booten und funktioniert :)
Run Registry Editor.
To do it, press Win + R and type in the command regedit.
Go to the section HKEY_LOCAL_MACHINE\ SYSTEM\ CurrentControlSet\ Services\ iaStorV
Regedit. Go to the section HKEY_LOCAL_MACHINE\ SYSTEM\ CurrentControlSet\ Services\ iaStorV
Double-click on Start element and set its value to 0 (zero).
Regedit. Double-click on Start element and set its value to 0 (zero).
In the next section, HKEY_LOCAL_MACHINE\ SYSTEM\ CurrentControlSet\ Services\ iaStorAV\ StartOverride set the zero value for the element 0.
Regedit. HKEY_LOCAL_MACHINE\ SYSTEM\ CurrentControlSet\ Services\ iaStorAV\ StartOverride set the zero value for the element 0
In the section HKEY_LOCAL_MACHINE\ SYSTEM\ CurrentControlSet\ Services\ storahci set the value to 0 (zero) for Start element.
Regedit. HKEY_LOCAL_MACHINE\ SYSTEM\ CurrentControlSet\ Services\ storahci set the value to 0 (zero) for Start element.
In the subsection, HKEY_LOCAL_MACHINE\ SYSTEM\ CurrentControlSet\ Services\ storahci\ StartOverride set the zero value for the element 0.
In our case, there is nothing to see, but you will see it, if AHCI has not been enabled yet.
Close Registry Editor.
Backup and Restore of Share Permissions
To backup share permissions, export the Shares registry key.
Open Regedit to the following location:
HKLMSYSTEMCurrentControlSetServicesLanmanServerShares
Right-click the Shares registry key and select Export. Give it a file name such as shareperms.reg.
When you want to restore the permissions, double-click shareperms.reg to import it back into the registry.
Use the Reg tool to backup the registry key from the command line:
reg export HKLMSYSTEMCurrentControlSetServicesLanmanServerShares shareperms.reg
If you need to restore it at some point, just run:
reg import shareperms.reg
Backup and Restore of NTFS Permissions
Use this command to backup NTFS permissions:
icacls d:data /save ntfsperms.txt /t /c
The /T switch allows it to get subfolder permissions too. The /C switch allows it to continue even if errors are encountered (although errors will still be displayed).
Use this command to restore them:
icacls d: /restore ntfsperms.txt
Note that in the command to save the permissions, I specified the target folder D:Data, but when I restored them, I specified just D: as the target. Icacls is a little funky like that, and here’s why.
If you open the text file with the exported permissions (ntfsperms.txt in the above example), you’ll see that Icacls uses relative paths (in bold below). Underneath the relative paths are the permissions for the folders in Security Descriptor Definition Language (SDDL) format.
data
D:AI(A;ID;FA;;;BA)(A;OICIIOID;GA;;;BA)(A;ID;FA;;;SY)(A;OICIIOID;GA;;;SY)(A;OICIID;0x1200a9;;;BU)(A;ID;0x1301bf;;;AU)(A;OICIIOID;SDGXGWGR;;;AU)
datafolder1
D:AI(A;ID;FA;;;BA)(A;OICIIOID;GA;;;BA)(A;ID;FA;;;SY)(A;OICIIOID;GA;;;SY)(A;OICIID;0x1200a9;;;BU)(A;ID;0x1301bf;;;AU)(A;OICIIOID;SDGXGWGR;;;AU)
datafolder2
D:AI(A;ID;FA;;;BA)(A;OICIIOID;GA;;;BA)(A;ID;FA;;;SY)(A;OICIIOID;GA;;;SY)(A;OICIID;0x1200a9;;;BU)(A;ID;0x1301bf;;;AU)(A;OICIIOID;SDGXGWGR;;;AU)
Had I specified D:Data in the command to restore the permissions, it would have failed looking for a D:DataData folder:
D:>icacls d:data /restore perms.txt
d:datadata: The system cannot find the file specified.
Successfully processed 0 files; Failed processing 1 files
You might think specifying D: as the target in the restore command may somehow mess up the permissions on other folders at that level, but as you can see from the ntfsperms.txt output file, it only has information about the Data folder and subfolders, so that is all it will change.
– Craig Landis
Empfehlung nur NTFS Permissions verwenden dann reicht robocopy zum Kopieren aus und es müssen nur die entsprechenden Shares erstellt (fsmgmt.msc) werden mit Share Permission FULL für „Jeder“
Gestartet: Donnerstag, 17. Mai 2018 11:54:04
Quelle : \\QUELLE\Share
Ziel : ZIELLAUFWERK:\Share
Dateien : *.*
Optionen: *.* /TEE /S /E /DCOPY:DA /COPY:DATS /SECFIX /PURGE /MIR /R:5 /W:30
AD Datenbank Repair - Versuche
Microsoft :
https://support.microsoft.com/de-at/help/258062.
Datenbank ad repair
https://www.tecchannel.de/a/active-directory-datenbank-pflegen-und-reparieren,435528,5
---
Datenbank repair
https://www.tecchannel.de/a/active-directory-sichern-wiederherstellen-und-warten,2040204,6
Praxis für Windows Server 2012 und 2012 R2
Active Directory - sichern, wiederherstellen und warten
Artikel empfehlen:
Kommentare & Drucken:
Autor:
08.04.2014Von Thomas Joos (Autor)
Active-Directory-Datenbank reparieren
Zuweilen kann es vorkommen, dass die Active-Directory-Datenbank nicht mehr funktioniert. Gehen Sie bei einem solchen Problem folgendermaßen vor:
Starten Sie den Server im Verzeichnisdienstwiederherstellung-Modus, oder beenden Sie Active Directory mit net stop ntds.
Öffnen Sie eine Befehlszeile und starten Ntdsutil.exe.
Geben Sie anschließend den Befehl activate instance ntds ein.
Geben Sie files ein, um zu file maintenance zu gelangen.
Geben Sie integrity ein, um einen Integritätstest der Datenbank durchzuführen. Wenn dieser Test eine Fehlermeldung anzeigt, können Sie versuchen, die Datenbank in Ntdsutil.exe zu retten.
Verlassen Sie mit quit die file maintenance, aber bleiben Sie in der Oberfläche von Ntdsutil.exe.
Geben Sie den Befehl semantic database analysis ein.
Geben Sie zunächst den Befehl verbose on ein, damit Sie detaillierte Informationen erhalten.
Geben Sie als Nächstes den Befehl go fixup ein.
CSV - Bulk User Batch Import mit Passwort definiert für alle (create_user.bat)
Analog zu create_user_text_csv.bat - nur Passwörter sind für alle gleich und definiert + SCRIPT Pfad wird angegeben + Passwort muss nach 1. Login geändert werden
@echo off
set pass=PASSWORD_ALLE_USER
set scriptpath=SCRIPT.BAT
set list_users=liste.txt
set error_list=user-error.csv
set success_list=user-success.csv
echo accountUsername;gruppe;beschreibung> %error_list%
echo accountUsername;gruppe;beschreibung> %success_list%
for /f "tokens=1,2 delims=;" %%f in (%list_users%) DO (
net user %%f 1> nul 2>&1
if %ERRORLEVEL% EQU 2 (
net user %%f %pass% /add /active:yes /passwordchg:yes /scriptpath:%scriptpath% /Y /DOMAIN 1> nul 2>&1
if %ERRORLEVEL% EQU 2 (
echo Successfully created: %%f
net group %%g 1> nul 2>&1
if %ERRORLEVEL% EQU 2 ( net group %%g /add /DOMAIN 1> nul 2>&1 )
net group %%g %%f /ADD /DOMAIN 1> nul 2>&1
if %ERRORLEVEL% EQU 2 ( echo Successfully added: %%f to group: %%g
echo %%f;%%g;Complete Success >> %success_list% ) else ( echo FAIL: Couldn't add %%f to group %%g
echo %%f;%%g;User created couldn't be added to group >> %error_list%)
) else ( echo FAIL: Couldn't add user %%f
echo "%%f;%%g;User couldn't be added" >> %error_list% )
) else ( echo FAIL: User: %%f already available manual intervention needed
echo %%f;%%g;User already available >> %error_list% )
)
pause
CSV - Bulk Prüfungs User Batch import (create_user_test_csv.bat)
Es existiert eine GPO die für User mit der Mitgliedschaft zu zB: pruefung aktiv wird
Achtung 2xMal ausführen - Vielleicht Environment beim 1. Mail Ausführung nicht korrekt / ERRORLEVEL ?
CSV Datei im gleichen verzeichnis - user-liste-test.txt mit Liste der zu erstellenden Benutzernamen und der Gruppenzugehörigkeit
user01;pruefung
user02;pruefung
user03;pruefung
create_user_test_csv.bat
@echo off
set list_users=user-liste-test.txt
set error_list=user-error.csv
set success_list=user-success.csv
echo accountUsername;gruppe;beschreibung > %error_list%
echo accountUsername;gruppe;passwort;beschreibung > %success_list%
for /f "tokens=1,2 delims=;" %%f in (%list_users%) DO (
net user %%f 1> nul 2>&1
if %ERRORLEVEL% EQU 2 (
setlocal EnableDelayedExpansion
set /a pass="!RANDOM!+10000000+!RANDOM!*1000"
net user %%f !pass! /add /active:yes /passwordchg:no /Y /DOMAIN 1> nul 2>&1
if %ERRORLEVEL% EQU 2 (
echo Successfully created: %%f
net group %%g 1> nul 2>&1
if %ERRORLEVEL% EQU 2 ( net group %%g /add /DOMAIN 1> nul 2>&1 )
net group %%g %%f /ADD /DOMAIN 1> nul 2>&1
if %ERRORLEVEL% EQU 2 ( echo Successfully added: %%f to group: %%g
echo %%f;%%g;!pass!;Complete Success >> %success_list% ) else ( echo FAIL: Couldn't add %%f to group %%g
echo %%f;%%g;!pass!;User created couldn't be added to group >> %error_list%)
) else ( echo FAIL: Couldn't add user %%f
echo "%%f;%%g;User couldn't be added" >> %error_list% )
) else ( echo FAIL: User: %%f already available manual intervention needed
echo %%f;%%g;User already available >> %error_list% )
)
pause
user-error.csvuser-success.csv werden erstellt im gleichen Verzeichnis - in der success Datei befindet sich auch das „generierte“ Passwort für die Prüfungsbenutzer
Die User selbst werden bei einem AD Server in der OU „USERS“ abgelegt
Kann auch als GPO (Computer Startup) genutzt werden / Parameter über Reiter „Parameter“ hinzufügen
Achtung /mir spiegel alles vom Ursprung , die Parameter immer überprüfen!!
robocopy_copy.bat
echo off
set fromLocation=%1
set toLocation=%2
set toLogfile=%3
IF %1.==. GOTO Usage
IF %2.==. GOTO Usage
IF %3.==. GOTO Usage
if exist "%toLogFile%" goto Ende
if not exist "%toLocation%" mkdir %toLocation%
robocopy /MIR /R:2 /W:2 %fromLocation% %toLocation%
if %ERRORLEVEL% EQU 0 echo "finished_successfully" > %toLogfile%
exit 0
:Usage
echo "%0 fromLocation toLocation logFile
echo ---------------------------
echo Beispielaufruf: %0 \\file\Software\ C:\Software\ C:\copy_software.txt
exit 2
:Ende
exit 0
NTFS Ownership ändern
Getestet auf Windows 2012r2 Standard als Domain Administrator der eine User Ownership vergibt
https://stackoverflow.com/questions/20673599/change-owner-and-permissions-on-folder#20676221
To make an addition to permissions and:
icacls.exe d:\test /setowner domain\username
To set ownership. Other options of interest from icacls /?:
/T indicates that this operation is performed on all matching
files/directories below the directories specified in the name.
/C indicates that this operation will continue on all file errors.
Error messages will still be displayed.
NTFS Volume verkleinern
Gegeben: 1.5TB Volume das auf 500GB verkleinert werden soll und bereits seit Jahren existiert
FAIL:
Restore Punkte deaktivieren & löschen - hat nichts gebracht
SWAP Speicher Konfiguration ändern - auf manuell gestellt und auf dem Volume gibts keinen SWAP - hat nichts gebracht
Windows internes defrag zahlreiche Male ausgeführt - hat nichts gebracht - offenbar nicht verschiebbare Dateien die nicht identifizierbar sind
Möchte kein neues Volume per SCSI hinzufügen und alle Shares neu definieren müssen bzw. nicht genug Speicherplatz für Kopie verfügbar
To shrink a basic volume using a command line
Open a command prompt and type diskpart.
At the DISKPART prompt, type list volume. Note the number of the simple volume you want to shrink.
At the DISKPART prompt, type select volume <volumenumber>. Selects the simple volume volumenumber you want to shrink.
At the DISKPART prompt, type shrink [desired=<desiredsize>] [minimum=<minimumsize>]. Shrinks the selected volume to desiredsize in megabytes (MB) if possible, or to minimumsize if desiredsize is too large.
LÖSUNG
Server wurde heruntergefahren / Volume an virtuelle Win10 LTSB 2016 Maschine per SCSI angehängt
Once i had the file in csv, i simply imported it into an excel sheet using spaces as the delimiter and hey presto a lovely little reservation report:
Same rules as always, dont run it from a UNC path, copy it local to the DHCP server and run it there.
netsh dhcp server dump >> reservationdump.txt
find “Add reservedip” reservationdump.txt >> reservations.csv
You can download the script as is here:
This script almost works as well. It currently lists extra clients. Some regex magic with the find command parameters could fix this. Save to to a .cmd file and specify your dhcppserver and a valid scope.
for /f "skip=4 delims=: tokens=2" %%a in ('nslookup %1') do set IP=%%a
netsh dhcp server \\ourdhcpsvr scope 192.168.1.0 show clients|findstr "%IP%"
Output should look like this
172.16.19.78 - 255.255.248.0 - c6-33-5f-cb-a7-a5 -4/25/2017 8:26:07 AM -D
Say you want to find out which computers will be affected if you link a GPO to a certain OU. You could run the following dsquery command:
dsquery computer "OU=IT,DC=contoso,DC=com" -o rdn
1
dsquery computer "OU=IT,DC=contoso,DC=com" -o rdn
The result would be a list of computer names. If you omit the -o switch with the rdn value, you receive a list of Distinguished Names.
Windows generell Dateien löschen
zB: in einem Verzeichnis mehr als 1Mio Dateien
Löschen über Explorer shift → ENTF
Er schafft es nicht die korrekte Anzahl der Dateien zu berechnen und auch nicht die Dauer des Löschvorgangs
Löschen über cli:
The best I've found is a two line batch file with a first pass to delete files and outputs to nul to avoid the overhead of writing to screen for every singe file. A second pass then cleans up the remaining directory structure:
del /f/s/q foldername > nul
rmdir /s/q foldername
Windows home-verzeichnisse erstellen
Falls auf home verzeichnisse verwiesen wird die nicht existieren / mit diesem Skript können Sie unter angabe der entsprechenden OU / und Domain Servers angelegt werden
#####################################################################
# AUTHOR : Victor Ashiedu
# DATE : 01-10-2014
# WEB : iTechguides.com
# BLOG : iTechguides.com/blog
# COMMENT : This PowerShell script creates a home folder for all users in Active Directory
# (Accessed only by the user) If this script was helpful to you,
# please take time to rate it at: http://gallery.technet.microsoft.com/PowerShell-script-to-832e08ed
#####################################################################
############################VERY IMPORTANT:##########################
#before you run this script enure that you read the ReadMe text file
######################################################################
#This script has the following functionalities:#######################
#1 Creates a persoanl (home folder) for all AD users
#2 Provides option to create users folders as DisplayName or sAMAccountname (Log on name)
#3 Grants each users "Full Control" to his or her folder
#4 Maps the users folder as drive 'H' (Configured via AD Users property,
#5 Ensures that users canot access another user's folder
#######################################################################
#######################################################################
#BEGIN SCRIPT
#Define variable for a server to use with query.
#This might be necessary if you operate in a Windows Server 2003 Domain
# and have AD web services installed in a particular DC
$ADServer = ad.schule.intern'
#Get Admin accountb credential
$GetAdminact = Get-Credential
#Import Active Directory Module
Import-Module ActiveDirectory
#define search base - the OU where you want to
# search for users to modify. you can define the
#domain as your searchbase
#add OU in the format OU=OU 1,Users OU,DC=domain,DC=com
$searchbase = "OU=Benutzer,DC=DOMAIN,DC=COM"
#Search for AD users to modify
$ADUsers = Get-ADUser -server $ADServer -Filter * -Credential $GetAdminact -searchbase $searchbase -Properties *
ForEach ($ADUser in $ADUsers)
{
#$ADUser -properties SamAccountName | Format-List
#$ADUser | Select-Object -Property SamAccountName,homedirectory | Format-List
[string]$pathHomeDirectory = $( $ADUser.homedirectory )
if ( -not ( Test-Path $pathHomeDirectory ) )
{
write-host("--------");
write-host("Home Directory not found: "+$path);
write-host("AccountName: "+$ADUser.samAccountName);
#Create Missing directory
$homeShare = New-Item -path $pathHomeDirectory -ItemType Directory -force -ea Stop
$acl = Get-Acl $homeShare
$FileSystemRights = [System.Security.AccessControl.FileSystemRights]“Modify“
$AccessControlType = [System.Security.AccessControl.AccessControlType]::Allow
$InheritanceFlags = [System.Security.AccessControl.InheritanceFlags]“ContainerInherit, ObjectInherit“
$PropagationFlags = [System.Security.AccessControl.PropagationFlags]“InheritOnly“
$AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule ($ADUser.SID, $FileSystemRights, $InheritanceFlags, $PropagationFlags, $AccessControlType)
$acl.AddAccessRule($AccessRule)
Set-Acl -Path $homeShare -AclObject $acl -ea Stop
Write-Host („HomeDirectory created at {0}“ -f $homeShare)
write-host("--------");
}
}
#END SCRIPT
Windows 2016 Ressourcen Manager f. Quotas
Installation auf Dateiserver über damischen ServerManager
Link zum Ressourcen Manager: %windir%\system32\mmc.exe %windir%\system32\fsrm.msc
zB: Harte Grenze mit 2TB auf ganzes Laufwerk mit E-Mail Notifikation ( SMTP Server kann über Rechtsklick - Ressourcen-Manager - Optionen konfigurieren eingestellt werden / natürlich ohne user auth zumindests in GUI)
Achtung: er benötigt einige Zeit um das Kontingent zu berechnen und den Verbrauch in der Zeit „stimmt“ der freie und verbrauchte Speicher NICHT
Windows 2012r2 Powershell TLS troubles
ein besonders tolles Schmankerl / Diverse Versuche „NuGet“ Provider zu installieren schlugen fehl - Kontrolle auf dem Proxy ergab verdächtige Paketgrößen bei CONNECT Analyse
Wireshark Dump des TLS Hanshakes zeigte, dass Microsoft die Unterstützung für TLS1 (oder auch 1.1 ) deaktiviert hat - es muss mit zumindest TLS 1.2 zugegriffen werden
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
WARNUNG: MSG:UnableToDownload
«https://go.microsoft.com/fwlink/?LinkID=627338&clcid=0x409» «»
WARNUNG: Die Liste der verfügbaren Anbieter kann nicht heruntergeladen werden.
Überprüfen Sie Ihre Internetverbindung.
WARNUNG: Es kann kein Download von URI
"https://go.microsoft.com/fwlink/?LinkID=627338&clcid=0x409" nach ""
durchgeführt werden.
Install-PackageProvider : Für die angegebenen Suchkriterien für Anbieter
"NuGet" wurde keine Übereinstimmung gefunden. Der Paketanbieter erfordert das
TLS V1 Alert Errors - Wireshark
PS C:\Users\administrator.SCHULE.000> [System.Net.ServicePointManager]::Security
Protocol = [System.Net.SecurityProtocolType]::Tls12
PS C:\Users\administrator.SCHULE.000> Install-PackageProvider -Name NuGet -Minim
umVersion 2.8.5.201 -Force
Name Version Source Summary
---- ------- ------ -------
nuget 2.8.5.208 https://onege... NuGet provi...
microsoft.online.reporting.monitoringagent.startup High CPU Load - frisst die CPU beim Task Manager
Mittlerweile Hotfix verfügbar für Azure AD COnnect
Stop the Azure AD Connect Health Sync Monitor Service
The first option is to stop the Azure AD Connect Health Sync Monitor service and set it to manual until the updated utility is released.
Click on Start and search for Services
Find the Azure AD Connect Health Sync Monitor service
Right click on it and click Stop
Right click on the same service and go to Properties
Change the Startup Type to Manual
GPO 1607 - Templates Problem
Blabla Geo Location error „Fehler „‚Microsoft.Policies.Sensors.WindowsLocationProvider‘ ist bereits definiert““
https://support.microsoft.com/de-at/help/3077013/microsoft-policies-sensors-windowslocationprovider-is-already-defined
Methode 2
Löschen Sie die Dateien „LocationProviderADM.admx“ und „LocationProviderADM.adml“, und ändern Sie „Microsoft-Windows-Geolocation-WLPAdm.admx“ und „Microsoft-Windows-Geolocation-WLPAdm.adml“ in die richtigen Namen.
Szenario 1
Löschen Sie die Dateien „LocationProviderADM.admx“und „LocationProviderADM.adml“ aus dem zentralen Speicher.
Benennen Sie „Microsoft-Windows-Geolocation-WLPAdm.admx“ um in „LocationProviderADM.admx“.
Benennen Sie „Microsoft-Windows-Geolocation-WLPAdm.adml“um in „LocationProviderADM.adml“.
Szenario 2
Löschen Sie die Datei „Microsoft-Windows-Geolocation-WLPAdm.admx“ aus dem lokalen Speicher. Der Pfad zum lokalen Richtlinienspeicher lautet „C:\Windows\PolicyDefinitions“.
Windows Update Cli
Cli
wuauclt /DetectNow
Jetzt nach Updates suchen.
wuauclt /ReportNow
Nicht berichtete Probleme an Microsoft melden.
wuauclt /ShowSettingsDialog
Windows-Update-Einstellungen anzeigen.
wuauclt /ResetAuthorization
Update-Komponenten zurücksetzen.
wuauclt /ResetEulas
Bestätigung der Lizenzverträge erneut einholen.
wuauclt /ShowWU
Windows-Update anzeigen.
wuauclt /ShowWindowsUpdate
Windows-Update anzeigen.
wuauclt /SelfUpdateManaged
wuauclt /SelfUpdateUnmanaged
wuauclt /UpdateNow
Verfügbare Updates installieren.
wuauclt /ShowWUAutoScan
wuauclt /ShowFeaturedUpdates
wuauclt /ShowOptions
wuauclt /ShowFeaturedOptInDialog
wuauclt /DemoUI
Windows 10 Windows Update Logs oho natürlich net mehr windowsUpdate.log Happy Powershell
C:\Users\christian.czeczil>powershell
Windows PowerShell
Copyright (C) 2016 Microsoft Corporation. Alle Rechte vorbehalten.
PS C:\Users\christian.czeczil> Get-WindowsUpdateLog
Converting C:\Windows\logs\WindowsUpdate into C:\Users\christian.czeczil\Desktop\WindowsUpdate.log ...
Verzeichnis: C:\Users\CHRIST~1.CZE\AppData\Local\Temp\WindowsUpdateLog
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 04.07.2018 11:31 SymCache
Eingabe
----------------
Datei(en):
C:\Windows\logs\WindowsUpdate\WindowsUpdate.20180626.173314.738.1.etl
C:\Windows\logs\WindowsUpdate\WindowsUpdate.20180626.190715.973.1.etl
C:\Windows\logs\WindowsUpdate\WindowsUpdate.20180626.204114.477.1.etl
C:\Windows\logs\WindowsUpdate\WindowsUpdate.20180626.221514.107.1.etl
Standardmäßig verzeichnet der Windows Update-Client sämtliche Transaktionsinformationen in folgender Protokolldatei:
%windir%\Windowsupdate.log
Wenn auf der Microsoft Windows Update-Website oder vom Dienst für automatische Updates eine Fehlermeldung ausgegeben wird, können Sie das Problem mithilfe der in der Protokolldatei "Windowsupdate.log" enthaltenen Informationen beheben.
Windows Updates Hack - neu intialisieren am Client
CMD (als Admin)
net stop wuauserv
net stop bits
rd /s /q %windir%\SoftwareDistribution
del %windir%\WindowsUpdate.log
net start wuauserv
net start bits
wuauclt /resetauthorization /detectnow
wuauclt /reportnow
Sollten die User bei einem User Skript befragt werden müssen d.h. interaktiv
In diesem Zweig befinden sich die entsprechenden GPO Einstellungen um batch Skript sichtbar zu machen Anweisungen in Anmeldeskripts während der Ausführung anzeigen
echo Hast du die Lizenz eingegeben und sie wurde akzeptiert ? ( j/n )
:Frage
SET /p wahl=
if /i not '%wahl%' == 'n' (if /i '%wahl%' == 'j' (goto Ja ) ) else goto Nein
if defined wahl ECHO Bitte mit j fuer Ja oder n fuer Nein. antworten. Vielen Dank & goto Frage
:Nein
goto Ende
:Ja
echo success > C:\license.log
:Ende
To create a WMI filter that queries for a specified version of Windows
Open the Group Policy Management console.
In the navigation pane, expand Forest: YourForestName, expand Domains, expand YourDomainName, and then click WMI Filters.
Click Action, and then click New.
In the Name text box, type the name of the WMI filter.
Note: Be sure to use a name that clearly indicates the purpose of the filter. Check to see if your organization has a naming convention.
In the Description text box, type a description for the WMI filter. For example, if the filter excludes domain controllers, you might consider stating that in the description.
Click Add.
Leave the Namespace value set to root\CIMv2.
In the Query text box, type:
syntax
select * from Win32_OperatingSystem where Version like "6.%"
This query will return true for devices running at least Windows Vista and Windows Server 2008. To set a filter for just Windows 8 and Windows Server 2012, use "6.2%". For Windows 10 and Windows Server 2016, use "10.%". To specify multiple versions, combine them with or, as shown in the following:
syntax
... where Version like "6.1%" or Version like "6.2%"
To restrict the query to only clients or only servers, add a clause that includes the ProductType parameter. To filter for client operating systems only, such as Windows 8 or Windows 7, use only ProductType="1". For server operating systems that are not domain controllers, use ProductType="3". For domain controllers only, use ProductType="2". This is a useful distinction, because you often want to prevent your GPOs from being applied to the domain controllers on your network.
The following clause returns true for all devices that are not domain controllers:
syntax
... where ProductType="1" or ProductType="3"
The following complete query returns true for all devices running Windows 10, and returns false for any server operating system or any other client operating system.
syntax
select * from Win32_OperatingSystem where Version like "10.%" and ProductType="1"
The following query returns true for any device running Windows Server 2016, except domain controllers:
syntax
select * from Win32_OperatingSystem where Version like "10.%" and ProductType="3"
Click OK to save the query to the filter.
Click Save to save your completed filter.
Hyper-V Storage Offline
Besonders erfreulich wenn der Server (2012r2) neu bootet und das Storage Volume nicht online nimmt obwohl es ein lokales RAID Controller Volume ist / auf dem alle virtuellen Maschinen liegen
SAN Policy wurde auf „OnlineAll“ geändert
https://support.purestorage.com/Solutions/Microsoft_Platform_Guide/aaa_Quick_Setup_Steps/Step_04
Microsoft DiskPart-Version 6.3.9600
Copyright (C) 1999-2013 Microsoft Corporation.
Auf Computer: FOO
DISKPART> san
SAN-Richtlinie : Offline - Freigegeben
DISKPART> SAN Policy=OnlineAll
Die SAN-Richtlinie für das aktuelle Betriebssystem wurde erfolgreich geändert.
DISKPART>
Hyper-V Storage Migration
Getestet auf Win2012r2 von einem SAS RAID Volume auf ein SSD RAID Volume im laufenden Betrieb
Anleitung zu Hyper-V-Replikat in Arbeitsgruppen oder bei stand-alone Servern
Diese Anleitung bezieht sich auf zwei stand-alone Hyper-V Server 2012. Jeder Host ist in einer anderen Arbeitsgruppe. Für die Replikation kommt in dieser Konstellation nur die Authentifizierung mit Zertifikaten in Frage. Der Einfachheit halber werden selbstsignierte Zertifikate verwendet. Neben den zwei Hyper-V Servern wird eine Windows 8 Arbeitsstation für die Einrichtung und Verwaltung benötigt.
Windows 8
Windows Software Development Kit (SDK) for Windows 8 herunterladen und installieren. Aus dem SDK wird das Tool „makecert.exe“ benötigt um die Zertifikate für die Hyper-V Hosts erstellen zu können. Dieses Tool auf die Hyper-V Hosts kopieren.
Unter „Systemsteuerung – Programme und Funktionen – Windows-Funktionen aktivieren und deaktivieren – Hyper-V“ die „Hyper-V-Verwaltungstools“ aktivieren.
HVRemote herunterladen.
In einer Eingabeaufforderung mit erhöhten Rechten folgende Befehle ausführen:
cscript hvremote.wsf /anondcom:grant
cmdkey /add:HYPER-V-COMPUTERNAME /user:HYPER-V-COMPUTERNAME\Administrator /pass
Der cmdkey-Befehl muss für jeden Hyper-V angepasst und ausgeführt werden.
Hyper-V Server 2012
Auf allen Hyper-V Hosts muss die Remoteverwaltung aktiviert sein. Ferner sollten statische IP-Adressen konfiguriert werden. Damit die Firewall den Replikationsverkehr durchlässt muss folgender Befehl pro Host ausgeführt werden:
netsh advfirewall firewall set rule group="Hyper-V-Replikat - HTTPS" new enable=yes
Nachfolgend wird von einem primären und einem recovery Host ausgegangen. Bei den Befehlen muss „<FQDN>“ pro Host angepasst werden, z.B. „host1.test.local“.
Auf dem primären Host folgende Befehle ausführen:
makecert -pe -n "CN=PrimaryTestRootCA" -ss root -sr LocalMachine -sky signature -r "PrimaryTestRootCA.cer"
makecert -pe -n "CN=<FQDN>" -ss my -sr LocalMachine -sky exchange -eku 1.3.6.1.5.5.7.3.1,1.3.6.1.5.5.7.3.2 -in "PrimaryTestRootCA" -is root -ir LocalMachine -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 PrimaryTestCert.cer
Auf dem recovery Host folgende Befehle ausführen:
makecert -pe -n "CN=RecoveryTestRootCA" -ss root -sr LocalMachine -sky signature -r "RecoveryTestRootCA.cer"
makecert -pe -n "CN=<FQDN>" -ss my -sr LocalMachine -sky exchange -eku 1.3.6.1.5.5.7.3.1,1.3.6.1.5.5.7.3.2 -in "RecoveryTestRootCA" -is root -ir LocalMachine -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 RecoveryTestCert.cer
Nun muss die „*.CA.cer“-Datei auf den jeweils anderen Host kopiert werden. Auf dem primären Host wird das Zertifikat mit dem Befehl
certutil -addstore -f Root "RecoveryTestRootCA.cer"
importiert. Auf dem recovery Host wird das Zertifikat mit dem Befehl
certutil -addstore -f Root "PrimaryTestRootCA.cer"
importiert. Abschließend muss auf beiden Hosts der Befehl
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization\Replication" /v DisableCertRevocationCheck /d 1 /t REG_DWORD /f
ausgeführt werden.
Damit sind die Voraussetzungen für Hyper-V-Replikat erfüllt. Nun kann für alle gewünschten virtuellen Maschinen die Replikation konfiguriert werden. Dazu den Hyper-V-Manager auf der Windows 8 Arbeitsstation starten, beide Hyper-V Hosts hinzufügen und die jeweilige virtuelle Maschine mit der rechten Maustaste anklicken. Anschließend „Replikation aktivieren…“ auswählen und dem Assistenten folgen.
Wichtig dabei ist, das bei der Angabe des Replikatserver der FQDN verwendet wird, der NetBIOS-Name reicht nicht aus und führt zu einer Fehlermeldung!
Hyper-V Server 2019
Nach Replikation von 2012r2 auf 2019 Server
Achtung zur Migration von Hyper V Hosts die NICHT in einer Domäne sind - Replikation mit Zertifikaten nutzen
Generation 2 Maschinen können nicht mehr starten
Fehlermeldung:
Lösung MAC Adresse der Maschine auf neuem Server ändern
Hyper-V VLAN
Getestet auf Ubuntu 18.04 und Windows 2019 Host
Wollte VLANs direkt nativ im Linux konfigurieren / Es ist leider nur möglich entweder tagged (trunk) Pakete oder untagged (access) Pakete über den Host auf den Switch zu bringen
NativeVlanId bedeutet Pakete die von der linux Maschine untagged sind werden durch den Host mit der VLAN Id getagged d.h. am Switch nur tagged Pakete / Untagged ist die Default Konfiguration
PS C:\Users\Administrator> Set-VMNetworkAdapterVLAN -VMName PLAY -Trunk -AllowedVlanIDList 1-500 -NativeVlanId 1
PS C:\Users\Administrator> Set-VMNetworkAdapterVLAN -VMName PLAY -Untagged
Gezielt gewisse Tagged VLANs an den Switch weiter geben zB: VLAN10 am Switch / wird als eigene „Netzwerkkarte“ hinzugefügt mit Identifikation des VLAN's - Linux sieht eine „normale“ Netzwerkkarte das Tagging übernimmt das Hostsystem
Windows Proxy einstellungen
Auto detection für aktuell eingeloggten Benutzer (mit zB: WPAD und PAC File per DHCP):
You can do it with this:
To Enable 'Automatically Detect Settings'
REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v AutoDetect /t REG_DWORD /d 1 /f
To Disable 'Automatically Detect Settings'
REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v AutoDetect /t REG_DWORD /d 0 /f
WinHTTP Komponente: (zB: .NET Applikationen)
The proxy settings for WinHTTP are not the proxy settings for Microsoft Internet Explorer.
You cannot configure the proxy settings for WinHTTP in the Microsoft Windows Control Panel.
Using the WinHTTP proxy configuration utility does not alter the settings you use for Internet Explorer.
To configure a system wide proxy do
netsh winhttp set proxy myproxy
source: http://technet.microsoft.com/pt-br/library/cc731131(v=ws.10).aspx#BKMK_5
if you want to use IE proxy settings for all programs, try
netsh winhttp import proxy source =ie
source: http://technet.microsoft.com/pt-br/library/cc731131(v=ws.10).aspx#BKMK_2
more information here:
http://msdn.microsoft.com/en-us/library/windows/desktop/aa384069(v=vs.85).aspx
Windows 2012r2 Update Fehler
Am 06.08.2015 schrieb Woly:
ein frisch installierter Server 2012 R2 Essentials meldet bei der Suche nach Updates den Fehler 80244019. Dieser Fehlercode scheint häufiger in Verbindung mit WSUS aufzutreten, aber weder führt dieser Server einen WSUS aus, noch hängt er an einem WSUS. Die Verbindung "nach draußen" wird durch einen handelsüblichen DSL-Router gewährleistet und auch nicht eingeschränkt.
In einer administrativen Commandline diese Befehle ausführen und anschließend den Server komplett neu starten.
net stop wuauserv
rd /s /q %windir%\SoftwareDistribution
del %windir%\WindowsUpdate.log
net start wuauserv
Nach dem Neustart auf Windows Update manuell nach Updates suchen
lassen. Das kann beim ersten Mal auch etwas länger dauern.
Windows DNS Server - Linux dig formErr
https://kevinlocke.name/bits/2017/01/20/formerr-from-microsoft-dns-server-for-dig/
DIG requested kevinlocke.name and received FORMERR. After some trial and error, I determined that the issue results from DIG 9.11 sending the DNS COOKIE option. This option was enabled by default in BIND 9.11. Unfortunately, adding this option causes DNS Server to treat the request as malformed. This behavior appears to violate “Any OPTION-CODE values not understood by a responder or requestor MUST be ignored.” from Section 6.1.2 of RFC 6891, but that is of small consolation for a non-working system.
-> As a workaround, pass the +nocookie option (or +noedns to disable all EDNS options) as in
Windows DNS Server Blacklist
Removing WPAD from DNS block list
The DNS Server role in Windows Server 2008 introduces a global query block list to reduce vulnerability associated with dynamic DNS updates. For more information, see About implementing WPAD.
If you want to use WPAD with DNS, note the following:
If WPAD entries are configured in DNS before the DNS server is upgraded in Windows Server 2008, no action is required.
If you configure or remove WPAD after you deploy the DNS server role on a server running Windows Server 2008, you must update the block list on all DNS servers that host the zones affected by the change. The affected zones are those where you registered the WPAD servers.
Updating the block list
Use the dnscmd command-line tool to manage the global query block list. Open a command line prompt, and then do the following:
To check whether the global query block is enabled, type the following:
dnscmd /info /enableglobalqueryblocklist
To display the host names in the current block list, type the following:
dnscmd /info /globalqueryblocklist
To disable the block list and ensure that the DNS Server service does not ignore queries for names in the block list, type the following:
dnscmd /config /enableglobalqueryblocklist 0
To enable the block list and ensure that the DNS Server service ignores queries for names in the block list, type the following:
dnscmd /config /enableglobalqueryblocklist 0
To remove all names from the block list, type the following:
dnscmd /config /globalqueryblocklist
To replace the current block list with a list of the names that you specify, type the following:
dnscmd /config /globalqueryblocklist name [name]…
For more information and instructions, see the document "DNS Server Global Query Block List", available for download from Domain Name System at Microsoft TechNet.
VHD into WIM konvertieren
19
down vote
accepted
Absolutely, let's post a prim and proper answer for Google. This is a simple 2 command Powershell execution, using the dism module. The dism can be copied to earlier versions of Windows, provided you have the appropriate version of the windows management framework.
First, mount the vhd using
Mount-WindowsImage -ImagePath C:\VHDs\BigHomies.vhdx -Path C:\VHDMount -Index 1
Then, capture it into a wim with
New-WindowsImage -CapturePath C:\VHDMount -Name Win7Image -ImagePath C:\CapturedWIMs\Win7.wim -Description "Yet another Windows 7 Image" -Verify
And let it do it's thing. When you are done you can unmount the vhd and discard any changes using:
Dismount-WindowsImage -Path C:\VHDMount -Discard
Windows Dienste f. User
Service für normalen user nutzbar machen Beispiele:
WDS Fehler - Imagegröße ändert sich nicht in der GUI - Treiber werden NICHT hinzugefügt obwohl alles OK scheint
Lösung → INDEX:2
E:\TMP\dism-windows-10>.\Dism.exe -Mount-Wim -WimFile:E:\TMP\Windows10_1607_64Bi
t_verteilen.wim -Index:2 -MountDir:E:\TMP-Mount
Deployment Image Servicing and Management tool
Version: 10.0.16299.15
Abbild wird bereitgestellt
[==========================100.0%==========================]
The operation completed successfully.
E:\TMP\dism-windows-10>.\dism -Image:E:\TMP-Mount -Add-Driver -Driver:E:\Treiber
\HP-800-G4-SFF\hp-800-g4-intel-nic-sp98256\src /Recurse
Deployment Image Servicing and Management tool
Version: 10.0.16299.15
Image Version: 10.0.14393.0
Suche nach zu installierenden Treiberpaketen...
Anzahl der zu installierenden Treiberpakete: 2.
1 von 2 - E:\Treiber\HP-800-G4-SFF\hp-800-g4-intel-nic-sp98256\src\E1D\e1d68x64.
inf wird installiert:
INFO: DISM hat die Überprüfung der Treibersignatur übersprungen, weil die Versio
nen des ausgeführten Betriebssystems und des Zielbetriebssystems nicht übereinst
immen.
Das Treiberpaket wurde erfolgreich installiert.
2 von 2 - E:\Treiber\HP-800-G4-SFF\hp-800-g4-intel-nic-sp98256\src\E1R\e1r68x64.
inf wird installiert:
INFO: DISM hat die Überprüfung der Treibersignatur übersprungen, weil die Versio
nen des ausgeführten Betriebssystems und des Zielbetriebssystems nicht übereinst
immen.
Das Treiberpaket wurde erfolgreich installiert.
The operation completed successfully.
E:\TMP\dism-windows-10>.\Dism -Commit-Wim -MountDir:E:\TMP-Mount
Deployment Image Servicing and Management tool
Version: 10.0.16299.15
Abbild wird gespeichert
[==========================100.0%==========================]
The operation completed successfully.
E:\TMP\dism-windows-10>.\Dism -Unmount-Wim -Commit -MOuntDir:E:\TMP-Mount
Deployment Image Servicing and Management tool
Version: 10.0.16299.15
Abbilddatei: E:\TMP\Windows10_1607_64Bit_verteilen.wim
Abbildindex: 2
Abbild wird gespeichert
[==========================100.0%==========================]
Bereitstellung des Abbilds wird aufgehoben
[==========================100.0%==========================]
The operation completed successfully.
WDS Fehler bei Treiber hinzufügen - „Wird nicht unterstützt“
https://social.technet.microsoft.com/Forums/windows/en-US/c469805c-98af-4bb2-9655-c86c294470a9/sysprep-failure-occurred-while-executing-drmv2cltdll-fix?forum=w7itproinstall:
Click Start > Run, type Services.msc to open the Services applet.
Scroll down to Windows Media Player Network Sharing Service, double click it, change the Startup type to Disabled. Click OK.
Reboot the PC
WDS Treiberproblem Fehler 30 bei nivida:
Bei Fehler 30 nvidia treiber: expand *.* .\test\ -> dann kommt wurde vergrößert xy prozent und dann gehts im test verzeichnis
siehe WDS deadaffebeef magic darunter für treiber hinzufügen
WDS am Server - Image mounten & gucken
http://deadaffebeef.com/blog/wds-windows-updates-treiber-zu-wim-abbild-hinzufugen/
1) Das Installationsabbild, welchem weitere Pakete hinzugefügt werden sollen, muss zu allererst exportiert werden:
CMD (als Administrator ausführen!): wdsutil -Export-Image -Image:”Win7 x86 ENT” -ImageType:Install -ImageGroup:Win7 -DestinationImage -FilePath:D:\Win7x86ENT.wim -Overwrite:Yes
2) Als nächstes muss die WIM-Datei gemountet werden:
dism -Mount-Wim -WimFile:D:\Win7x86ENT.wim -Index:1 -MountDir:D:\Mount
3) Nun können die Update- (CAB oder MSU) bzw. Treiber-Pakete dem gemounteten Image hinzugefügt werden:
Windows Updates: dism -Image:D:\Mount -Add-Package -PackagePath:<Pfad_und_Dateiname> /Recurse
Treiber: dism -Image:D:\Mount -Add-Driver -Driver:<inf-Pfad_OHNE_Dateiname>
4) Die vorgenommenen Änderungen am Image müssen gespeichert werden:
dism -Commit-Wim -MountDir:D:\Mount
5) Bevor das neue Image im WDS eingebunden werden kann, muss es zunächst unmountet werden:
dism -Unmount-Wim -Commit -MountDir:D:\Mount
6) Jetzt noch das ursprüngliche Installationsabbild durch das angepasste ersetzen und wir sind fertig:
wdsutil -Replace-Image -Image:”Win7 x86 ENT” -ImageType:Install -ImageGroup:Win7 -ReplacementImage -ImageFile:D:\Win7x86ENT.wim
Alternativ kann das geänderte Image als neues Abbild im WDS eingebunden werden:
wdsutil -Add-Image -ImageType:Install -ImageGroup:Win7 -ImageFile:D:\Win7x86ENT.wim -SingleImage:”Win7 x86 Enterprise” -Name:”Win7 x86 ENT” -Description:”Win7 x86 ENT Image – neu”
http://blogs.technet.com/b/nepapfe/archive/2013/03/01/it-s-simple-time-configuration-in-active-directory.aspx
AT Pool:
server 0.at.pool.ntp.org
server 1.at.pool.ntp.org
server 2.at.pool.ntp.org
server 3.at.pool.ntp.org
zB:
llten Sie eine neuere Version von Windows einsetzten, können Sie den NTP-Client nutzen, der in das System integriert ist. Führen Sie dazu folgendes Kommando als Administrator aus:
w32tm /config /syncfromflags:manual /manualpeerlist:"0.pool.ntp.org 1.pool.ntp.org 2.pool.ntp.org 3.pool.ntp.org"
Status:
C:\Users\administrator.SCHULE.000>w32tm /query /status
Sprungindikator: 0(keine Warnung)
Stratum: 2 (Sekundärreferenz - synchr. über (S)NTP)
Präzision: -6 (15.625ms pro Tick)
Stammverzögerung: 0.0000000s
Stammabweichung: 0.0100000s
Referenz-ID: 0x564D5450 (Quell-IP: 86.77.84.80)
Letzte erfolgr. Synchronisierungszeit: 24.06.2015 11:07:00
Quelle: VM IC Time Synchronization Provider
Abrufintervall: 6 (64s)
Befehl:
w32tm /config /syncfromflags:manual /manualpeerlist:"0.at.pool.ntp.org 1.at.pool.ntp.org 2.at.pool.ntp.org "/update /reliable:yes
w32tm /resync
Time gschichtln hyper v:
http://blogs.msdn.com/b/robertvi/archive/2011/05/11/time-synchronization-and-domain-controller-vm-s.aspx
https://support.microsoft.com/en-us/kb/816042
https://technet.microsoft.com/en-us/library/virtual_active_directory_domain_controller_virtualization_hyperv(WS.10).aspx
Time Set Session:
C:\Users\Administrator>w32tm /query /status
Sprungindikator: 0(keine Warnung)
Stratum: 4 (Sekundärreferenz - synchr. über (S)NTP)
Präzision: -23 (119.209ns pro Tick)
Stammverzögerung: 0.0358491s
Stammabweichung: 0.0479295s
Referenz-ID: 0x3369D0AD (Quell-IP: 51.105.208.173)
Letzte erfolgr. Synchronisierungszeit: 14.05.2021 19:05:41
Quelle: time.windows.com,0x8
Abrufintervall: 10 (1024s)
C:\Users\Administrator>w32tm /config /manualpeerlist:"at.pool.ntp.org,0x8" /syncfromflags:manual /reliable:yes /update
Der Befehl wurde erfolgreich ausgeführt.
C:\Users\Administrator>net stop w32time && net start w32time
Windows-Zeitgeber wird beendet.
Windows-Zeitgeber wurde erfolgreich beendet.
Windows-Zeitgeber wird gestartet.
Windows-Zeitgeber wurde erfolgreich gestartet.
C:\Users\Administrator>w32tm /resync
Befehl zum erneuten Synchronisieren wird an den lokalen Computer gesendet.
Der Befehl wurde erfolgreich ausgeführt.
C:\Users\Administrator>w32tm /query /status
Sprungindikator: 0(keine Warnung)
Stratum: 3 (Sekundärreferenz - synchr. über (S)NTP)
Präzision: -23 (119.209ns pro Tick)
Stammverzögerung: 0.0123271s
Stammabweichung: 7.8446831s
Referenz-ID: 0x563B50AA (Quell-IP: 86.59.80.170)
Letzte erfolgr. Synchronisierungszeit: 14.05.2021 19:17:02
Quelle: at.pool.ntp.org
Abrufintervall: 6 (64s)
Examples:
Examples
To add a new remote printer, printer1, for a computer, Client1, which is visible for the user account where this command is run, type:
rundll32 printui.dll PrintUIEntry /in /n\\client1\printer1
To add a printer using the add printer wizard and using an .inf file, InfFile.inf, located on drive c: at Infpath, type:
rundll32 printui.dll PrintUIEntry /ii /f c:\Infpath\InfFile.inf
To delete an existing printer, printer1, on a computer, Client1, type:
rundll32 printui.dll PrintUIEntry /dn /n\\client1\printer1
To add a per computer printer connection, printer2, for all users of a computer, Client2, type (the connection will be applied when a user logs on):
rundll32 printui.dll PrintUIEntry /ga /n\\client2\printer2
To delete a per computer printer connection, printer2, for all users of a computer, Client2, type (the connection will be deleted when a user logs on):
rundll32 printui.dll PrintUIEntry /gd /n\\client2\printer2
To view the properties of the print server, printServer1, type:
rundll32 printui.dll PrintUIEntry /s /t1 /c\\printserver1
To view the properties of a printer, printer3, type:
rundll32 printui.dll PrintUIEntry /p /n\\printer3
Druckerinstallation per Kommandozeile. Das Einrichten eines Netzwerkdrucker per CMD mit folgendem Befehl:
rundll32.exe printui.dll,PrintUIEntry /in /n “\\printsvr\KonicaMinolta 240f”
Der Parameter /in bedeutet > install network printer
Der Parameter /n gibt den Freigabenamen des Druckers an. In diesem Beispiel mit Pfadnamen zum Printserver.
To delete an Office profile that may still be cached
From Registry Editor, browse to:
HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Common\Identity\Identities
Choose the Office profile that you want to delete, and then choose Delete.
From the Identity hive, navigate to the Profiles node, choose that same identity, open the shortcut menu (right-click), and then choose Delete.
Office 2013 aktivieren:
@echo off
if not EXIST "C:\Program Files (x86)\Microsoft Office\Office15\" GOTO End
if EXIST "C:\activated.txt" GOTO End
cd "C:\Program Files (x86)\Microsoft Office\Office15\"
cscript ospp.vbs /act > C:\activated.txt
:End
So überprüfst Du, ob der KMS Server aktiviert
Slmgr.vbs /ckms
Slmgr.vbs /skms KMS_SERVER
Du kannst mit dem folgenden Befehl im Commandprompt überprüfen, ob die Aktivierung erfolgreich durchgeführt wird:
slmgr.vbs –ato
am DNS Server:
Using DNS Manager, in the appropriate forwarding lookup zone, create a new SRV RR using the appropriate information for the location. By default, KMS listens on TCP port 1688, and the service is _VLMCS. Table 2 contains example settings for a SRV RR.
Table 2 SRV Resource Record
Name
Setting
Service
_VLMCS
Protocol
_TCP
Port number
1688
Host offering the service
FQDN of KMS Host
Windows PE Boot Environment
Windows 7 : shift + F10 → Konsole
ipconfig /all -> ip check
drvload Pfad/*.inf -> Treiber laden
Mit skipcontent ändert er offenbar nur die Config und versucht keinen Kopiervorgang
Achtung er schreibt es passt aber er ändert das VZ nicht !!!
Bei Erfolg und das alte Datenverzeichnis LÖSCHEN sonst ein lock!!
2018-08-27T08:23:57 Successfully stopped WsusService.
2018-08-27T08:23:57 Beginning content file location change to F:\WSUS\
2018-08-27T08:23:57 Did not copy files due to -skipcopy flag.
2018-08-27T08:23:57 Successfully changed WUS configuration.
2018-08-27T08:23:59 Successfully changed IIS virtual directory path.
2018-08-27T08:23:59 Successfully removed existing local content network shares.
2018-08-27T08:23:59 Successfully created local content network shares.
2018-08-27T08:23:59 Successfully changed registry value for content store directory.
2018-08-27T08:23:59 Successfully changed content file location.
2018-08-27T08:24:01 Successfully started WsusService.
2018-08-27T08:24:01 Content integrity check and repair...
2018-08-27T08:24:01 Initiated content integrity check and repair.
Office 365 Online World of Microsoft
Regelwerke für Nachrichten
Regelwerk um Nachrichten mit bestimmten Eigenschaften abzulehnen zB: DLP
Weiterleitung aktivieren
Falls es erforderlich wird „Weiterleitungen“ zu aktivieren - Achtung Microsoft hat hier gegen Ende November/Dezember 2020 die Policy geändert - dass per defaultkeine Weiterleitungen mehr erlaubt sind
Bei Filterrichtlinie für ausgehendes Spam (immer EIN) - Richtlinie bearbeiten
Teilweise werden Mails von MS zum Frühstück verspeist und der Sender weiß nicht , dass die Mail nicht zugestellt wurde , wenn die Option Spam auf „Nachricht löschen“ steht - mit „Nachricht in Junk-E-Mail verschieben“ wird sie zumindest zum Empfänger zugestellt
Wird ein Powershell Skript aufgerufen , das mehrere Ausgaben enthält zB: mit write-host kann nicht einfach „redirected“ werden - sondern zB: mit Start-Transcript und Stop-Transcript kann die Ausgabe aufgezeichnet werden
- restart abbrechen mit shutdown -a / Azure integrierter Rechner / Nicht integrierter Rechner Unterschiede
Factory Reset mit → cmd (als Administrator) → systemreset
Infos zum Umgang mit MS Graph Intune Powershell / Installation
PS C:\Windows\system32> Install-Module -Name Microsoft.Graph.Intune
Der NuGet-Anbieter ist erforderlich, um den Vorgang fortzusetzen.
PowerShellGet erfordert die NuGet-Anbieterversion 2.8.5.201 oder höher für die Interaktion mit NuGet-basierten
Repositorys. Der NuGet-Anbieter muss in "C:\Program Files\PackageManagement\ProviderAssemblies" oder
"C:\Users\christian.CZECZIL\AppData\Local\PackageManagement\ProviderAssemblies" verfügbar sein. Sie können den
NuGet-Anbieter auch durch Ausführen von 'Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force'
installieren. Möchten Sie den NuGet-Anbieter jetzt durch PowerShellGet installieren und importieren lassen?
[J] Ja [N] Nein [H] Anhalten [?] Hilfe (Standard ist "J"): j
Nicht vertrauenswürdiges Repository
Sie installieren die Module aus einem nicht vertrauenswürdigen Repository. Wenn Sie diesem Repository vertrauen, ändern
Sie dessen InstallationPolicy-Wert, indem Sie das Set-PSRepository-Cmdlet ausführen. Möchten Sie die Module von
'PSGallery' wirklich installieren?
[J] Ja [A] Ja, alle [N] Nein [K] Nein, keine [H] Anhalten [?] Hilfe (Standard ist "N"): j
PS C:\Windows\system32> Get-Command -Module Microsoft.Graph.Intune
PS C:\Windows\system32> Install-Module -Name Microsoft.Graph.Intune
PS C:\Windows\system32> echo $?
-----
PS C:\Windows\system32> Set-ExecutionPolicy Bypass
PS C:\Windows\system32> Connect-MSGraph -AdminConsent
Get-IntuneManagedDevice
PS C:\Windows\system32> Get-Command -Module Microsoft.Graph.Intune
CommandType Name Version Source
----------- ---- ------- ------
Alias Get-AADGroup 6.1907.1.0 Microsoft.Graph.Intune
Alias Get-AADGroupCreatedOnBehalfOf 6.1907.1.0 Microsoft.Graph.Intune
Alias Get-AADGroupCreatedOnBehalfOfReference 6.1907.1.0 Microsoft.Graph.Intune
Alias Get-AADGroupGroupLifecyclePolicy 6.1907.1.0 Microsoft.Graph.Intune
Alias Get-AADGroupMember 6.1907.1.0 Microsoft.Graph.Intune
Alias Get-AADGroupMemberOf 6.1907.1.0 Microsoft.Graph.Intune
Alias Get-AADGroupMemberOfReferenceSet 6.1907.1.0 Microsoft.Graph.Intune
Alias Get-AADGroupMemberReferenceSet 6.1907.1.0 Microsoft.Graph.Intune
Alias Get-AADGroupOwner 6.1907.1.0 Microsoft.Graph.Intune
Alias Get-AADGroupOwnerReferenceSet 6.1907.1.0 Microsoft.Graph.Intune
Alias Get-AADGroupPhoto 6.1907.1.0 Microsoft.Graph.Intune
Alias Get-AADGroupPhotoDataData 6.1907.1.0 Microsoft.Graph.Intune
Alias Get-AADGroupPhotoSet 6.1907.1.0 Microsoft.Graph.Intune
Alias Get-AADGroupPhotoSetDataData 6.1907.1.0 Microsoft.Graph.Intune
Alias Get-AADGroupSetting 6.1907.1.0 Microsoft.Graph.Intune
Alias Get-IntuneAppConfigurationPolicyTargeted 6.1907.1.0 Microsoft.Graph.Intune
Alias Get-IntuneAppConfigurationPolicyTargetedApp 6.1907.1.0 Microsoft.Graph.Intune
Alias Get-IntuneAppConfigurationPolicyTargetedAssignment 6.1907.1.0 Microsoft.Graph.Intune
Alias Get-IntuneAppConfigurationPolicyTargetedDeploym... 6.1907.1.0 Microsoft.Graph.Intune
Alias Get-IntuneApplePushNotificationCertificate 6.1907.1.0 Microsoft.Graph.Intune
Alias Get-IntuneAppProtectionPolicy 6.1907.1.0 Microsoft.Graph.Intune
Alias Get-IntuneAppProtectionPolicyAndroid 6.1907.1.0 Microsoft.Graph.Intune
Alias Get-IntuneAppProtectionPolicyAndroidApp 6.1907.1.0 Microsoft.Graph.Intune
Alias Get-IntuneAppProtectionPolicyAndroidAssignment 6.1907.1.0 Microsoft.Graph.Intune
Alias Get-IntuneAppProtectionPolicyAndroidDeploymentS... 6.1907.1.0 Microsoft.Graph.Intune
-----
Discovering available commands
Get the full list of available cmdlets:
Get-Command -Module Microsoft.Graph.Intune
Get documentation on a particular cmdlet:
Get-Help <cmdlet name>
Use a UI to see the parameter sets more easily:
Show-Command <cmdlet name>
....
MS-Intune BYOD
BYOD Enrollment für MS Intune / Getestet auf Windows 10 LTSC 2019
MDM Enrollment URL wenns in der Microsoft Cloud liegt:
Type Host name Points to TTL
CNAME EnterpriseEnrollment. company_domain.com EnterpriseEnrollment-s.manage.microsoft.com 1 hour
The company_domain in the FQDN should be the registered domain name(s) you are using for single sign on with the UPN. For example if users at Contoso use name@contoso.com as their email/UPN, the Contoso DNS admin would need to create the following CNAMEs.
Type Host name Points to TTL
CNAME EnterpriseEnrollment. contoso.com EnterpriseEnrollment-s.manage.microsoft.com 1 hour
If you have more than one UPN suffix, you need to create one CNAME for each domain name and point each one to EnterpriseEnrollment-s.manage.microsoft.com. For example if users at Contoso use name@contoso.com, but also use name@us.contoso.com, and name@eu.constoso.com as their email/UPN, the Contoso DNS admin would need to create the following CNAMEs.
Type Host name Points to TTL
CNAME EnterpriseEnrollment. contoso.com EnterpriseEnrollment-s.manage.microsoft.com 1 hour
CNAME EnterpriseEnrollment. us.contoso.com EnterpriseEnrollment-s.manage.microsoft.com 1 hour
CNAME EnterpriseEnrollment. eu.contoso.com EnterpriseEnrollment-s.manage.microsoft.com 1 hour
Registration vs Enrollment CNAMEs
Azure Active Directory has a different CNAME that it uses for device registration for iOS, Android, and Windows devices. Intune conditional access requires devices to be registered, also called “workplace joined”. If you plan to use conditional access, you should also configure the EnterpriseRegistration CNAME for each company name you have.
Type Host name Points to TTL
CNAME EnterpriseRegistration. company_domain.com EnterpriseRegistration.windows.net 1 hour
Remotehilfe
Getestet auf Windows 10 LTSC2019 / Windows 10 Pro 1909
Anforderung: Eine Windows built in Möglichkeit finden um Benutzern Remote Unterstützung geben zu können - Remotehilfe
Programm auf beiden Maschinen starten d.h. derjenige der Support braucht (Support Nehmer) und derjenige der Support gibt (Support Geber)
Support Geber geht auf „Unterstützung gewähren“ und Support Nehmer braucht die ID des Support Gebers
Support geben d.h. unterstützung gewähren (erfordert Microsoft Account)
Support Geber erhält ID die dem Support Nehmer mitgeteilt werden muss
Support Nehmer trägt ID des Gebers ein
Support Geber wählt ob er Vollzugriff oder nur Bildschirm anzeigen möchte (eigentlich sollte dies der Support Nehmer bestimmen .. :))
Support Nehmer muss Zugriff erlauben
Sitzung wird aufgebaut
Grundsätzlich können GPO's definiert werden ob auf Maschinen zugegriffen werden darf oder nicht / Funktioniert bei LTSC 2019 offenbar nicht, Einstellung wird vom System ignoriert
Pfad für lokale Startup Skripten: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup
Ablage von zB: bat Files möglich
Upgrade LTSB 2016 to LTSC2019
Geht über LTSC2019 ISO obwohl offiziell nicht supported - über reguläres Setup Programm
Nach Upgrade ist sysprep nicht mehr möglich (Microsoft.Windows.SecondaryTileExperience_10.0.0.0_netral_cw5n1h2txyewy) Offenbar verweist das System auf diese App die jedoch bereits gelöscht wurde durch das Upgrade (Errors: 0x3cf2 , 0x80073cf2)
sysprep hat wieder funktioniert nach folgenden Schritten
1. Systemplatte räumen lassen / inklusive Systemdateien
2. Benutzerprofile löschen über Win GUI , die sich löschen lassen /
Erweiterte Einstellungen / Benutzerprofile
3. Installation kb4476976
https://support.microsoft.com/en-us/topic/january-22-2019-kb4476976-os-build-17763-292-21eea485-af3a-2d1e-e3e5-f48ba53def26 (?)
4. Rechner aus dem AD nehmen / wieder Workstation wie bei Erstmaligem sysprep
5. AppXDB Editor für Pakete - https://github.com/SoftSonic83/AppxDBEditor
Microsoft.Windows.SecondaryTileExperience=0
Windows.MiracastView=0
Microsoft.LanguageExperiencePackde-DE=0
6. AppxDBEditor cmd -> so lange bis keine Fehlermeldung kommt / Status ändern auf "löschbar"
7. Admin Powershell
Get-AppxPackage -AllUser -Name Microsoft.Windows.SecondaryTileExperience | Remove-AppxPackage -AllUsers
Get-AppxPackage -AllUser -Name Windows.MiracastView | Remove-AppxPackage -AllUsers
Get-AppxPackage -AllUser -Name Microsoft.LanguageExperiencePackde-DE | Remove-AppxPackage -AllUsers
8. Reboot
9. Sysprep hakerl setzen / oobe Experience / herunterfahren
Upgrade Windows 7 to Windows 10
Mit Windows Update Assistent
Sollte bei „Updates suchen“ bei 46% stecken bleiben folgende Schritte durchführen - Stop vom Windows Update Dienst - er startet ihn ndanach wieder automatisch
Administrator CMD.exe ->
net stop wuauserv to stop
Windows - Telemetrie für die Firewall zum blocken
Achtung aggregierte Portale die zB: bei akamai liegen bei ipset blocks
Systemsteuerung direkt ausführen als -> ms-setting
https://www.deskmodder.de/blog/2015/06/03/windows-10-einstellungen-direkt-aufrufen-ausfuehren-dialog/
Einstellungsseite Befehl
Startseite ms-settings:
Energiesparmodus ms-settings:batterysaver
Energiesparmodus (Einstellungen) ms-settings:batterysaver-settings
Akkuverbrauch (Nutzung) ms-settings:batterysaver-usagedetails
Bluetooth-Geräte verwalten ms-settings:bluetooth
Farben ms-settings:colors
Datennutzung ms-settings:datausage
Datum und Zeit ms-settings:dateandtime
Untertitel für Hörgeschädigte ms-settings:easeofaccess-closedcaptioning
Hoher Kontrast ms-settings:easeofaccess-highcontrast
Bildschirmlupe ms-settings:easeofaccess-magnifier
Sprachausgabe ms-settings:easeofaccess-narrator
Tastatur ms-settings:easeofaccess-keyboard
Maus ms-settings:easeofaccess-mouse
Erleichterte Bedienung (Weitere Optionen) ms-settings:easeofaccess-otheroptions
Sperrbildschirm ms-settings:lockscreen
Offline Navigation (Karten) ms-settings:maps
Flugzeugmodus ms-settings:network-airplanemode
Proxy ms-settings:network-proxy
VPN ms-settings:network-vpn
Benachrichtigungen und Aktionen ms-settings:notifications
Konto-Information ms-settings:privacy-accountinfo
Kalender ms-settings:privacy-calendar
Kontakte ms-settings:privacy-contacts
Weitere Geräte ms-settings:privacy-customdevices
Feedback ms-settings:privacy-feedback
Position (Ortung) ms-settings:privacy-location
Nachrichten ms-settings:privacy-messaging
Mikrofon ms-settings:privacy-microphone
Bewegungsdaten ms-settings:privacy-motion
Funkempfang ms-settings:privacy-radios
Spracherkennung, Freihand, Eingabe (Cortana) ms-settings:privacy-speechtyping
Kamera ms-settings:privacy-webcam
Region und Sprache ms-settings:regionlanguage
Sprache (Ein- und Ausgabe) ms-settings:speech
Windows Update ms-settings:windowsupdate
Arbeitsplatzzugriff ms-settings:workplace
Angeschlossene Geräte ms-settings:connecteddevices
Für Entwickler ms-settings:developers
Bildschirm ms-settings:display
Maus und Touchpad ms-settings:mousetouchpad
Mobilfunk ms-settings:network-cellular
Einwahlverbindung (DFÜ) ms-settings:network-dialup
DirectAccess ms-settings:network-directaccess
Ethernet ms-settings:network-ethernet
mobiler Hotspot ms-settings:network-mobilehotspot
Wi-Fi ms-settings:network-wifi
Wi-Fi (Einstellungen) ms-settings:network-wifisettings
Optionale Funktionen ms-settings:optionalfeatures
Familie und weitere Benutzer ms-settings:otherusers
Personalisierung ms-settings:personalization
Hintergrund ms-settings:personalization-background
Farben ms-settings:personalization-colors
Start ms-settings:personalization-start
Netzbetrieb und Energiesparen ms-settings:powersleep
Annäherungssensor ms-settings:proximity
Display-Rotation ms-settings:screenrotation
Anmeldeoptionen ms-settings:signinoptions
Speicher (Verbrauch) ms-settings:storagesense
Themes ms-settings:themes
Eingabe (Rechtschreibung) ms-settings:typing
Tablet-Modus ms-settings:tabletmode
Datenschutzoptionen ms-settings:privacy
Windows RAM Belegung auslesen
f you don't mind using the command line, WMI can do this and is native with Windows XP and newer.
Simply run wmic MEMORYCHIP get BankLabel,DeviceLocator,Capacity,Tag
>wmic MEMORYCHIP get BankLabel,DeviceLocator,Capacity,Tag
BankLabel Capacity DeviceLocator Tag
BANK 0 2147483648 Bottom - Slot 1 (top) Physical Memory 0
BANK 1 4294967296 Bottom - Slot 2 (under) Physical Memory 1
(DeviceLocator will likely give you DIMM numbers on a desktop machine - the top/under slots are because I'm on a laptop. Both BankLabel and DeviceLocator formats may vary by machine.)
Startmenü anpassen
Step 1: Design your start menu
Remove / add tiles and apps to and from your start menu ready for the layout to be exported
Step 2: Run Windows PowerShell as administrator
Run the PowerShell as administrator and run the command:
Export-StartLayout –path <path><file name>.xml
Should look like this:
export-startlayout -path C:\startlayout.xml
Step 3: Open Group policy management console (gpmc.msc) and create new GPO
Create a new GPO
Go to User Configuration or Computer Configuration > Policies > Administrative Templates >Start Menu and Taskbar
Right-click Start Layout in the right pane, and click Edit. This opens the Start Layout policy settings
(Please note you will need the Windows 10 GPO add in downloaded to do this, I have a How-to on my page on how to get them, or Windows server 2016.)
Link:
https://community.spiceworks.com/how_to/139795-add-windows-10-group-policy-objects-to-windows-server-2012-r2
Step 4: Configure the GPO
Enter the following settings, and then click OK:
Select Enabled
Under Options, specify the path to the .xml file that contains the Start layout. For example, type C:\Users\Test01\StartScreen.xml or \\ShareName\StartScreen.xml.
Optionally, enter a comment to identify the Start layout.
Step 5: Roll out the GPO
Open CMD on the server and type:
gpupdate /force
And get everyone to restart their work stations
AppAssoc exportieren - Achtung Fehler 0x80004002
Microsoft Windows [Version 10.0.16299.309]
(c) 2017 Microsoft Corporation. Alle Rechte vorbehalten.
C:\Users\Administrator.RESERVE-PC01>cd Desktop
C:\Users\Administrator.RESERVE-PC01\Desktop>dism /online /Export-DefaultAppAssociations:assoc-adobe.xml
Tool zur Imageverwaltung für die Bereitstellung
Version: 10.0.16299.15
Abbildversion: 10.0.16299.309
Fehler: 0x80004002
Die aktuellen Benutzerzuordnungen konnten nicht in die Datei "assoc-adobe.xml" exportiert werden.
Weitere Informationen finden Sie in der Hilfe.
Die DISM-Protokolldatei befindet sich unter "C:\Windows\Logs\DISM\dism.log".
C:\Users\Administrator.RESERVE-PC01\Desktop>
What the fuck :(
https://social.technet.microsoft.com/Forums/en-US/5161bd23-733e-4e2f-a500-d652fc23b81d/the-current-user-associations-could-not-be-exported-to-file-error-0x80004002?forum=win10itprosetup
wusa /uninstall /kb:4088776
what the fuck ² deinstall takes >45 minutes..
----
dism /online /Export-DefaultAppAssociations:assoc-adobe.xml
---
C:\Users\Administrator.RESERVE-PC01\Desktop>cd C:\TMP
C:\TMP>dism /online /Export-DefaultAppAssociations:assoc-adobe.xml
Tool zur Imageverwaltung für die Bereitstellung
Version: 10.0.16299.15
Abbildversion: 10.0.16299.125
Der Vorgang wurde erfolgreich beendet.
batch driver installation
Speaking of newer versions of Windows. In Hyper-V Server 2012 r1 & r2, the command-line is: pnputil <driverinf> – Granger Sep 29 '16 at 3:48
batch subdirectory search and delete
for /d /r "c:\" %%a in (temp\) do if exist "%%a" echo rmdir /s /q "%%a"
For each folder (/d), recursively (/r) under c:\ test for the presence of a temp folder and if it exist, remove it
directory removal command is only echoed to console. If the output is correct, remove the echo command
DISM foo
dism magic (image mounted: -Image:D:\Mount)
DISM /Online /Cleanup-Image /CheckHealth
wol geht net
wol geht nixda mehr / Gerätemanager wurscht / Hybrid Boot ist deaktiviert! Bios Remote Server HP 800 G1 64Bit Windows 10 16xx
Original Intel 64Bit Windows Treiber von der Intel Seite runterladen!! Da muss ein Bug im Microsoft Treiber sein
Default Programme spezifizieren
Standardprogramme festlegen bzw. exportieren
GPO Key: Computerkonfiguration\Richtlinien\Administrative Vorlagen\Windows-Komponenten\Datei-Explorer\Konfigurationsdatei für Standardzuordnungen festlegen
urbackup restore/windows bare metal restore - boot auf IDE setzen
Sollte bei Windows 7/XP nach einem Hardwareumzug oder Restore von AHCI auf IDE umgestellt worden sein und der entsprechende Bluescreen mit Auto Reboot erscheinen
Dieser Fall tritt ein wenn zB: der Restore auf einem Hyper-V (getestet Windows 2016 Hyper-V) durchgeführt wird d.h. die Hardware ausgetauscht
Tool: fix_hdc.cmd ↔ editiert die Registry entsprechend - leider gibt es einen Bug der es nicht zulässt Hirens Boot CD auf Hyper-V zu starten (er bleibt nach der Auswahl des Mini XP hängen)
for /F %%f in (DV2.txt.txt) do (
psexec \\%%f -u Administrator -p PASSWORD C:\Windows\System32\cmd.exe /C rundll32 printui.dll,PrintUIEntry /dn /n \\schulserver\EDV2
)
pause
Sprachsteuerung
Du klickst auf Start -> Systemsteuerung -> Center für erleichterte
Bedienung -> Computer ohne einen Bildschirm verwenden.
Dort kannst du die Hakerl rausnehmen wie im Bild angeführt und OK
klicken damit er die Einstellungen übernimmt.
Display klonen über cmd
Displayswitch.exe also has command line parameters that allow you to create a shortcut that will set a specific display mode. /internal /clone /extend /external – JJS Jun 15 '12 at 22:41
Windows Gruppenrichtlinien
Achtung Bei Proxy Einstellungen F5/F6 zum Aktivieren drücken IE 10 Win2012r2 !!
Drucker
HP2055dn
Wenn er gleich nach dem Starten einen Hex Error anzeigt mit Boot foo → Firmware beschädigt
Drucker via USB an Endgerät ↔ PLC6 Treiber installieren lokal ↔ Tool aus ZIP öffnen HP Firmware rescue
Beim Starten von Drucker abbrechen u. Ok gleichzeitig ←→ bootcode Anzeige auf Display ←→ Tool von HP
Offensichtlich existiert ein Bug im Windows 10 (Getestet auf LTSB 2016) , der dazu führt dass der „Computer Idle“ Trigger aber erst nach x Stunden nicht funktioniert - nach ~10 Minuten wird das Programm ausgeführt egal wie die Idle Wait Werte gesetzt sind
Workaround nach 10 Minuten wird shutdown.bat gestartet die 9000 Sekunden darauf wartet ein Shutdown durchzuführen / Wird innerhalb von 9000 Sekunden der Rechner aus dem IDLE State unterbrochen wird die Batch Datei beendet
if not exist C:\trigger_shutdownifidle_success.txt goto Ende
schtasks /change /ENABLE /tn "Trigger_Shutdown_If_Idle" > C:\trigger_Shutdown_If_Idle_ENABLE.txt 2>&1
:Ende
disable_shutdown_if_idle.bat
if not exist C:\trigger_shutdownifidle_success.txt goto Ende
schtasks /change /DISABLE /tn "Trigger_Shutdown_If_Idle" > C:\trigger_Shutdown_If_Idle_DISABLE.txt 2>&1
:Ende
Office 2019 Professinal Plus - MAK Key Installation
Das ODT - lädt eine setup.exe herunter die Click-to-Run Version von Office
Vor dem Einsatz der Batch Datei Programmdateien herunter laden mit setup.exe /download setup.xml
Bei PIDKEY kann gleich der MAK Key eingetragen werden für die Installation
Ich möchte in dieser Variante die Installation bzw. Deinstallation manuell anstoßen können umd die betroffenen User sollen den Forstschritt sehen können („Full“)
setup.xml
<!-- Office 2019 enterprise client configuration file sample. To be used for Office 2019
enterprise volume licensed products only, including Office 2019 Professional Plus,
Visio 2019, and Project 2019.
Do not use this sample to install Office 365 products.
For detailed information regarding configuration options visit: http://aka.ms/ODT.
To use the configuration file be sure to remove the comments
The following sample allows you to download and install Office 2019 Professional Plus,
Visio 2019 Professional, and Project 2019 Professional directly from the Office CDN.
-->
<Configuration>
<Add OfficeClientEdition="32" Channel="PerpetualVL2019">
<Product ID="ProPlus2019Volume" PIDKEY="">
<Language ID="de-de" />
</Product>
</Add>
<!-- <RemoveMSI All="True" /> -->
<Display Level="Full" AcceptEULA="TRUE" />
<Property Name="AUTOACTIVATE" Value="1" />
</Configuration>
Kann sich auch um AD Benutzer handeln / Computer Richtlinie Startup
ACHTUNG GPOS für Computer sind für alle authentifizierten Benutzer im AD lesbar
Windows Upgrade LTSB2016 auf LTSC (2019)
hat als Computerrichtlinie nicht geklappt :(
Achtung als Benutzerrichtlinie startup d.h. es wird ein Benutzer mit lokalen Administratorrechten gebraucht ggf. diverse Reboots
In Kombination mit Auto Login für Upgrade User mit lokalen Administrator Rechten / Falls bereits auf LTSC 2019 aktualisiert wurde wird wieder ausgeloggt
echo off
FOR /F "tokens=4 USEBACKQ" %%F IN (`ver`) DO (
SET var=%%F
)
#Windows 10 LTSC (2019)
if %var% == 10.0.17763.107] goto Ausloggen
\\schulserver\windows10-programme$\LTSC2019\setup.exe /auto upgrade /dynamicupdate disable /compat ignorewarning
:Ende
exit
:Ausloggen
logoff
exit
Nachdem der Update Plan (Stand 18.05.2022) ignoriert wird und keine Updates mehr entsprechend der Gruppenrichtlinien installiert werden muss wieder eine manuelle Lösung her
Die Microsoft native Art und Weise die Updates über powershell zu installieren funktioniert nicht wird einmal entfernt oder wieder hinzugefügt
Achtung bei LTSC 2016 verwendet die Maschine per Default NICHT TLS1.2 - FAIL
Achtung ggf. Asynchron ausführen (Computerrichtlinien→ System → Skripts) und NICHT auf Netzwerk warten
Danke an den Entwickler von PSWindowsUpdate / GPO Rechner Start / Powershell Modul auf Rechnern installiereninstall_ps_windowsupdate.ps1
Updates an einem bestimmten Tag zu einer bestimmten Uhrzeit installieren - am Mittwoch vor 07:00 (Rechner werden zB: um 06:50 geweckt) / GPO Rechner Start install_on_day_updates.ps1
#%A Day of the week - full name Monday
#%u Numeric day of the week (1-7) Monday = 1, Sunday = 7
$current_day=(Get-Date -UFormat "%u").toString()
$current_hour=(Get-Date -UFormat "%H")
#write-host $current_day
if ($current_day -eq "3" -and ([int]$current_hour -lt 7))
{
if(Get-Module -ListAvailable -Name PSWindowsUpdate)
{
Get-WindowsUpdate > C:\Windows_update.txt
Install-WindowsUpdate -MicrosoftUpdate -IgnoreReboot -AcceptAll >> C:\windows_update.txt
}
}
Möchte nicht dass Teams bei jedem Login gleich geladen wird
if exist C:\teams_installed.txt goto Ende
msiexec /i \\SERVER_PATH_TRUSTED\Teams_windows_x64.msi OPTIONS="noAutoStart=true" ALLUSERS=1
echo foo > C:\teams_installed.txt
:Ende
Microsoft Teams Upgrade Installation
Da die Version in X tagen nicht mehr verwendbar ist
Neue MSI Datei saugen → alte MSI Datei behalten und umbenennen
if exist C:\teams_installed_1.txt goto Ende
if exist C:\teams_installed.txt goto Deinstallieren
if not exist C:\teams_installed.txt goto Installieren
:Deinstallieren
msiexec /x \\SERVER_PATH_TRUSTED\Teams_windows_x64_old.msi /quiet
:Installieren
msiexec /i \\SERVER_PATH_TRUSTED\Teams_windows_x64.msi OPTIONS="noAutoStart=true" ALLUSERS=1
echo foo > C:\teams_installed_1.txt
:Ende
Immunet silent Deinstallation
ImmunetSetup.exe muss noch vorhanden sein ggf. runterladen
delete_immunet.bat
if exist "C:\immunet_deinstalled.txt" goto ENDE
\\share_network\ImmunetSetup.exe /S /remove 1
echo "deinstalled" > C:\immunet_deinstalled.txt"
:ENDE
Archicad Education 24 verteilen
Version 19 deinstallieren - Achtung Reboot direkt nach Deinstallation - Archicad24 daraufhin installieren
if exist "C:\Program Files\GRAPHISOFT\ArchiCAD 19\ArchiCAD.exe" goto Uninstall19
if exist "C:\archicad24_installed.txt" goto Ende
"\\share_network\ArchiCad24\ARCHICAD-24-AUT-3008-1.7.exe" --mode unattended --enableautomaticupdate 0 --eduSerialNumber SERIAL_NUMBER --eduUserID USER_ID
echo > C:\archicad24_installed.txt
goto Ende
:Uninstall19
start "" /wait "C:\Program Files\GRAPHISOFT\ArchiCAD 19\Uninstall.AC\uninstaller.exe" -silent
shutdown /r /t 60
:Ende
PrinterNightmare nightmare
Well done Microsoft - drucken funktioniert nicht mehr, wenn der Drucker nicht bereits hinzugefügt wurde - Stand 2021-09-20 - LTSC2019 Workstations u. 2012r2 Druckserver
Um wesentliche Hardwaredetails der Rechner zu erfassen wie Hersteller des Geräts / Seriennummern / Prozessor / RAM / Festplatte - mit Get-WmiObject -List erhält man eine Liste mit allen Möglichkeiten
Als Startup - Computer Richtlinie geeignet , am Share ausschließlich Schreib-Zugriff auf „Domänencomputer“ geben
Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
know-how/windows.txt · Zuletzt geändert: 2022/05/23 11:19 von cc