Weisheiten - der Netz-Weise Blog

Hier finden Sie Tipps und Tricks für vor, während und nach der Schulung.

Unix/MySQL Timestamp in Datumswerte mit Powershell umwandeln

In Unix und MySQL werden Datumswerte oft als Timestamps angegeben. Ein Timestamp ist eigentlich ein Datums/Zeitwerte, der aber als Integer gespeichert ist und die Sekunden ab dem 1.01.1970 angibt. Diese Zeitzählung wird auch als "Epoch date" bezeichnet.

Die Umwandlung in einen Datumswert in Powershell ist eigentlich recht einfach, da uns Powershell alle zur Umrechung notwendigen Funktionen zur Verfügung stellt. Das Datum des 1.1.1970 liefert uns get-Date:

Get-Date '1/1/1970'

Get-Date liefert ein Objekt vom Type Datetime zurück. Alle Objekte vom Typ Datetime besitzen eine Reihe von Methoden für die Datumsmanipulation. Wir benötigen hier die Methode AddSeconds() zum Aufaddieren von Sekunden:

$Timestamp = 1464257993
(Get-Date '1/1/1970').AddSeconds($Timestamp)

Markiert in:
Weiterlesen
0 Kommentare

SQL-Server Fehleranalyse mit sp_blitz

Der SQL-Server MVP Brent Ozar hat ein eine gespeicherte Prozedur names sp_blitz zur Verfügung gestellt, mit der ein SQL-Server im Schnelldurchgang auf gängige Probleme überprüft werden kann. SP_Blitz ist kostenlos, kann direkt auf dem SQL-Server implementiert oder über ein kleines Programm aus dem Internet heruntergeladen und ohne Installation ausgeführt werden. Verwenden sie das aufführbare Tool, wird auch gleich ein pdf generiert. Die Dokumentation mit Problembeschreibungen und die möglichen Schritte zur Behebung finden Sie ebenfalls Brent Ozars Website. Ebenfalls auf der Website finden Sie auch sp_blitzIndex zur Analyse von Indexen. 

0 Kommentare

Laufzeit der Gruppenrichtlinien-Ausführung bestimmen

Wenn eine Windows-Anmeldung lange dauert, könnte dies an den abzuarbeitenden Gruppenrichltinien liegen. Lesen Sie hier, wie sie die Laufzeit der Gruppenrichtlinien bestimmen können. Die Anmeldung eines Clients kann mitunter sehr, sehr lange dauern. Eine der möglichen Ursachen für eine verzögerte Anmeldung bilden die Windows Gruppenrichtlinien.  Grundsätzliche Kandidaten für verzögerte Anmeldungen sind:

  • Synchrone Verarbeitung (Alle Gruppenrichtlinien müssen komplett verarbeitet sein, bevor dem Benutzer die Arbeitsumgebung zur Verfügung gestellt wird)
  • Anmeldescripte
  • aufwändige WMI-Filter

 

Um die Abarbeitungszeit von Gruppenrichtlinien zu bestimmen, gibt es zum einen von Daren Mar-Elia (dem gpo-guy) das Kommandozeilenprogramm gptime.exe, dass die für die letzte Gruppenrichtlinienverarbeitung benötigte Zeit pro gpo anzeigt. Für eine ausführliche Analyse bietet Microsoft das Performance Toolkit im Windows ADK (Assessment and Deployment Kit) an. Das ADK kann man bei Microsoft herunter laden. Eine gute Einführung in die Analyse des Startvorgangs mit dem ADK bietet die Aufzeichnung der Teched-Session How many coffess can you drink while Windows 7 boots?   

0 Kommentare

Office 365 - Email Weiterleitung einrichten

Um unter Office 365 eine Email-Weiterleitung einzurichten, melden Sie sich unter Outlook.office365.com mit Ihrem mail-Konto an. Klicken Sie oben rechts auf das kleine Zahnrad-Symbol, um in die Einstellungen zu kommen. Wählen Sie "Optionen" aus, und im folgenden Fenster im rechten Bereich "Ihre emails weiterleiten".

