Catch The Veggies (Universal App (iPhone+iPad))
Catch The Veggies
——————
Hilf dem kleinen Hund das ganze Gemüse zu fangen und einzusortieren.
Durch die Bewegungen deines iPhones/iPods/iPads lenkst du den kleinen Hund in die richtige Richtung und sobald ein Gemüse gefangen wurde, schmeiss es in die richtige Box, in dem du mit einem Finger auf den Bildschirm tippst.
Durch jedes richtig einsortierte Gemüse wirst du erfolgreich belohnt.
iTunes Link:
http://itunes.apple.com/de/app/catch-the-veggies/id488677930?mt=8
Der firmeneigene CiscoVPN Client funktioniert nicht richtig auf Mac OS X Lion. Aber es ist trotzdem möglich mit den Bordmitteln eine IPSec VPN Verbindung aufzubauen. Anbei wird gezeigt, wie man die Einstellungen und das Decrypten des Group Passwortes aus dem CiscoVPN Profil, auf das native OS X VPN migriert.
Zuerst die Systemeinstellungen öffnen:
Danach eine neue VPN Verbindung erstellen und die folgenden Daten wählen (Dienstname ist beliebig wählbar):
In der anschließenden Konfiguration die Daten aus dem VPN Client übernehmen (Host = Serveradresse):
In unserem Fall sind es folgende Einstellungen. Danach auf Authentifizierungseinstellungen… klicken.
Nun gilt es das VPN Profil zu finden (*.pcf) um den Schlüssel („Shared Secret“) zu entschlüsseln.
Sieht z.B. wie folgt aus und auf dem Mac zu finden unter:
cd /private/etc/CiscoSystemsVPNClient/Profiles
Aus dieser kann das verschlüsselte Group Password ausgelesen werden:
Dieser muss erst entschlüsselt werden. Der Dank für diese Magie geht an HAL-9000 von evilscientists.de und an die Arbeit von Massar‘s an cisco-decrypt.c.
Auf der folgenden Website:
https://coreygilmore.com/projects/decrypt-cisco-vpn-password/
den verschlüsselten Code eingeben:
Und dann dekodieren lassen.
Unter den Authentifizierungseinstellungen den dekodierten Schlüssel und den Gruppennamen eintragen:
Auf Wunsch den VPN Status in der Menüleiste anzeigen lassen. That’s all Folks!
Nachfassend zu meinem Artikel (OUTLOOK ZEIGT EINGEBUNDENE POSTFÄCHER DOPPELT AN) habe ich nach einem Weg gesucht die msExchDelegateListLink per Powershell zu bearbeiten.
Das folgende Script entfernt einen bestimmten Benutzer in der msExchDelegateListLink eines Postfaches:
$Mailbox = Get-Mailbox $Identity #Postfach, welches bearbeitet werden soll
$removeUser = “user” #Benutzer, welcher aus der msExchDelegateListLink entfernt werden sollif (!$Mailbox)
{
throw “Could not find Mailbox $($Identity)”
}
#Set the domain controller
$DomainController = $Mailbox.OriginatingServer# If the mailbox permission was successfully added, remove the auto mapping using ADSI
$LDAPUser=[ADSI]“LDAP://$($DomainController)/$($Mailbox.DistinguishedName)”
$LDAPUser.msExchDelegateListLink.Remove(((Get-Mailbox $removeUser).DistinguishedName))
$LDAPUser.SetInfo()
Wenn man dieses Script in eine schöne Schleife verpackt, kann man sich auch hiermit viel Arbeit ersparen!
Ich bin in den letzten Tagen mehrfach auf ein Problem Umstand gestoßen, dass in Outlook einige eingebundene Postfächer doppelt angezeigt werden.

