Ενδέχεται να διακοπεί η λειτουργία του, εμφανίζει "Δεν υπάρχει" για άλλες ειδοποιήσεις ή απαιτεί πολύ χρόνο για να εμφανίσετε την κατάσταση ασφαλείας και άλλες ειδοποιήσεις του Windows SBS κονσόλας του Windows πεζό Business Server 2008

Ισχύει για: Windows Small Business ServerWindows Small Business Server 2008 StandardWindows Small Business Server 2008 Premium

Συμπτώματα


Του Windows SBS κονσόλας του Windows πεζό Business Server 2008 ενδέχεται να εμφανίσει ένα ή περισσότερα από τα ακόλουθα συμπτώματα.

Σύμπτωμα 1

Εμφανίζεται η κατάσταση Δεν είναι διαθέσιμη σε Άλλες ειδοποιήσεις στην ενότητα Σύνοψη βασικά στοιχεία δικτύου από την κεντρική σελίδα.

Σύμπτωμα 2

Μια εξαίρεση που μοιάζει με το ακόλουθο καταγράφεται στο αρχείο Console.log:
[5164] 090620.094247.9164: Exception: --------------------------------------- An exception of type 'Type: System.Data.SqlClient.SqlException, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' has occurred. Timestamp: 06/20/2009 09:42:47 Message: Timeout expired.  The timeout period elapsed prior to completion of the operation or the server is not responding. Stack:    at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)                    at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)                    at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)                    at System.Data.SqlClient.SqlDataReader.ConsumeMetaData()                    at System.Data.SqlClient.SqlDataReader.get_MetaData()                    at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)                    at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)                    at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)                    at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)                    at System.Data.SqlClient.SqlCommand.ExecuteScalar()                    at Microsoft.WindowsServerSolutions.SystemHealth.Monitoring.MonitoringSQLDataStore.GetAlertCountPerType(ComputerType type)  

Το σύμπτωμα 3

Μετά από πολύ καιρό, τις καταστάσεις εμφανίζονται για ασφάλεια και Άλλες ειδοποιήσεις στην ενότητα Σύνοψη βασικά στοιχεία δικτύου από την κεντρική σελίδα.

Το σύμπτωμα 4

Μετά από πολύ καιρό, οι τιμές εμφανίζονται στη στήλη Κατάσταση ασφαλείας και στη στήλη " Άλλες ειδοποιήσεις " στην καρτέλα " υπολογιστές " της σελίδας " δίκτυο ".

Σύμπτωμα 5

Κατά την προσπάθειά σας να δημιουργήσετε με μη αυτόματο τρόπο μια αναφορά στην καρτέλα αναφορές , την κονσόλα του Windows SBS ενδέχεται να διακοπεί, εάν είναι επιλεγμένο το πλαίσιο ελέγχου ασφαλείας για να προσθέσετε περιεχόμενο ασφαλείας στην έκθεση.

Αιτία


Αυτό το ζήτημα παρουσιάζεται επειδή η βάση δεδομένων παρακολούθησης είναι πολύ μεγάλο. Η κονσόλα SBS των Windows δεν είναι δυνατό να ερώτημα στη βάση δεδομένων του Εποπτεία γρήγορα.

Επίλυση