0 Kommentare

Office 365 Active Sync

Um von Ihrem Android oder Windows Phone aus auf Office 365 zuzugreifen, nutzen Sie Active Sync.Gehen Sie unter Android in "Konto hinzufügen", wählen Sie "Exchange Server", und geben Sie Ihr Office 365 mail-Konto ein. Der Name des Exchange-Servers, den Sie eintragen müssen, lautet "Outlook.office365.com". Danach erhalten Sie eine Sicherheitsbenachrichtigung, die sie einmal bestätigen müssen, und der Zugriff ist eingerichtet. http://office.microsoft.com/en-us/office365-suite-help/set-up-email-on-an-android-phone-or-tablet-HA102823196.aspx
0 Kommentare

Die SID-History, Token-Bloating und SID-History Cleanup

Ist ein Windows-User Mitglied zu vieler Gruppen, kann es zu Anmeldeproblemen kommen. Wir erklären warum, und wie man die Problematik angehen kann. Mit der Migration von Windows NT4 auf Windows 2000 und neuere Betriebssyteme hat Microsoft ein Feature namens SID-History eingeführt. Wird ein Benutzer migriert, so werden seine Gruppenmitgliedschaften der alten Domäne in das neue Benutzerobjekt in der neuen Domäne übertragen, so dass der Benutzer nach wie vor auf die Resourcen der alten Domäne zugreifen kann. Wird diese SID-History nicht gelöscht, kann es früher oder später zu Anmeldeproblemen kommen, da die Menge der Gruppen, die in einem Access-Token hängen dürfen (dem "Personalauweis", der beim Anmelden an jedem Windows-Recher zur Authentifizierung erzeugt wird), beschränkt ist. Es gibt 2 beschränkende Faktoren, und zwar die maximale Größe in Byte, die auf dem Rechner eingestellt ist (max. 64 KB, ab Windows Server 2012 / Windows 8 48 KB) und die maximale Anzahl der Gruppen, in denen ein Konto Mitglied sein darf (1015). Die SID-History kann komplett oder auch punktuell gelöscht werden. Werkzeuge hierfür bietet z.B. Powershell. Einen genauen Artikel von Ashley McGlone, der zeigt, wie das mit Powershell zu bewerkstelligen ist, findet sich hier:

https://blogs.technet.com/b/ashleymcglone/archive/2011/11/23/how-to-remove-sid-history-with-powershell.aspx?Redirected=true

Hintergrundinfos zum Thema sowie eine Beschreibung, wie Sie einzelne SID´s filtern können, gibt es hier:
http://blog.joeware.net/2011/11/20/2338/

0 Kommentare

Failover Cluster Manager - A weak event is created

Wenn der Failover-Cluster-Manager mit dem Fehler "A weak event is created..." abstürzt, gibt es keinen Grund zur Panik. Es handelt sich um einen Bug in einem automatisch eingespielten Hotfix des .net-Framework. Abhilfe schafft ein weiteres Hotfix, dass man direkt bei Microsoft herunter laden kann. http://www.microsoft.com/en-us/download/confirmation.aspx?id=36468

0 Kommentare

Authentifizierungsdaten mit Powershell sicher speichern und wiederverwenden

Eine ganze Reihe von Powershell-Commandlets haben einen Parameter -Credential, der es erlaubt, ein Commandlet über das Netzwerk unter anderen Benutzerrechten zu starten. Das Commandlet Get-Credential liefert das hierzu notwendige Powershell Credential Objekt, das den Benutzernamen und das Kennwort für die Anmeldung enthält. Will man die Benutzerinformationen aber nicht interaktiv abfragen, sondern Scripten, hilft das interaktive Get-Credential nicht weiter. Stattdessen kann man aber die Benutzerinformationen in eine Datei speichern. Will man die Benutzerinformationen einfach in der gleichen Benutzersitzung weiterverwenden, kann man die Benutzerinformationen einfach an Export-CliXML weiterleiten: 