Natürlich schaut man erst einmal in die Kontoeinstellungen des Benutzers, ob unter “Weitere Einstellungen” – “Erweitert” das Postfach korrekt eingebunden wurde. Das Problempostfach erschien korrekterweise nur einmal. Durch ein wenig Recherche stieß ich auf die Ankündigung des SP1 für den Exchange Server 2010.
“On the client side features like auto mapping of shared mailboxes to user’s Outlook 2010 profiles will remove a support headache.”
Wenn man einem Benutzer volle Zurgriffsrechte auf einem anderen Postfach vergibt, wird im Active Directory ein Attribut gesetzt: msExchDelegateListLink. Dieses Feld kann mehrere Attribute beinhalten und zwar eine Liste von DNs (Distinguished Names), welche den Vollzugriff auf dieses Postfach haben.

Wurde also einem Benutzer der Vollzugriff auf ein anderes Postfach gewährt, erscheint dieser in dem Attribut msExchDelegateListLink.
Beim nächsten Start von Outlook2010 oder eines aktuellen Outlook 2007 wird automatisch nach diesen Werten in der AD geschaut und das Postfach erscheint einige Sekunden nach dem Start in Outlook.
Wenn dies nicht gewollt ist, kann der Wert bei diesem Attribut einfach gelöscht werden und schon erscheint das Postfach nur noch einmal in Outlook. Auf der anderen Seite kann der Admin diese Werte befüllen und der Anwender brauch sich nicht mehr durch die Optionsfenster zu wuseln. Es ist nur zu beachten, dass man nicht beide Varianten durchführt!
Möchte man Terminalserver User nach einer bestimmten Uhrzeit trennen, ist dies in den Terminalserver Einstellungen kein Problem, solange dies alle Benutzer betrifft.
Nun hatte ich die Anforderung dies auf nur einen Benutzer zu beschränken. Mit Hilfe von Powershell und qwinsta (= Query WINdows STAtion) konnte ich den betroffenden Benutzer filtern und die Terminalserver Session abmelden.
Dabei spielt es keine Rolle, ob der Benutzer noch aktiv ist oder im Status “getrennt” steht.
Wichtig: Zurzeit ist das Skript für einen deutschen Terminalserver ausgerichtet, lässt sich aber leicht bei “Select-Object benutzername | %{$_.Benutzername}” anpassen!
Hier das kleine Script:
//Benutzername anpassen
$shortusername = “username”
function isNumeric ($x) {
try {
0 + $x | Out-Null
return $true
} catch {
return $false
}
}$q = (qwinsta | foreach { (($_.trim() -replace “\s+”,”,”))} | ConvertFrom-Csv)
$id = $q -match $shortusername | Select-Object benutzername | %{$_.Benutzername}if(isNumeric($id))
{
$id
}else{
$id = $q -match $shortusername | Select-Object ID | %{$_.ID}
}
logoff $id
Der Benutzername muss in dem Script hinterlegt werden!
Nach der Hinterlegung im Task Scheduler wird der Benutzer nun täglich um 21 Uhr abgemeldet, ohne das andere User betroffen sind!
Hallo zusammen,
zurzeit sind die Kommentare deaktiviert, da ich ein kleines Spam-Problem habe. Ich denke, dass man hier schnell Abhilfe schaffen kann. [UPDATE]Wieder aktiv. Spam wird nun besser abgelehnt.[/UPDATE]
Sobald dies geschehen ist, werde die Kommentare wieder freigegeben.
Marius
Mit wenig Erklärung habe ich hier ein Skript geschrieben, dass euch eine Vorschau einer Datenbank-Tabelle anzeigt, um danach bestimmte Spalten nach html oder csv zu exportieren.
Nach Aufruf des Skripts werden automatisch die verfügbaren Tabellen der Datenbank geladen. Nach Auswahl einer Tabelle, bekommt man eine Vorschau (1. Zeile) der Tabelle angezeigt. Danach können nach belieben mehrere Zellen markiert werden, um so festzulegen, welche Spalten mit allen Werten exportiert werden sollen. Wahlweise nach html oder csv.
Der jetzige Standard-Exportpfad liegt direkt auf “C:”. Kann aber im Skript geändert werden.
Aufruf erfolgt mit der DSN-ODBC-Namen. Beispielweise:
./ODBC-Connection.ps1 ODBC-DSNName
GUI Übersicht:
Beispiel Ausgabe in html:
Skript:
$objConnection = New-Object -comobject ADODB.Connection
$Connection = New-Object -ComObject ADODB.Recordset##Variables##
$date = get-date
$filelocation = “C:\cidcarnet.htm”
$filelocationcsv = “C:\cidcarnet.csv”function Get-Tables
{
$Report = @()
$objConnection.Open($ODBCName)
$objRS = $objConnection.Execute(“Select Name from sysobjects where type=’U'”)while ($objRS.EOF -ne $True) {
foreach ($field in $objRS.Fields) {
$hosts = “” | Select Name
$hosts.”Name” = $field.Value
$Report += $hosts}
$objRS.MoveNext()
}
$objConnection.Close()
$Report = $Report | sort Name
return $Report
}function Get-Columns([string]$table)
{
$Report = @()
$fsTable.Clear()
$fsTable.Columns.Clear()
$objConnection.Open($ODBCName)
$objColumns = $objConnection.Execute(“Select * from $table”)foreach ($column in $objColumns.Fields) {
$hosts = “” | Select Name, Value
$hosts.”Name” = $column.Name
$hosts.”Value” = $column.Value
$Report += $hosts
}
$fivalues = @()
$Report | ForEach-Object{
$fsTable.Columns.Add($_.Name)
$fivalues += $_.Value
}
$fsTable.Rows.add($fivalues)
$dgDataGrid.DataSource = $fsTable
$objConnection.Close()
}function ExportToCSV
{
Clear-Content $filelocation
Clear-Content $filelocationcsv$selectedRows = @()
for($counter = $dgDataGrid.SelectedCells.Count; $counter -ge 0; $counter–)
{
$cellIndex = $dgDataGrid.SelectedCells[$counter].ColumnIndex
$selectedRows += $dgDataGrid.Columns[$cellIndex].Name
}
#write-host “1″ + $selectedRows#Tabellenwerte auslesen
$table = $snTablesNameDrop.SelectedItem
$selectedRows | %{$columns += “$_,”}
$columns = $columns.Substring(0,$columns.lastIndexOfAny(“,”))
$columns = $columns.Replace(” “,”")
$query = “SELECT ” + $columns +” FROM $table”
write-host $query
$objConnection.Open($ODBCName)
$Connection.open($query,$objConnection,3,3)$Report = @()
while (!$Connection.EOF) {
$hosts = “” | Select $selectedRowsforeach ($column in $selectedRows)
{
$hosts.”$column” = $Connection.Fields.Item(“$column”).Value
}
$Report += $hosts
$Connection.MoveNext()
}$Connection.Close()
$objConnection.Close()Write-Host $Report
if($exportRadioBtn2.checked)
{
ConvertTo-Html -title “Check” -body “<H1>Report</H1>” -head “<style>body { background-color:#EEEEEE; }
body,table,td,th { font-family:Tahoma; color:Black; Font-Size:10pt }
th { font-weight:bold; background-color:#CCCCCC; }
td { background-color:white; }</style>” | Out-File $filelocation
ConvertTo-Html -title “Check” -body “<H4></H4>” | Out-File -Append $filelocation
ConvertTo-Html -title “Check” -body “<H4>Date and time</H4>”,$date | Out-File -Append $filelocation
$Report | ConvertTo-Html -body “<H2>$table</H2>” | Out-File -Append $filelocation
}if($exportRadioBtn1.checked)
{
$Report | Export-Csv -NoTypeInformation -UseCulture $filelocationcsv
}
}
function generateForm
{
[System.Reflection.Assembly]::LoadWithPartialName(“System.Drawing”)
[System.Reflection.Assembly]::LoadWithPartialName(“System.windows.forms”)
$form = new-object System.Windows.Forms.form# Add Tables DropLable
$snTablesNamelableBox = new-object System.Windows.Forms.Label
$snTablesNamelableBox.Location = new-object System.Drawing.Size(10,5)
$snTablesNamelableBox.size = new-object System.Drawing.Size(80,15)
$snTablesNamelableBox.Text = “Tabellen:”
$form.Controls.Add($snTablesNamelableBox)# Add Tables Drop Down
$snTablesNameDrop = new-object System.Windows.Forms.ComboBox
$snTablesNameDrop.Location = new-object System.Drawing.Size(10,20)
$snTablesNameDrop.Size = new-object System.Drawing.Size(200,30)
get-tables | ForEach-Object{$snTablesNameDrop.Items.Add($_.Name)}
$snTablesNameDrop.Add_SelectedValueChanged({Get-Columns($snTablesNameDrop.SelectedItem)})
$form.Controls.Add($snTablesNameDrop)#Subtabelle
$fsTable = New-Object System.Data.DataTable
$fsTable.TableName = “TablePreview”
# Add DataGrid View
$dgDataGrid = new-object System.windows.forms.DataGridView
$dgDataGrid.Location = new-object System.Drawing.Size(10,50)
$dgDataGrid.size = new-object System.Drawing.Size(770,75)
$dgDataGrid.AutoSizeRowsMode = “AllHeaders”
$form.Controls.Add($dgDataGrid)#Export-Radiobuttons
$exportRadioBtn1 = New-Object System.Windows.Forms.RadioButton
$exportRadioBtn1.text = “Export nach csv”
$exportRadioBtn1.top = 145
$exportRadioBtn1.left = 160
$exportRadioBtn1.checked = $true
$form.Controls.Add($exportRadioBtn1)$exportRadioBtn2 = New-Object System.Windows.Forms.RadioButton
$exportRadioBtn2.text = “Export nach html”
$exportRadioBtn2.top = 170
$exportRadioBtn2.left = 160
$exportRadioBtn2.width = 200
$form.Controls.Add($exportRadioBtn2)# Create Button and set text and location
$button_exit = New-Object Windows.Forms.Button
$button_exit.text = “Exit”
$button_exit.Location = New-Object Drawing.Point 15,245
$form.controls.add($button_exit)$button_exit.add_click({
$form.Close()
})# Create Button and set text and location
$button_csv = New-Object Windows.Forms.Button
$button_csv.text = “Export”
$button_csv.width = 100
$button_csv.Location = New-Object Drawing.Point 15,145
$form.controls.add($button_csv)$button_csv.add_click({
ExportToCSV
})$form.Text = “PS-Sybase Control”
$form.size = new-object System.Drawing.Size(800,300)
$form.autoscroll = $true
$form.Width = 800
$form.Height = 300
$form.FormBorderStyle = “FixedSingle”
$form.ControlBox = $false
$form.Add_Shown({$form.Activate()})
$form.ShowDialog()}
if ($Args.count -lt 1) {
‘No Parameter!’
‘Usage:’
‘./ODBC-Connection.ps1 ODBC-DSNName’
”
}
else{
$ODBCName = $args[0]
generateForm
}
Leider war ich bei meiner Suche nach Trainings-Videos für den Microsoft Forefront z.B. bei Trainsignal oder CBT-Nuggets nicht erfolgreich.
Microsoft selbst bietet aber einige Videos und Trainingseinheiten an. Diese möchte ich natürlich keinem vorenthalten:
Ramp Up – Implementing Forefront Threat Management Gateway 2010
http://technet.microsoft.com/en-us/gg467329
Events and Webcasts
http://www.microsoft.com/forefront/threat-management-gateway/en/us/events-webcasts.aspx
Videos
http://www.microsoft.com/events/series/forefront.aspx?tab=videos