Για να επιλύσετε αυτό το ζήτημα, εκτελέστε την ακόλουθη δέσμη ενεργειών του Windows PowerShell. Αυτή η δέσμη ενεργειών μειώνει τα ιστορικά δεδομένα στη βάση δεδομένων παρακολούθησης μειώνοντας τα ιστορικά δεδομένα που τηρούνται από 90 ημέρες σε 30 ημέρες. Επίσης, αυτή η δέσμη ενεργειών δημιουργεί ευρετήρια που μπορούν να χρησιμοποιηθούν για την εκτέλεση των ερωτημάτων που είναι ταχύτερη. Για να εκτελέσετε αυτήν τη δέσμη ενεργειών, ακολουθήστε τα εξής βήματα:
  1. Κάντε κλικ στο κουμπί Έναρξη, πληκτρολογήστε Σημειωματάριο (Notepad) στο πλαίσιο αναζήτησης και, στη συνέχεια, κάντε κλικ στο Σημειωματάριο (Notepad) στο αποτέλεσμα αναζήτησης.
  2. Αντιγράψτε και επικολλήστε την ακόλουθη δέσμη ενεργειών στο Σημειωματάριο (Notepad):
    cls;############################################################################ SQL Scripts#########################################################################$sqlScript = @"USE [SBSMonitoring]BEGIN TRAN T1UPDATE [SBSMonitoring].[dbo].[Settings] SET [Value] = 30 WHERE [Name] = 'CleanupPeriod'COMMIT TRAN T1SELECT N'Set CleanupPeriod to 30 days'EXECUTE [SBSMonitoring].[dbo].[CleanupDatabase]SELECT N'CleanupDatabase job done.'-- Create IndexesIF EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[WMICollectedData]') AND name = N'_SBS_BLOG_index_WMICollectedData_5_K4_K1_K5_2')DROP INDEX [_SBS_BLOG_index_WMICollectedData_5_K4_K1_K5_2] ON [dbo].[WMICollectedData] WITH ( ONLINE = OFF )CREATE NONCLUSTERED INDEX [_SBS_BLOG_index_WMICollectedData_5_K4_K1_K5_2] ON [dbo].[WMICollectedData] ([WMIPropertyID] ASC,[ID] ASC, [WMIInstanceID] ASC) INCLUDE ( [DateCollected]) WITH (SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF) ON [PRIMARY]SELECT N'Succeeded to create index _SBS_BLOG_index_WMICollectedData_5_K4_K1_K5_2'IF EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[Reports]') AND name = N'_SBS_BLOG_index_Reports_5_K2_K3_1_4')DROP INDEX [_SBS_BLOG_index_Reports_5_K2_K3_1_4] ON [dbo].[Reports] WITH ( ONLINE = OFF )CREATE NONCLUSTERED INDEX [_SBS_BLOG_index_Reports_5_K2_K3_1_4] ON [dbo].[Reports] ([ConfigurationID] ASC, [DateGenerated] ASC) INCLUDE ([ID], [Data]) WITH (SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF) ON [PRIMARY]SELECT N'Succeeded to create index _SBS_BLOG_index_Reports_5_K2_K3_1_4'IF EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[WMICollectedData]') AND name = N'_SBS_BLOG_index_WMICollectedData_5_K2D_K4_K5')DROP INDEX [_SBS_BLOG_index_WMICollectedData_5_K2D_K4_K5] ON [dbo].[WMICollectedData] WITH ( ONLINE = OFF )CREATE NONCLUSTERED INDEX [_SBS_BLOG_index_WMICollectedData_5_K2D_K4_K5] ON [dbo].[WMICollectedData] ([DateCollected] DESC, [WMIPropertyID] ASC, [WMIInstanceID] ASC) WITH (SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF) ON [PRIMARY]SELECT N'Succeeded to create index _SBS_BLOG_index_WMICollectedData_5_K2D_K4_K5'IF EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[Alerts]') AND name = N'_SBS_BLOG_index_Alerts_8_7_')DROP INDEX [_SBS_BLOG_index_Alerts_8_7_] ON [dbo].[Alerts] WITH ( ONLINE = OFF )CREATE INDEX [_SBS_BLOG_index_Alerts_8_7_] ON [SBSMonitoring].[dbo].[Alerts] ([DefinitionID], [ComputerID]) INCLUDE ([DateOccured])SELECT N'Succeeded to create index _SBS_BLOG_index_Alerts_8_7_'-- Create StatisticsIF EXISTS (SELECT * FROM sys.stats WHERE object_id = OBJECT_ID(N'[dbo].[WMICollectedData]') AND name = N'_SBS_BLOG_stat_WMICollectedData_5_1_4')DROP STATISTICS [dbo].[WMICollectedData].[_SBS_BLOG_stat_WMICollectedData_5_1_4]CREATE STATISTICS [_SBS_BLOG_stat_WMICollectedData_5_1_4] ON [dbo].[WMICollectedData]([WMIInstanceID], [ID], [WMIPropertyID])SELECT N'Succeeded to create statistics _SBS_BLOG_stat_WMICollectedData_5_1_4'IF EXISTS (SELECT * FROM sys.stats WHERE object_id = OBJECT_ID(N'[dbo].[WMICollectedData]') AND name = N'_SBS_BLOG_dta_stat_WMICollectedData_4_1_5_2_3')DROP STATISTICS [dbo].[WMICollectedData].[_SBS_BLOG_dta_stat_WMICollectedData_4_1_5_2_3]CREATE STATISTICS [_SBS_BLOG_dta_stat_WMICollectedData_4_1_5_2_3] ON [dbo].[WMICollectedData]([WMIPropertyID], [ID], [WMIInstanceID], [DateCollected], [StatusID])SELECT N'Succeeded to create statistics _SBS_BLOG_dta_stat_WMICollectedData_4_1_5_2_3'IF EXISTS (SELECT * FROM sys.stats WHERE object_id = OBJECT_ID(N'[dbo].[WMICollectedData]') AND name = N'_SBS_BLOG_dta_stat_WMICollectedData_5_1_3_4')DROP STATISTICS [dbo].[WMICollectedData].[_SBS_BLOG_dta_stat_WMICollectedData_5_1_3_4]CREATE STATISTICS [_SBS_BLOG_dta_stat_WMICollectedData_5_1_3_4] ON [dbo].[WMICollectedData]([WMIInstanceID], [ID], [StatusID], [WMIPropertyID])SELECT N'Succeeded to create statistics _SBS_BLOG_dta_stat_WMICollectedData_5_1_3_4'IF EXISTS (SELECT * FROM sys.stats WHERE object_id = OBJECT_ID(N'[dbo].[WMICollectedData]') AND name = N'_SBS_BLOG_dta_stat_WMICollectedData_5_4_2')DROP STATISTICS [dbo].[WMICollectedData].[_SBS_BLOG_dta_stat_WMICollectedData_5_4_2]CREATE STATISTICS [_SBS_BLOG_dta_stat_WMICollectedData_5_4_2] ON [dbo].[WMICollectedData]([WMIInstanceID], [WMIPropertyID], [DateCollected])SELECT N'Succeeded to create statistics _SBS_BLOG_dta_stat_WMICollectedData_5_4_2'IF EXISTS (SELECT * FROM sys.stats WHERE object_id = OBJECT_ID(N'[dbo].[WMICollectedData]') AND name = N'_SBS_BLOG_stat_WMICollectedData_2_1_5')DROP STATISTICS [dbo].[WMICollectedData].[_SBS_BLOG_stat_WMICollectedData_2_1_5]CREATE STATISTICS [_SBS_BLOG_stat_WMICollectedData_2_1_5] ON [dbo].[WMICollectedData]([DateCollected], [ID], [WMIInstanceID])SELECT N'Succeeded to create statistics _SBS_BLOG_stat_WMICollectedData_2_1_5'IF EXISTS (SELECT * FROM sys.stats WHERE object_id = OBJECT_ID(N'[dbo].[WMICollectedData]') AND name = N'_SBS_BLOG_stat_WMICollectedData_1_3_5_2')DROP STATISTICS [dbo].[WMICollectedData].[_SBS_BLOG_stat_WMICollectedData_1_3_5_2]CREATE STATISTICS [_SBS_BLOG_stat_WMICollectedData_1_3_5_2] ON [dbo].[WMICollectedData]([ID], [StatusID], [WMIInstanceID], [DateCollected])SELECT N'Succeeded to create statistics _SBS_BLOG_stat_WMICollectedData_1_3_5_2'"@;$userInput = Read-Host -Prompt @"Before running this script, follow the instructions in the Knowledge Base article 981939 to back up your database files.  If you are ready to run the script, type the letter 'Y' to confirm that you have backed up the database, and then press 'Enter'. "@;if([System.String]::Compare($userInput, "Y", $true) -ne 0){exit;}################################################################################## Save the sql file to temp folder###############################################################################$sqlFile = [System.IO.Path]::Combine($Env:TEMP, "UpdateSBSMonitoring.sql");$sqlScript | Out-File -FilePath "$sqlFile" -Force;################################################################################## Get SBS2008 log folder###############################################################################$regKey = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WSSG";$regVal = "ProductLogDir";$sqlLogPath =[System.Environment]::ExpandEnvironmentVariables([Microsoft.Win32.Registry]::GetValue($regKey, $regVal, $null));if([System.String]::IsNullOrEmpty($sqlLogPath)){$sqlLogPath = $Env:TEMP;}$dateTime = Get-Date;$sqlLogFile = "UpdateSBSMonitoring_{1}_{0:HH}{0:mm}{0:ss}.log" -f $dateTime, $dateTime.ToShortDateString().Replace('/', '_');$sqlLogFile = [System.IO.Path]::Combine($sqlLogPath, $sqlLogFile);################################################################################## Call " SqlCmd " to execute the sql script###############################################################################$cmdPara = " -S $Env:COMPUTERNAME\SBSMonitoring -E -i `"$sqlFile`"";Write-Host ("Sqlcmd" + $cmdPara);$processStartInfo = New-Object System.Diagnostics.ProcessStartInfo("Sqlcmd", $cmdPara);$processStartInfo.UseShellExecute = $false;$processStartInfo.ErrorDialog = $true;$processStartInfo.CreateNoWindow = $true;$processStartInfo.RedirectStandardOutput = $true;$processStartInfo.RedirectStandardError = $true;$process = [System.Diagnostics.Process]::Start($processStartInfo);$startTime = [System.DateTime]::Now;$process.WaitForExit(); $finishTime = [System.DateTime]::Now;$stdOutput = $process.StandardOutput.ReadToEnd();$errOutput = $process.StandardError.ReadToEnd();if($process.ExitCode -eq 0 -and $errOutput.Length -eq 0){Write-Host $stdOutput;Write-Host "The script ran successfully."}else{Write-Host $stdOutput;Write-Host $errOutput;Write-Host "An error occurred while running the script. For details about this error, see the log file at $sqlLogFile.";}[System.String]::Join([System.Environment]::NewLine, `(("Sqlcmd" + $cmdPara), `("Started at: " + $startTime), `("Finished at:" + $finishTime), `"Standard Output: ", $stdOutput, `"Error Output: ", $errOutput))| Out-File $sqlLogFile -Force;
  3. Αποθηκεύστε το αρχείο χρησιμοποιώντας το ακόλουθο όνομα αρχείου:
    KB981939.ps1.
    Σημείωση Συνιστάται να αποθηκεύσετε το αρχείο σε μια θέση που μπορείτε να προσπελάσετε εύκολα. Για παράδειγμα, αποθηκεύστε το αρχείο του φακέλου C:\windows\temp .
  4. Δημιουργήστε αντίγραφα ασφαλείας των αρχείων βάσης δεδομένων παρακολούθησης . Για να το κάνετε αυτό, ακολουθήστε τα εξής βήματα:
    1. Κάντε κλικ στο κουμπί Έναρξη, πληκτρολογήστε Services.msc στο πλαίσιο αναζήτησης , κάντε δεξιό κλικ services.msc στο αποτέλεσμα αναζήτησης, και στη συνέχεια κάντε κλικ στην εντολή Εκτέλεση ως διαχειριστής.
      UAC Εάν σας ζητηθεί κωδικός πρόσβασης διαχειριστή ή επιβεβαίωση, πληκτρολογήστε τον κωδικό πρόσβασης ή δώστε επιβεβαίωση.
    2. Εντοπίστε την υπηρεσία SQL Server (SBSMONITORING) .
    3. Κάντε δεξιό κλικ στην υπηρεσία SQL Server (SBSMONITORING) και, στη συνέχεια, κάντε κλικ στο κουμπί Διακοπή.
    4. Αντίγραφα ασφαλείας των αρχείων στον ακόλουθο φάκελο:
      C:\Program αρχεία (x86) \Microsot SQL Server\MSSQL.1\MSSQL\Data
    5. Κάντε δεξιό κλικ στην υπηρεσία SQL Server (SBSMONITORING) και, στη συνέχεια, κάντε κλικ στο κουμπί Έναρξη.
  5. Κάντε κλικ στο κουμπί Έναρξη, να PowerShell , πληκτρολογήστε στο πλαίσιο αναζήτησης , κάντε δεξιό κλικ σε Λειτουργικές μονάδες του Windows PowerShell στο αποτέλεσμα αναζήτησης και, στη συνέχεια, κάντε κλικ στην εντολή Εκτέλεση ως διαχειριστής.
    UAC Εάν σας ζητηθεί κωδικός πρόσβασης διαχειριστή ή επιβεβαίωση, πληκτρολογήστε τον κωδικό πρόσβασης ή δώστε επιβεβαίωση.
  6. Στο παράθυρο του Windows PowerShell ενότητες , να αλλάξετε τον τρέχοντα κατάλογο στη θέση όπου αποθηκεύσατε το αρχείο KB981939.ps1.
  7. Πληκτρολογήστε την ακόλουθη εντολή για να εκτελέσετε τη δέσμη ενεργειών του Windows PowerShell και, στη συνέχεια, πιέστε το πλήκτρο ENTER:
    .\kb981939.ps1
    Σημείωση Πρέπει να ρυθμίσετε την πολιτική εκτέλεσης PowerShell των Windows για να επιτρέψετε τις δέσμες ενεργειών για να εκτελέσετε πριν να εκτελέσετε αυτήν την εντολή. Διαφορετικά, λαμβάνετε το ακόλουθο μήνυμα λάθους, όταν εκτελείτε την εντολή:
    Το αρχείο C:\KB981939.ps1 δεν μπορεί να φορτωθεί επειδή η εκτέλεση δεσμών ενεργειών είναι απενεργοποιημένη σε αυτό το σύστημα. Ανατρέξτε στην "get-Βοήθεια about_signing" για περισσότερες λεπτομέρειες.
    Για περισσότερες πληροφορίες σχετικά με τον τρόπο ρύθμισης παραμέτρων της πολιτικής εκτέλεσης του Windows PowerShell, επισκεφθείτε την ακόλουθη τοποθεσία της Microsoft TechNet στο Web:
  8. Πληκτρολογήστε Y , όταν λάβετε το ακόλουθο μήνυμα:
    Πριν να εκτελέσετε αυτήν τη δέσμη ενεργειών, ακολουθήστε τις οδηγίες του άρθρου της Γνωσιακής Βάσης της Microsoft 981939t για να δημιουργήσετε αντίγραφα ασφαλείας των αρχείων βάσης δεδομένων.
    Εάν είστε έτοιμοι να εκτελέσετε τη δέσμη ενεργειών, πληκτρολογήστε το γράμμα "Y" για να επιβεβαιώσετε ότι έχετε δημιουργήσει αντίγραφα ασφαλείας της βάσης δεδομένων και, στη συνέχεια, πιέστε το πλήκτρο 'Enter'.
    Σημείωση Εάν η βάση δεδομένων παρακολούθησης είναι πολύ μεγάλο, η δέσμη ενεργειών μπορεί να εκτελεστεί για 10 λεπτά ή περισσότερο χρόνο. Εάν η δέσμη ενεργειών δεν εκτελείται με επιτυχία, πρέπει να επαναφέρετε το αντίγραφο ασφαλείας των αρχείων βάσης δεδομένων παρακολούθησης .