$user = Get-Credential 
$user | Export-CliXML C:\temp\user.xml

Dieser Befehlt ruft Benutzerinformationen ab und leitet diese direkt in die XML-Datei user.xml um. Die Daten werden allerdings vom System verschlüsselt und sind nur unter dem Benutzer wiederverwendbar, der die Datei angelegt hat. Das ist in den seltensten Fällen hilfreich. Um das Kennwort sicher und aus anderen Sitzungen verwenden zu können, helfen die Commandlets ConvertFrom-SecureString und ConvertTo-Securestring weiter. Mit Ihnen kann das vom System mit den Benutzerinformationen verschlüsselte Kennwort in ein mit AES verschlüsselten String umgewandelt bzw. wieder in einen Secure-String zurückgewandelt werden.  Um das Kennwort eines Benutzers zu verschlüsseln und in einer Datei zu speichern:

$user = get-Credential
$user.password | ConvertFrom-Securestring -Key (1..16) | out-file .\Password.txt

Um die Daten zu reimportieren:

$user = "nw\Holger"
$pw = get-content .\Password.txt | ConvertTo-Securestring -key (1..16)
$Cred = New-Object System.Management.Automation.PSCredential $user, $Password

ConvertFrom-Securestring nimmt das vom System gesicherte Kennwort, entschlüsselt und sichert es erneut mit AES. -Key übergibt den symmetrischen Schlüssel, mit dem das Kennwort gesichert wird. Der Schlüssel muß 128, 192 oder 256 Bit lang sein, daher muß das Kennwort aus 8, 12 oder 16 Zeichen bestehen. Die Zeichen werden in Form eines Byte-Arrays übergeben. Das sehr einfache Beispiel gilt nur Demo-Zwecken und sollte in der Praxis nicht nachgeahmt werden, denn (1..16) erzeugt ein Array von Zahlen von 1 bis 16. ConvertFrom-Securestring wandelt das Kennwort wieder zurück in einen Secure Key. Mit New-Object wird ein neues Benutzerobjekt erzeugt und ein Benutzername und das Kennwort als Secure String übergeben. Damit können die Credentials jetzt auch unter einem anderen Benutzerkonto verwendet werden. 

0 Kommentare

Powershell-Script zu Exe(n)

Wenn Sie ein Powershell-Script in eine sich selbst ausführende Datei umwandeln wollen (.exe), gibt es dafür eine Reihe von Möglichkeiten. Eine davon ist das Tool PS2EXE auf Codeplex, eine andere Variante ist ein Script von Keith Hill, dass allerdings die Powershell Community-Extensions voraussetzt.

0 Kommentare

SQL-Server Agent-Jobs vom Entwickler bearbeiten lassen

Mit dem SQL-Server Agent und der Datenbankrolle ""SQLAgentUserRole"" in der msdb-Datenbank kann man einem SQL-Login Zugriff auf einen Job geben. Voraussetzung ist, dass der Login dem JOB auch als Owner zugewiesen wird. Soll der User allerdings auch die Zeitpläne für geplante Aufträge verwalten, stellt man fest, dass dies nicht unbedingt klappt. Ursache dafür ist die schlecht Dokumentierte Tatsache, dass der Login auch Besitzer der Zeitpläne sein muß. Hat er diese nicht angelegt, kann er dementsprechend keine Änderungen durchführen. Stattdessen bekommt er eine Meldung ""The specified schedule @schedule_id() does not exist"". Den Besitzer des Zeitplans kann man nur über die Tabelle msdb.dbo.sysschedules in der Spalte owner_sid einsehen. Das folgende Script zeigt alle Job an, bei denen Besitzer für Zeitplan und Job nicht identisch sind:

