Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • sowi-administratoren/scripts
1 result
Show changes
Commits on Source (31)
......@@ -3,26 +3,3 @@ Dies sind Scripte welche am SOWI verwendet werden.
Sie sind öffentlich für jeden zugänglich und einsehbar unter dem Grundgedanken des ["Public Money, Public Code"](https://publiccode.eu/de/)
Es ist daher wichtig das sämtliche hier hochgeladenen Scripts keine Passwörter behinhalten.
# Changelog
## 12021-03-10
### Generell
Alle Scripte wurden nochmal vom Netzwerklaufwerk mit Gitlab synchronisiert
### Windows
AD Scripte wurden hinzugefügt
## 12020-10-21
### MacOS Scripte
- 02_join_domain.command
Es muss nicht mehr der Computername eingegeben werden
- 04_defaultsettings
dockutil wird nun mitinstalliert und setzt automatisch Firefox und Atom in die Dock
- Firefox Profil aktualisiert
# Setze die Installationsip für Device eno1 (tested on Optiplex 7010)
network:
version: 2
renderer: networkd
ethernets:
eno1:
dhcp4: false
dhcp6: false
addresses:
- 141.20.134.144/23
gateway4: 141.20.134.1
nameservers:
addresses: [141.20.1.3, 141.20.2.3]
File suppressed by a .gitattributes entry or the file's encoding is unsupported.
ADGroup;Path;ScriptPath;Laufwerk
grSowiAGV;OU=AgvUsers,OU=AGV,OU=sowiBereiche,DC=sowi,DC=hu-berlin,DC=de;logon\agv\agv.cmd;\\husowi28c.user.hu-berlin.de\sowiabteilungen\agv
grSowiAllgSoz;OU=AllgSozUsers,OU=AllgSoz,OU=sowiBereiche,DC=sowi,DC=hu-berlin,DC=de;logon\allgsoz\allgsoz.cmd;\\husowi28c.user.hu-berlin.de\sowiabteilungen\allgsoz
grSowiBGSS;OU=BgssUsers,OU=BGSS,OU=sowiBereiche,DC=sowi,DC=hu-berlin,DC=de;logon\bgss\bgss.cmd;\\husowi28c.user.hu-berlin.de\sowiabteilungen\bgss
grSowiDemografie;OU=DemografieUsers,OU=Demografie,OU=sowiBereiche,DC=sowi,DC=hu-berlin,DC=de;logon\demografie\demografie.cmd;\\husowi28c.user.hu-berlin.de\sowiabteilungen\demografie
grSowiDiv;OU=DivUsers,OU=Div,OU=sowiBereiche,DC=sowi,DC=hu-berlin,DC=de;logon\div\div.cmd;\\husowi28c.user.hu-berlin.de\sowiabteilungen\diversity
grSowiDivPol;OU=DivPolUsers,OU=DivPol,OU=sowiBereiche,DC=sowi,DC=hu-berlin,DC=de;logon\divpol\divpol.cmd;\\husowi28c.user.hu-berlin.de\sowiabteilungen\divpol
grSowiDynamics;OU=DynamicsUsers,OU=Dynamics,OU=sowiBereiche,DC=sowi,DC=hu-berlin,DC=de;logon\dynamics\dynamics.cmd;\\husowi28c.user.hu-berlin.de\sowiabteilungen\dynamics
grSowiEmpiSoz;OU=EmpiSozUsers,OU=EmpiSoz,OU=sowiBereiche,DC=sowi,DC=hu-berlin,DC=de;logon\empisoz\empisoz.cmd;\\husowi28c.user.hu-berlin.de\sowiabteilungen\empisoz
grSowiIfq;OU=IfqUsers,OU=Ifq,OU=sowiBereiche,DC=sowi,DC=hu-berlin,DC=de;logon\ifq\ifq.cmd;\\husowi28c.user.hu-berlin.de\sowiabteilungen\ifq
grSowiInnenPol;OU=InnenpolUsers,OU=InnenPol,OU=sowiBereiche,DC=sowi,DC=hu-berlin,DC=de;logon\innenpol\innenpol.cmd;\\husowi28c.user.hu-berlin.de\sowiabteilungen\innenpol
grSowiIntPol;OU=IntpolUsers,OU=IntPol,OU=sowiBereiche,DC=sowi,DC=hu-berlin,DC=de;logon\intpol\intpol.cmd;\\husowi28c.user.hu-berlin.de\sowiabteilungen\interpol
grSowiKomp;OU=KompUsers,OU=Komp,OU=sowiBereiche,DC=sowi,DC=hu-berlin,DC=de;logon\komp\komp.cmd;\\husowi28c.user.hu-berlin.de\sowiabteilungen\komp
grSowiMakro;OU=MakroUsers,OU=Makro,OU=sowiBereiche,DC=sowi,DC=hu-berlin,DC=de;logon\makro\makro.cmd;\\husowi28c.user.hu-berlin.de\sowiabteilungen\makro
grSowiMikrosoz;OU=MikrosozUsers,OU=Mikrosoz,OU=sowiBereiche,DC=sowi,DC=hu-berlin,DC=de;logon\mikrosoz\mikrosoz.cmd;\\husowi28c.user.hu-berlin.de\sowiabteilungen\mikrosoz
grSowiPolVerw;OU=PolverwUsers,OU=PolVerw,OU=sowiBereiche,DC=sowi,DC=hu-berlin,DC=de;logon\polverw\polverw.cmd;\\husowi28c.user.hu-berlin.de\sowiabteilungen\polverw
grSowiPool;OU=PoolUsers,OU=Pool,OU=sowiBereiche,DC=sowi,DC=hu-berlin,DC=de;logon\pool\pool.cmd;\\husowi28c.user.hu-berlin.de\sowiabteilungen\pool
grSowiSozPol;OU=SozpolUsers,OU=SozPol,OU=sowiBereiche,DC=sowi,DC=hu-berlin,DC=de;logon\sozpol\sozpol.cmd;\\husowi28c.user.hu-berlin.de\sowiabteilungen\sozpol
grSowiSprof;OU=SprofUsers,OU=Sprof,OU=sowiBereiche,DC=sowi,DC=hu-berlin,DC=de;logon\sprof\sprof.cmd;\\husowi28c.user.hu-berlin.de\sowiabteilungen\sprof
grSowiStadtsoz;OU=StadtsozUsers,OU=Stadtsoz,OU=sowiBereiche,DC=sowi,DC=hu-berlin,DC=de;logon\stadtsoz\stadtsoz.cmd;\\husowi28c.user.hu-berlin.de\sowiabteilungen\stadtsoz
grSowiTheoPol;OU=TheoPolUsers,OU=TheoPol,OU=sowiBereiche,DC=sowi,DC=hu-berlin,DC=de;logon\theopol\theopol.cmd;\\husowi28c.user.hu-berlin.de\sowiabteilungen\politik
grSowiVaps;OU=VapsUsers,OU=Vaps,OU=sowiBereiche,DC=sowi,DC=hu-berlin,DC=de;logon\vaps\vaps.cmd;\\husowi28c.user.hu-berlin.de\sowiabteilungen\vaps
grSowiVerw;OU=VerwUsers,OU=Verw,OU=sowiBereiche,DC=sowi,DC=hu-berlin,DC=de;logon\verw\verw.cmd;\\husowi28c.user.hu-berlin.de\sowiabteilungen\verwaltung
set domain=
set user=
set launchpath=
runas /profile /user:%domain%\%user% "powershell %launchpath%"
<#
.SYNOPSIS
Dieses Script erstellt neue Benutzer in der Domäne.
.LINK
https://scm.cms.hu-berlin.de/sowi-administratoren/scripts/-/blob/master/windows/AD/createUser.ps1
.DESCRIPTION
CreateUserScript
Powershell Version von Saad Chaaban
Dieses Script vereinfacht das Anlegen von Benutzern in der Domäne
Es werden hierbei:
- Infos der jeweiligen Benutzer aus dem LDAP gezogen
- Random ein Passwort vergeben (was eh durch Benutzer geändert wird)
- Webfiles Zugang freigeschaltet
- (Optional) an den neu angelegten Account wird eine Mail (aufruf durch ein seperates Script) geschickt.
Dabei wird die Eingabe durch Benutzer so gering wie möglich gehalten.
#>
$Bereich=Import-Csv $PSScriptRoot\bereiche.csv -Delimiter ';' # Definition der Bereichsinformationen via csv. Wichtig da es dafür sorgt dass dieses Script Universal verwendbar ist.
# Diese beiden Funktionen dienen dazu ein Passwort zu generieren
# Quelle: https://activedirectoryfaq.com/2017/08/creating-individual-random-passwords/
function Get-RandomCharacters($length, $characters) {
$random = 1..$length | ForEach-Object { Get-Random -Maximum $characters.length }
$private:ofs="" # Output Field Separator
return [String]$characters[$random]
}
function Scramble-String([string]$inputString){
$characterArray = $inputString.ToCharArray()
$scrambledStringArray = $characterArray | Get-Random -Count $characterArray.Length
$outputString = -join $scrambledStringArray
return $outputString
}
Function Get-LDAPObject {
<#
Funktion um Userinformationen aus dem LDAP Server [1] der HU zu beziehen
Dies ist eine abgewandelte Version eines Scripts welches auf Reddit [2] gefunden worden ist
[1] https://www.cms.hu-berlin.de/de/dl/informationsdienste/verzeichnisdienste/accountldap
[2] https://www.reddit.com/r/PowerShell/comments/a833do/comment/ec9bsp7/?utm_source=share&utm_medium=web2x&context=3
#>
param(
[string]$LDAPServer="ldap2.cms.hu-berlin.de",
[int]$LDAPPort=389,
[boolean]$SSL=$false,
[string]$baseDN="o=Humboldt-Universitaet zu Berlin,c=de",
[string]$Filter="(|(uid=)"
)
# Alle hier eingetragenen "Werte" werden später rausgefiltert.
$IgnoreValues="distinguishedname","objectClass","gidNumber","homeDirectory","Status","uidNumber","cmsAccountLocked","cmsPasswordChangeDate","cmsPasswordChangeDN","cmsPasswordExpireDate","cmsRole","cmsUseableService","gecos","loginShell","mailHost","mailLocalAddress","OKZ"
# Lade .Net APIs ohne Ausgabe
# https://docs.microsoft.com/de-de/dotnet/api/system.directoryservices.protocols?view=dotnet-plat-ext-5.0
[System.Reflection.Assembly]::LoadWithPartialName("System.DirectoryServices.Protocols") | Out-Null
[System.Reflection.Assembly]::LoadWithPartialName("System.Net") | Out-Null
$c = New-Object System.DirectoryServices.Protocols.LdapConnection "$($LDAPServer):$($LDAPPort)"
$c.SessionOptions.SecureSocketLayer = $SSL;
$c.AuthType = [System.DirectoryServices.Protocols.AuthType]::Anonymous
$scope = [System.DirectoryServices.Protocols.SearchScope]::Subtree
$r = New-Object System.DirectoryServices.Protocols.SearchRequest -ArgumentList $baseDN,$Filter,$scope
$re = $c.SendRequest($r);
If ($re.Entries.Count -eq 0) {
Write-Host "Account nicht gefunden"
return $null
}
else {
$global:output = @(0) * ($Re.Entries).count #Ich weiß gerade nicht wie ich diese Zeile kürzen kann :(
$i = 0
foreach ($item in $Re.Entries) {
$baseItem = [ordered]@{}
foreach ($attribute in $item.attributes.GetEnumerator()) {
$attribname = $attribute.Key
$attribvalue = $attribute.Value.Item(0)
If ($IgnoreValues -notcontains $attribname) {
$baseItem.$($attribname) = $AttribValue
}
}
$global:output[$i] = New-Object -TypeName psobject -Property $baseItem
$i += 1
}
}
} # Ende der Funktion Get-LDAPObject
function Create-User {
$global:benutzername = Read-Host -Prompt 'Bitte Accountamen eingeben'
if ( $benutzername.length -ne 8 ) {
''
Write-Warning ('[ {0} ] scheint kein offizieller CMS Account zu sein.' -f $global:benutzername)
# WIP
do {
$response = Read-Host -Prompt 'Wollen Sie die Daten manuell eingeben? [J/N]'
if ($response -eq 'j') {
Write-Warning ('Folgt noch.')
}
elseif ($response -eq 'n') {
Write-Warning ('Vorgang wird abgebrochen!')
}
} until (($response -eq 'j') -or ($response -eq 'n'))
}
else {
Get-LDAPObject -Filter "(|(uid=$global:benutzername))"
$global:Vorname = $global:output.givenname
$global:Nachname = $global:output.sn
$global:Mail = $global:output.mail+'@sowi.hu-berlin.de'
$global:fullname = $global:output.cn
$global:HomeDirectory = '\\husowi28c.user.hu-berlin.de\SowiHome\'+$global:benutzername
# https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.security/convertto-securestring?view=powershell-7.1
Write-Host ''
Write-Host 'Es wird versucht ein Account mit folgenden Daten anzulegen';
Write-Host 'Vorname: '$global:Vorname
Write-Host 'Nachname: '$global:Nachname
Write-Host 'Angezeigter Name: '$global:fullname
Write-Host 'Mail: '$global:Mail
Write-Host ''
Create-ADUser
Add-Webfiles
}
}
function Create-ADUser {
# Genereriere Random Passwort
$password = Get-RandomCharacters -length 5 -characters 'abcdefghiklmnoprstuvwxyz'
$password += Get-RandomCharacters -length 1 -characters 'ABCDEFGHKLMNOPRSTUVWXYZ'
$password += Get-RandomCharacters -length 1 -characters '1234567890'
$password += Get-RandomCharacters -length 1 -characters '!"§$%&/()=?}][{@#*+'
$password = Scramble-String $password
$Password_secure = ConvertTo-SecureString $password -AsPlainText -Force
New-ADUser `
-SamAccountName $global:benutzername `
-Name $global:fullname `
-GivenName $global:Vorname `
-Surname $global:Nachname `
-Description $benutzername `
-DisplayName $global:fullname `
-EmailAddress $global:Mail `
-Path $Bereich[$auswahl-1].Path `
-AccountPassword $Password_secure `
-UserPrincipalName ($benutzername + "@" + "$env:userdnsdomain") `
-CannotChangePassword $True `
-Server $env:userdnsdomain `
-ScriptPath $Bereich[$auswahl-1].ScriptPath `
-HomeDrive 'Z:' `
-HomeDirectory $global:HomeDirectory `
-Enabled $True `
-PasswordNeverExpires $True `
-Verbose;
Add-ADGroupMember -Identity grSowiUsers -Members $benutzername
Add-ADGroupMember -Identity $Bereich[$auswahl-1].ADGroup -Members $benutzername
# Aufruf des zweiten Scripts in dem den neuen Account eine Mail mit Infos geschickt wird
Write-Host ('Es wird nun eine Mail an [ {0} ] geschickt.' -f $Mail)
& "$PSScriptroot\Send-SMIMESignedMail.ps1" -MailTo $Mail
}
function Add-Webfiles {
$webfiles_path = "webfiles`r`n"+$Bereich[$auswahl-1].Laufwerk+"`r`n\\husowi28c.user.hu-berlin.de\sowitemp"
Set-ADUser $benutzername -Replace @{"info" = $webfiles_path}
}
while ( $auswahl -ne 0 ) {
Clear-Host
Write-Host @"
==================================================================================
Dieses Script dient zum anlegen von Benutzer*innen Accounts.
In welchen Bereich/Abteilung soll dieser Benutzer*innen-Account angelegt werden?
==================================================================================
(1) AGV `t (8) EmpiSoz `t (15) PolVerw `t (22) Verw `t
(2) AllgSoz `t (9) Ifq `t (16) Pool `t
(3) BGSS `t (10) InnenPol `t (17) SozPol `t
(4) Demografie`t (11) IntPol `t (18) Sprof `t
(5) Div `t (12) Komp `t (19) Stadtsoz `t
(6) DivPol `t (13) Makro `t (20) TheoPol `t
(7) Dynamics `t (14) Mikrosoz `t (21) Vaps `t
`t `t (0) Script stoppen
"@
[uint16]$auswahl = Read-Host -Prompt 'Auswahl eingeben und mit Enter bestätigen'
if (($auswahl -le 22) -and ($auswahl -ge 1))
{
Create-User
Write-Host ('Bitte eine Taste drücken');
$null = $Host.UI.RawUI.ReadKey('NoEcho,IncludeKeyDown');
}
elseif ($auswahl -eq 0)
{
Write-Host "Script wird beendet!"
$null = $Host.UI.RawUI.ReadKey('NoEcho,IncludeKeyDown');
}
else
{
[console]::Beep(1000, 300)
Write-Warning @"
Ungültige Eingabe.
Bitte eine beliebige Taste drücken um fortzufahren.
"@
$null = $Host.UI.RawUI.ReadKey('NoEcho,IncludeKeyDown');
}
}
# webfiles 1.0
# webfiles 1.101
# Dieses Script liest die bei der angegebenen Domäne die User aus und fügt unter Rufnummern die Laufwerke:
# webfiles
# Das StammOU Laufwerk sowie
# "Sowitemp" hinzu.
# User bei denen schon ein eintrag unter "Rufnummern" besteht werden ignoriert.
#########################################################################################################################################
#################################################################################################################################
# ToDos / Ideen
# - Verbesserungen bei schon vorhandenenen Einträgen:
# - Alte werte auslesen
......@@ -12,45 +12,42 @@
# - Bereiche vergleichen
# - Alte Werte mit neuen kombinieren und zusammenführen!
# - Repeat Until einbauen falls die Datei schon vorhanden ist? (Datei wird neu erstellt aber mit einem Wert startetend bei 1)
#########################################################################################################################################
# - Die OU_NOT Liste in eine Textdatei packen, dies funktioniert aber noch nicht so richtig.
# - All diese Aufgaben in Gitlab Issues umwandeln...
#################################################################################################################################
# Create silently a Logfile
New-Item $PSScriptRoot\$((Get-Date).ToString('1yyyy-MM-dd'))_webfiles.txt | out-null
$Server = "\\husowi28c.user.hu-berlin.de"
# Speichere alle Abteilungen in einem Array, vergleiche diese später mit $check_abteilung
$Bereiche = @('AGV', 'AllgSoz', 'BGSS', 'Demografie', 'Div', 'DivPol', 'Dynamics', 'EmpiSoz', 'Ifq', 'InnenPol', 'IntPol',
'Komp', 'Makro', 'Mikrosoz', 'PolVerw', 'Pool', 'SozPol', 'Sprof', 'Stadtsoz', 'TheoPol', 'Vaps', 'Verw')
# Speichere alle Laufwerke in einen Array
$Laufwerke= @("$Server\sowiabteilungen\AGV", "$Server\sowiabteilungen\AllgSoz", "$Server\sowiabteilungen\BGSS", "$Server\sowiabteilungen\Demografie", "$Server\sowiabteilungen\diversity", "$Server\sowiabteilungen\DivPol", "$Server\sowiabteilungen\Dynamics", "$Server\sowiabteilungen\EmpiSoz", "$Server\sowiabteilungen\Ifq", "$Server\sowiabteilungen\InnenPol", "$Server\sowiabteilungen\Interpol",
"$Server\sowiabteilungen\Komp", "$Server\sowiabteilungen\Makro", "$Server\sowiabteilungen\Mikrosoz", "$Server\sowiabteilungen\PolVerw", "$Server\sowiabteilungen\Pool", "$Server\sowiabteilungen\SozPol", "$Server\sowiabteilungen\Sprof", "$Server\sowiabteilungen\Stadtsoz", "$Server\sowiabteilungen\politik", "$Server\sowiabteilungen\Vaps", "$Server\sowiabteilungen\Verw")
# ==== OU LISTE ====
# Bitte hierfür die Datei OU.csv bearbeiten.
$webfiles = Import-Csv $PSScriptRoot\OU.csv
# Spezielle Laufwerke (WIP)
$Laufwerk_EDV = "$Server\sowiabteilungen\edv"
$Laufwerk_excellenz = "$Server\sowiabteilungen\excellenz"
$Laufwerk_Temp = "$Server\sowitemp"
$Laufwerk_EDV = "\\husowi28c.user.hu-berlin.de\sowiabteilungen\edv"
$Laufwerk_excellenz = "\\husowi28c.user.hu-berlin.de\sowiabteilungen\excellenz"
$Laufwerk_Temp = "\\husowi28c.user.hu-berlin.de\sowitemp"
# OU Liste
# 'OU=ifq', 'OU=InnenPol', 'OU=Verw', 'OU=BGSS', 'OU=Dynamics', 'OU=Stadtsoz
# Hier eintragen welche OUs nicht durchsucht werden sollen.
$OU_NOT = @('OU=Gaeste', 'OU=Tellab')
# ==== OU IGNORE ====
# Alle hier eingetragenene OUs werden ignoriert
# Bitte hierfür die Datei OU_NOT.csv bearbeiten.
# CSV TEST! < Ist noch nicht fertig eingerichtet.
#$OU_NOT = Import-Csv $PSScriptRoot\OU_NOT.csv
$OU_NOT = @('OU=Gaeste', 'OU=Tellab', 'OU=Proj')
# Hier wird eingetragen welche User gesucht/ausgeschlossen werden sollen
$search = { $OU_NOT -notcontains $_.DistinguishedName.split(',')[2] -and $_.DistinguishedName.split(',')[3] -contains "OU=sowiBereiche" -and ($_.SamAccountName -notlike "sowi_*" -and $_.SamAccountName -notlike "admin.*") -and $_.Enabled -like "true"}
# $search = { $_.DistinguishedName -like "*OU=sowiBereiche*" -and $_.Enabled -like "true" -and ($_.SamAccountName -notlike "sowi_*" -and $_.SamAccountName -notlike "admin.*") }
# $like = ''
# $notlike = ''
# Schritt 1 Finde jeden User im AD welcher in der OU Sowi Bereiche ist und einen Aktiven Account hat!
$Users = Get-ADUser -Filter * -Property Enabled, DistinguishedName, SamAccountName | Where-Object $search
# Schritt 2 - Abteilungscheck
#####################################################################################################
#################################################################################################################################
ForEach ($Item in $Users){
# 1. Lese die OU aus.
$check_ou = $(Get-ADUser $Item.SamAccountName).DistinguishedName
# 2. Überprüfe ob die OU mit der Array Liste übereinstimmt. Wenn ja, speichere diesen Wert in i.
if ($check_ou.split(',')[2].substring(3) -in $Bereiche) {
$i= [array]::indexof($Bereiche,$check_ou.split(',')[2].substring(3))
if ($check_ou.split(',')[2].substring(3) -in $webfiles.Bereich) {
$i= [array]::indexof($webfiles.Bereich,$check_ou.split(',')[2].substring(3))
# Hier werden die Zeilen für den Webfiles Zugriff geschrieben
$Info_new = "webfiles`r`n"+$Laufwerke[$i]+"`r`n"+$Laufwerk_Temp
$Info_new = "webfiles`r`n"+$webfiles.Laufwerk[$i]+"`r`n"+$Laufwerk_Temp
$check_info = $(Get-ADUser $Item.SamAccountName -Properties info).info
# 3. Überprüfe ob in dem Feld "Anmerkungen" schon in Informationen geschrieben worden sind. Wenn ja Ignoriere den User.
# Wenn nein, schreibe die Informationen für den Webfileszugriff beim User rein.
......@@ -70,6 +67,7 @@ ForEach ($Item in $Users){
else {
"$($Item.SamAccountName), "+$check_ou.split(',')[2].substring(3)+", ERROR" >> $PSScriptRoot\$((Get-Date).ToString('1yyyy-MM-dd'))_webfiles.txt
}
Get-ADPrincipalGroupMembership $Item | select name >> $PSScriptRoot\$((Get-Date).ToString('1yyyy-MM-dd'))_webfiles.txt
# Kann wahrscheinlich entfernt werden
Clear-Variable -Name check_ou
}
Remove-Printer -Name "iR3225" # Falls der alte Drucker noch existiert!
Add-Printerport -name "WSD-692f3ea3-e10e-41de-94b2-1507a4633df8"
Add-Printer -DriverName "Canon iR3225 Class Driver" -Name "Etagendrucker" -PortName "WSD-692f3ea3-e10e-41de-94b2-1507a4633df8"
# Alte TCP Variante
# Add-Printerport -name "TCPPort:141.20.137.50" -printerhostaddress "141.20.137.50"
# Add-Printer -DriverName "Canon iR3225 Class Driver" -Name "iR3225" -PortName "TCPPort:141.20.137.50"
\ No newline at end of file
pnputil.exe -a $PSScriptRoot\iR3225\CNLB0GA64.INF
Add-PrinterDriver -Name "Canon iR3225 UFR II"
Add-Printerport -name "TCPPort:141.20.137.50" -printerhostaddress "141.20.137.50"
Add-Printer -DriverName "Canon iR3225 UFR II" -Name "Etagendrucker" -PortName "TCPPort:141.20.137.50"
Add-Printer -DriverName "Canon iR3225 Class Driver" -Name "Etagendrucker_OG1" -PortName "TCPPort:141.20.134.233"
Add-Printerport -name "TCPPort:141.20.134.233" -printerhostaddress "141.20.134.233"
\ No newline at end of file
pnputil.exe -a $PSScriptRoot\iR3225\CNLB0GA64.INF
Add-PrinterDriver -Name "Canon iR3225 UFR II"
Add-Printerport -name "TCPPort:141.20.134.233" -printerhostaddress "141.20.134.233"
Add-Printer -DriverName "Canon iR3225 UFR II" -Name "Etagendrucker_OG1" -PortName "TCPPort:141.20.134.233"
\ No newline at end of file
Add-Printer -DriverName "Canon iR3225 Class Driver" -Name "Etagendrucker_OG2" -PortName "TCPPort:141.20.134.206"
Add-Printerport -name "TCPPort:141.20.134.206" -printerhostaddress "141.20.134.206"
\ No newline at end of file
pnputil.exe -a $PSScriptRoot\iR3225\CNLB0GA64.INF
Add-PrinterDriver -Name "Canon iR3225 UFR II"
Add-Printerport -name "TCPPort:141.20.134.206" -printerhostaddress "141.20.134.206"
Add-Printer -DriverName "Canon iR3225 UFR II" -Name "Etagendrucker_OG2" -PortName "TCPPort:141.20.134.206"
\ No newline at end of file
Add-Printerport -name "TCPPort:141.20.134.205" -printerhostaddress "141.20.134.205"
Add-Printer -DriverName "Canon iR3225 Class Driver" -Name "Etagendrucker_OG3" -PortName "TCPPort:141.20.134.205"
\ No newline at end of file
pnputil.exe -a $PSScriptRoot\iR-ADV4045\Driver\CNP60MA64.INF
Add-PrinterDriver -Name "Canon Generic Plus PCL6"
Add-Printerport -name "TCPPort:141.20.134.2" -printerhostaddress "141.20.134.2"
Add-Printer -DriverName "Canon Generic Plus PCL6" -Name "Etagendrucker_OG3" -PortName "TCPPort:141.20.134.2"
\ No newline at end of file
pnputil.exe -a $PSScriptRoot\iR3225\CNLB0GA64.INF
Add-PrinterDriver -Name "Canon iR3225 UFR II"
Add-Printerport -name "TCPPort:141.20.135.160" -printerhostaddress "141.20.135.160"
Add-Printer -DriverName "Canon iR3225 Class Driver" -Name "Etagendrucker_OG4" -PortName "TCPPort:141.20.135.160"
\ No newline at end of file
Add-Printer -DriverName "Canon iR3225 UFR II" -Name "Etagendrucker_OG4" -PortName "TCPPort:141.20.135.160"
\ No newline at end of file
# IP adressen Script - Mit MAC Abfrage!
#
# IP adressen Script mit anschließender MAC-Adressenausgabe
#
# Gibt die Notwendigen Infos aus: Welche Geraete sind da und mit dem Netzwerk "verbunden"
Get-NetAdapter | select Name, InterfaceDescription, Status, IfIndex | Where-Object Status -eq -Value "Up" | Out-Host
$InterfaceIndex = Read-Host -Prompt 'Input Interface Index (Ethernet)'
......@@ -7,58 +10,68 @@ Get-NetAdapter -InterfaceIndex $InterfaceIndex | select InterfaceDescription, if
Write-Host "Mac Adresse in Datei geschrieben"
Get-NetIPAddress -InterfaceIndex $InterfaceIndex | select ifIndex, PrefixOrigin | Where-Object {$_.PrefixOrigin -eq "Manual"} -outvariable Manual >$null 2>&1
# Überprüfe ob schon eine IP Konfiguration vorhanden ist
if ($Manual -match "Manual")
{
# Entfernt jede Eintrag aus dem Netzwerkprofil - Kann zu Fehlermeldungen kommen die ignoriert werden können.
Write-Host " == Entferne vorhandene IP Konfiguration =="
Remove-NetIPAddress -PrefixOrigin Manual -Confirm:$false
#Entfernt anschließed das Stadardgateway
remove-netroute -interfaceindex $InterfaceIndex -DestinationPrefix 0.0.0.0/0 -confirm:$false
}
else {
Write-Host "== Keine manuellen IP Konfiguration gefunden =="
function ip-cleaner {
if ($Manual -match "Manual")
{
# Entfernt jede Eintrag aus dem Netzwerkprofil - Kann zu Fehlermeldungen kommen die ignoriert werden können.
Write-Host " == Entferne vorhandene IP Konfiguration =="
Remove-NetIPAddress -PrefixOrigin Manual -Confirm:$false
#Entfernt anschließed das Stadardgateway
remove-netroute -interfaceindex $InterfaceIndex -DestinationPrefix 0.0.0.0/0 -confirm:$false
}
else {
Write-Host "== Keine manuellen IP Konfiguration gefunden =="
}
}
Write-Host "================================"
Write-Host "Um welches Netz handelt es sich?"
Write-Host "================================"
Write-Host ""
Write-Host "(0) INSTALL IP"
Write-Host "(1) 134/135"
Write-Host "(2) 136"
Write-Host "(3) 137"
Write-Host "(4) DHCP mit HU-DNS"
Write-Host "(5) DHCP Auto DNS"
$Intro = @"
================================
Um welches Netz handelt es sich?
================================
(0) INSTALL IP
(1) 134/135
(2) 136
(3) 137
(4) DHCP mit HU-DNS
(5) DHCP Auto DNS
"@
Clear-Host
$Intro
switch (Read-Host "Auswahl eingeben und mit Enter bestätigen"){
1 {
$Oktette = Read-Host -Prompt 'Bitte das dritte und vierte Oktett der IP eingeben'
ip-cleaner
New-NetIPAddress -InterfaceIndex $InterfaceIndex -IPAddress 141.20.$Oktette -PrefixLength 23 -DefaultGateway 141.20.134.1
Set-DnsClientServerAddress -InterfaceIndex $InterfaceIndex -ServerAddresses 141.20.2.3,141.20.1.3
}
2 {
$Oktette = Read-Host -Prompt 'Bitte das vierte Oktett der IP eingeben'
ip-cleaner
New-NetIPAddress -InterfaceIndex $InterfaceIndex -IPAddress 141.20.136.$Oktette -PrefixLength 24 -DefaultGateway 141.20.136.1
Set-DnsClientServerAddress -InterfaceIndex $InterfaceIndex -ServerAddresses 141.20.2.3,141.20.1.3
}
3 {
$Oktette = Read-Host -Prompt 'Bitte das vierte Oktett der IP eingeben'
ip-cleaner
New-NetIPAddress -InterfaceIndex $InterfaceIndex -IPAddress 141.20.137.$Oktette -PrefixLength 24 -DefaultGateway 141.20.137.1
Set-DnsClientServerAddress -InterfaceIndex $InterfaceIndex -ServerAddresses 141.20.2.3,141.20.1.3
}
4 {
ip-cleaner
Set-NetIPInterface -InterfaceIndex $InterfaceIndex -DHCP Enabled
Set-DnsClientServerAddress -InterfaceIndex $InterfaceIndex -ServerAddresses 141.20.2.3,141.20.1.3
}
5 {
ip-cleaner
Set-NetIPInterface -InterfaceIndex $InterfaceIndex -DHCP Enabled
Set-DnsClientServerAddress -InterfaceIndex $InterfaceIndex -ResetServerAddresses
}
0 {
ip-cleaner
New-NetIPAddress -InterfaceIndex $InterfaceIndex -IPAddress 141.20.134.144 -PrefixLength 24 -DefaultGateway 141.20.134.1
Set-DnsClientServerAddress -InterfaceIndex $InterfaceIndex -ServerAddresses 141.20.2.3,141.20.1.3
}
default {"Ungültige Eingabe"}
}
Write-Host -NoNewLine 'Press any key to continue...';
$null = $Host.UI.RawUI.ReadKey('NoEcho,IncludeKeyDown');
\ No newline at end of file
$null = $Host.UI.RawUI.ReadKey('NoEcho,IncludeKeyDown');
Enable-LocalUser -Name "Administrator"
$Password = Read-Host -AsSecureString 'Bitte das Administrator Kennwort eingeben: '
Get-LocalUser -Name "Administrator" | Set-LocalUser -Password $Password
\ No newline at end of file