SELECT (SELECT name FROM sys.server_principals WHERE [SID] = ss.owner_sid) AS ScheduleOwner,
(SELECT name FROM sys.server_principals WHERE [SID] = sj.owner_sid) AS JobOwner,
ss.name AS ScheduleName,
ss.owner_sid AS ScheduleOwnerSid,
sj.name AS JobName,
sj.owner_sid AS JobOwnerSID
FROM msdb.dbo.sysschedules AS ss
INNER JOIN msdb.dbo.sysjobschedules AS sjs
ON sjs.schedule_id = ss.schedule_id
INNER JOIN msdb.dbo.sysjobs AS sj
ON sjs.job_id = sj.job_id
WHERE ss.owner_sid <> sj.owner_sid

Und mit folgendem Script beheben Sie das Problem, indem Sie den Besitzer aller zeitpläne auf den gleichen Besitzer setzen wie den zugehörigen Job. Um nicht alle Jobs ungesehen zu überschreiben, geben Sie in der 1. Zeile einen Login-Namen ein:

DECLARE @JobOwner NVARCHAR(255) = 'Benutzer'
DECLARE @JobOwnerSid VARBINARY(85)
SELECT @JobOwnerSid = [sid] FROM master.sys.server_principals WHERE name = @JobOwner
UPDATE SS
SET ss.owner_sid = sj.owner_sid
FROM msdb.dbo.sysschedules AS ss
INNER JOIN msdb.dbo.sysjobschedules AS sjs
ON sjs.schedule_id = ss.schedule_id
INNER JOIN msdb.dbo.sysjobs AS sj
ON sjs.job_id = sj.job_id
WHERE (ss.owner_sid <> sj.owner_sid)
AND (sj.owner_sid = @JobOwnerSid)

 

Markiert in:
0 Kommentare

Windows 10 - Taskmanager zeigt dauerhauft hohe Systemlast (Taskmanager durch Process Monitor ersetzen)

Windows 10 - bei mir hat sich diese Beziehung zu einer Haßliebe entwickelt. Ich bin wirklich inzwischen am Überlegen, ob ich nicht doch lieber einmal Linux probieren sollte. Auch nach einem Jahr habe ich nicht das Gefühl, dass Windows 10 aus der Beta-Phase raus ist, und das, obwohl ich inzwischen (aus genau diesen Gründen) nicht mehr an der Insider-Preview teilnehme. 

Beispiel gefällig? Ich habe Stunden damit zugebracht herauszufinden, warum meine CPU-Last ständig oberhalb von 50% liegt. Ich habe jetzt die Ursache gefunden - sie tut es gar nicht. Der Taskmanager zeigt einfach nur völlig falsche Werte an. Auf die Idee bin ich gekommen, nachdem ich einen Artikel gefunden habe, der beschrieb, dass es im Taskmanager den Idle-Task nicht mehr gibt, und dass daher der Task-Manager Prozess manchmal sehr hohe Lastwerte anzeigt. Daraufhin habe ich den Sysinternals Process Monitor angeworfen und - während der Taskmanager konstant fast 50% Last anzeigte, dümpelte der Procmon bei 4% Last herum. 

Promon vs. Taskmanager

Die beste Lösung für das Problem - Den Taskmanager gleich durch Procmon ersetzen. Dafür bring Procmon sogar eine eigene Funktionalität mit. Klicken Sie im Menü unter Options einfach auf "Replace Task Manager", und Procmon erledigt den Rest für Sie. Wählen Sie die Option erneut, stellt Procmon den Taskmanager wieder her. Und da es sich auch bei Procmon um ein Microsoft-Tool handelt, muß man sich auch keine weiteren Gedanken machen. Das besser Werkzeug ist der Procmon eh. 

 

Weiterführende Links:

Weiterlesen
0 Kommentare

Programme deinstallieren mit Powershell

Um mit Powershell Programme zu deinstallieren, muß man mit Powershell entweder tief in die Trickkiste greifen (genau genommen in die WMI-Kiste), oder aber Powershell 5.0 installieren. Wenn Sie WMI verwenden wollen oder müssen, greifen Sie auf die Klasse Win32_Product zurück. Der Zugriff auf WMI gestaltet sich dank Powershell dabei sehr einfach: 

Get-WMIObject -Class Win32_Product -Filter "name like '%Office%'"

Die obige Zeile ruft die installierten Programme ab. Zum Deinstallieren können Sie die Methode Uninstall() verwenden. Das sieht dann so aus:

$VS = Get-WMIObject -Class Win32_Product -Filter "name = 'Microsoft Visual Studio Professional 2015'"
$VS.Uninstall()

Unglücklicherweise gibt die Klasse Win32_Product nicht alle installierten Programme zurück und ist auch nicht besonders schnell. Mit dem Powershell-Packagemanager (ab Powershell 5.0 Bestandteil von Powershell) geht es jetzt aber deutlich einfacher. 

Weiterlesen
0 Kommentare

Benutzereinstellungen in Office 365 und Exchange Online mit Powershell setzen

Benutzereinstellungen in Office 365 kann über die Weboberfläche mühsam sein, da das Webinterface nicht unbedingt schnell ist. Außerdem möchte man eine große Anzahl von Änderungen auch ungerne per Hand eintickern. Aber zum Glück kann man in Office 365 ja alles über Powershell steuern. ;-) Im folgenden Beispiel zeige ich, wie man Adressbuch-Informationen in Exchange Online setzt, aber die meisten anderen Einstellungen lassen sich genauso leicht konfigurieren. 

Zuerst muß man den Microsft Online Services Anmelde-Assistenten für IT-Experten RTW (sprechen Sie das 10 mal hintereinander schnell aus) und das Azure Active Directory-Modul für Windows Powershell installieren. Anschliessend können Sie eine Powershell-Konsole öffnen und sich mit Office 365 verbinden:

# die Office 365 Anmeldedaten abfragen und speichern
$UserCredential = Get-Credential 
# Mit den Anmeldedaten eine Verbindung mit Microsoft Online (MSol) herstellen
Connect-MsolService -Credential $UserCredential 
# Jetzt eine Remote-Sitzung zu einem Server herstellen
$ExchangeSession = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri "https://outlook.office365.com/powershell-liveid/" -Credential $UserCredential -Authentication "Basic" -AllowRedirection
# Die Powershell-Befehle der Remote-Sitzung können auf den lokalen Rechner importiert werden
Import-PSSession -Session $ExchangeSession
# Alle User anzeigen
Get-User
# Und die Telefonnummer eines Users verändern
Get-User -Identity holger.voges | Set-User -Phone

Um eine Gruppe von Benutzern aus einer CSV-Datei heraus zu ändern, ist direktes Pipen der Daten aus dem csv-Datei, wie es mit den AD-Cmdlets seit Windows Server 2012 geht, leider nicht möglich. Hier behelfen wir uns mit einem kleinen Workaround. Gehen wir davon aus, dass wir eine csv-Datei mit Benutzerdaten haben, deren Inhalt ungefährt so aussieht:

"Name","Company","Phone"
"dummy.user","Netz-Weise","0511-16592599"
"holger.voges","Netz-Weise","0511-1659250"
"julia.voges","Netz-Weise","0511-16592512"

Weiterlesen
0 Kommentare

Zugriff auf SQL-Server per SMO mit Powershell - ohne SMO-Installation!

SQL-Server lassen sich mit Hilfe der SMO-Erweiterungen (Server Management Objects) des SQL-Servers per Powershell wunderbar verwalten. Einen ganzen Satz von Beispielen finden Sie z.B. auf unserer Website unter Dokus. Für den Einsatz von SMO muß SMO allerdings erst einmal installiert werden. Dies geschieht entweder bei der SQL-Server Installation, indem Sie unter der Feature-Auswahl "Client Tools SDK" auswählen, oder indem Sie von der Microsoft-Website aus dem Feature-Pack Download "SharedManagementObjects.msi" und "SQLSysCLRTypes.msi" herunterladen und installieren. Oder Sie bauen sich alternativ ein Powershell-Modul, dass die notwendigen dll´s enthält und von selbst nachlädt. Alles, was Sie hierzu benötigen, sind die beiden Downloads aus dem Feature Pack, und eine Powershell Modul-Datei. Hierfür bietet sich passenderweise eine Manifest-Datei (.psd1) an. 

Aber fangen wir von vorne an. SMO ist ein Feature, dass Microsoft eingeführt hat, um die Verwaltung von SQL-Servern aus dem .NET-Framework zu erleichtern. Anstatt über SQL-Befehle kann man per SMO programmatisch über Objekte auf den SQL-Server zugreifen. Und da man mit Powershell auf alles zugreifen kann, was das .Net-Framework zur Verfügung stellt, kann man natürlich auch SMO nutzen. Tatsächlich tun Sie das sogar bereits, wenn Sie mit der SQL-Server Konsole für Powershell (SQLPS) arbeiten, denn das besondere an dieser Konsole ist vor allem, dass beim Starten von SQLPS automatisch die SMO-Assemblies geladen werden. 

Unschön an SMO ist, dass auf jedem Rechner, auf dem Sie Ihre SQL-Server Powershell-Scripte laufen lassen möchten, SMO installiert sein muß. Allerdings läßt sich dieses Problem mit einem kleinen Trick umgehen, denn tatsächlich muß die SMO-Funktionalität gar nicht installiert werden - Sie benötigen nur die dll-Dateien, die die SMO-Funktionalität zur Verfügung stellen. Und die erhalten Sie, wenn Sie die beiden oben angegebenen msi-Pakete auf einem beliebigen Rechner installieren. Die SMO-Assemblies finden Sie nach der Installation standardmässig im Ordner %ProgramFiles% unter "Microsoft SQL Server\<Version>\SDK\Assemblies", wobei Version der internen Versionsnummer des SQL-Servers entspricht. Bei einer Standardinstallation von SMO für SQL Server 2014 wäre das also Beispielsweise:

C:\Program Files\Microsoft SQL Server\120\SDK\Assemblies\

Kopieren Sie den Ordner Assemblies. Weiterhin benötigen Sie die "Microsoft.SqlServer.SqlClrProvider.dll", an die allerdings nicht so einfach heran zu kommen ist. Sie ist im Global Assembly Cache installiert und wird standardmässig aus der Explorer-Ansicht gefiltert. Sie müssen den Filter deaktivieren. Starten Sie hierfür den Registieriungseditor und setzen Sie die folgenden Wert: 

Weiterlesen
0 Kommentare

Widerspenstige Azure Storage Accounts löschen - "There is currently a lease on the blob and no lease ID was specified in the request"

Neulich in Azure - Sie wollen einen Strorage-Account löschen, aber er will einfach nicht verschwinden, obwohl die GUI meldet, der Job sei erfolgreich abgeschlossen? Nach einer genauen Untersuchung stellen sie fest, dass das System folgende Fehlermeldung schmeißt: Error: There is currently a lease on the blob and no lease ID was specified in the request.

Das Problem besteht darin, dass sich in dem Storage-Account noch vhd-Dateien befinden, deren VMs inzwischen gelöscht sind, was an Azure aber irgendwie vorbei gegangen ist. In meinem Fall war die Ursache vermutlich, dass ich die Objekte einzeln über Powershell gelöscht habe statt über die Web-GUI. Jedenfalls hat Azure noch eine Verbindung zwischen der VM, die nicht mehr existiert, und der vhd gespeichert und sperrt deswegen die Löschung der Daten. Lösen lässt sich das Problem auch nicht mit den Azure Powershell Cmdlets und dem Parameter Force. Stattdessen hilft AzureCLI weiter, ein Kommandozeilentool zur Verwaltung von Azure. Eine Anleitung zur Installation finden Sie bei Microsoft

Nachdem Sie AzureCLI installiert haben, starten Sie ein Konsole, Powershell oder cmd. Das Tool zur Verwaltung lautet einfach azure:

azure login
azure account set "Ihr Subscription-Name"
azure config mode arm
azure storage account list
azure storage account delete <Ihr Storage Account Name>

Azure config mode arm ist nur notwendig, wenn Ihr Account im Azure Resource Manager mode angelegt wurde. Ein sicheres Zeichen dafür, dass das nicht der Fall war ist, wenn Sie den account noch im alten Portal angelegt haben. Probieren Sie es einfach aus, wird Ihr Account ohne den Moduswechsel nicht angezeigt, geben Sie einfach azure config mode arm ein. Mit dem delete wird der Account sofort und ohne Meldung entfernt. Wie Mr. Spock sagen würde - faszinierend!

Weiterlesen
0 Kommentare

Texte umschliessen und kommaseparierte Listen erstellen in Powershell

Ein häufig auftretendes Problem ist das umschliessen von Texten z.B. mit Anführungszeichen. Für Transact-SQL gibt es dafür sogar eine eigenen Funktion, Quotename, die das übernimmt. In Powershell fehlt diese Funktion zwar, sie lässt sich aber durch den Format-Operator -f sehr einfach nachrüsten. Der Format-Operator kann in einen String beliebige Texte einfügen. Im Text werden dafür Platzhalter definiert. Ein Platzhalter ist ein Zahl, die in geschweifte Klammern eingeschlossen ist, z.B. {0}. Hinter dem Text folgt der Format-Operator -f, wiederum gefolgt von den Werten, die in die Platzhalter eingefügt werden sollen:

'Dies ist ein {0} Text mit {2} Platzhaltern, der als {1} dient' -f "sinnloser","Beispiel","drei"

Das Prinzip ist sehr einfach. Hinter dem -f folgen 3 Strings, die durch Kommas getrennt sind. Die Strings werden von 0 ab durchgezählt und in die entsprechenden Platzhalter eingefügt. Das Ergebnis lautet also:

Dies ist ein sinnloser Text mit drei Platzhaltnern, der als Beispiel dient. 

Das kann man sich zunutze machen, um Texte einfach mit beliebigen Zeichen zu umschliessen: 

Weiterlesen
0 Kommentare

Excel-Tastaturtipps

Als IT-Trainer werde ich oft nach Tastaturtipps gefragt. Wer da wirklich möglichst flächendeckend versorgt werden möchte, sollte - Achtung, nicht lachen - mal den Begriff Tastenkombinationen in der Excel-Hilfe eingeben.

Trotzdem schreibe ich hier mal einige meiner Favoriten auf:

Strg + A --> Tabelle oder Arbeitsblatt markieren
Strg + POS1 --> Nach oben links springen (meistens A1)
Strg + Ende --> letzte benutzte Zelle im Bereich aufrufen
Strg + Enter --> Alle markierten Zellen mit dem getippten Inhalt füllen
Strg + . --> Aktuelles Datum einfügen (statisch)
Strg + : --> Aktuelle Uhrzeit einfügen (statisch)
Strg + + --> Zellen einfügen
Strg + - --> Zellen löschen
Strg + G --> Gehe zu (--> Inhalte!)
Strg + ALT + V --> Inhalte einfügen
ALT + Enter --> Zeilenumbruch in Zelle

Viel Spaß! Dirk Röllecke

0 Kommentare

Fotografieren in Excel?

Was man mit dem Kameratool in Excel erreichen kann (alle Excel-Versionen, Beschreibung gilt ab Excel 2007)

Ich bin neulich mal wieder über einen eigentlich alten Excel-Befehl gestolpert, der aber eventuell auch in Zeiten von Menübändern und Screenshots durchaus sinnvoll sein kann. Zunächst muss man dazu (mit Rechtsklick) seine Symbolleiste für den Schnellzugriff anpassen. Im Optionen-Fenster bei "Befehle auswählen" "alle Befehle" anklicken und die Kamera suchen. Per Doppelklick in die Symbolleiste für den Schnellzugriff hinzufügen und mit OK bestätigen.

Mit diesem Befehl kann man nun markierte Excel-Zellen fotografieren. Klickt man dann an eine andere Stelle in der Datei (oder auch in eine andere Excel-Datei), wir ein verknüpftes Bild der markierten Zellen eingefügt.

Das ist nicht dasselbe wie verknüpfte Zellinhalte (weil es ja ein Bild ist) und auch kein Screenshot oder ein Bild wie man es beim Kopieren mit "Als Bild kopieren" vorfindet, denn letztere sind statisch, weil nicht verknüpft.

Tut sich nur noch die Frage auf: Was könnte es zu dieser Lösung für ein Problem geben? Naja, ich stelle mir z.B. eine Diagrammsammlung vor, die man aus verschiedenen Dateien zusammengestellt hat. Da könnte man sich z.B. mit der Kamera ein Bild der Originaldaten dazulegen, damit man eine Kontrolle hat, ohne in die Originaldatei wechseln zu müssen. Vielleicht hat für Sie aber auch ein verknüpftes Bild von Excel-Daten einen in ihm wohnenden Charme…

Weiterlesen
0 Kommentare

Cmdlets mit gleichem Namen beim Aufruf unterscheiden

Powershell-Module machen das Nachrüsten von Cmdlets einfach, aber was tun, wenn zwei Cmdlets mit unterschiedlicher Funktion den gleichen Namen haben?

Beim Erstellen von Cmdlets hat Microsoft eine Reihe von Vorgaben definiert, um das Cmdlet zu bennen. So sollen alle Cmdlets mit einem Verb aus einer vordefinierte Liste (Get-Verb listet die erlaubten Verben auf) erstellt werden. Außerdem soll das Cmdlet aus dem Namen erkennen lassen, was es tut. Das kann aber zu einem Problem führen: Wenn man Cmdlets unterschiedlicher Quellen verwendet, können prinzipiell Cmdlets mit gleichem Namen aber unterschiedlicher Funktion auftreten. Im .Net Framework löst man dieses Problem über Namensräume, aber die gibt es bei Powershell nicht.

Die zwei elegantesten Lösungen sind, entweder beim Aufrufen des Cmdlets den Modulnamen vor dem Cmdlet zu setzen:

Hyper-V\get-vm

oder beim Import des Moduls ein Prefix für die Cmdlets zu definieren. Hierbei muß der Import aber vor dem ersten Anwenden eines Cmdlets aus dem Modul erfolgen, weil die Cmdlets sonst doppelt importiert werden:

Import-Module -Name Hyper-V -Prefix HV

Weiterlesen
0 Kommentare

Wissen testen (Word und Excel 2013)

Wenn Sie Spaß an Tests mit Word oder Excel haben, schauen Sie doch mal beim Herdt-Verlag vorbei.

Der für IT- und andere Trainingsunterlagen renommierte Herdt-Verlag hat auf seinen Web-Seiten für Word und Excel jeweils 30 Fragen umfassende Wissenstests veröffentlicht, die man bei Bedarf auch downloaden kann.

Falls Sie an so etwas Spaß und ein wenig Zeit haben, probieren Sie sich gerne einmal an den Tests, aber Vorsicht: ganz einfach sind die nicht...

Hier gelangen Sie zur WebSeite: http://www.herdt.de/office-quiz

Viel Spaß!

Dirk Röllecke

0 Kommentare

By accepting you will be accessing a service provided by a third-party external to https://www.netz-weise-it.training/

Nach oben