發表文章

目前顯示的是有「Powershell」標籤的文章

SQL Server 2008 Job Agent 執行記錄匯出工具

(1)建立專用的低權限SQL帳號 - 可以建立一個只有讀取Job Agent記錄權限的專用SQL帳號,而非使用高權限的sa帳號。 建立SQL登入帳號 : USE [master] GO CREATE LOGIN [JobLogReader] WITH PASSWORD=N'複雜密碼', DEFAULT_DATABASE=[msdb], CHECK_EXPIRATION=ON, CHECK_POLICY=ON GO 在msdb資料庫中建立使用者 USE [msdb] GO CREATE USER [JobLogReader] FOR LOGIN [JobLogReader] GO 授予最小權限 USE [msdb] GO -- 授予讀取sysjobs和sysjobhistory表的權限 GRANT SELECT ON sysjobs TO [JobLogReader] GRANT SELECT ON sysjobhistory TO [JobLogReader] GRANT SELECT ON sysjobsteps TO [JobLogReader] GO (2) <# .SYNOPSIS 撈取SQL Server 2008 Job Agent執行狀況的LOG並匯出為.log檔案 .DESCRIPTION 此腳本用於從SQL Server 2008撈取Job Agent的執行記錄,並使用BCP命令將結果匯出為.log檔案 匯出的檔案格式與SQL Server Agent圖形介面匯出的格式相容,可再次匯入 腳本使用安全的方式處理SQL Server連線憑證,避免明碼存儲 .PARAMETER ServerInstance SQL Server的實例名稱,例如:"SERVERNAME\INSTANCENAME" .PARAMETER Database 包含Job Agent記錄的資料庫名稱,通常為"msdb" .PARAMETER Days 要撈取的天數範圍,例如:7表示撈取最近7天的記錄 .PARAMETER OutputPath 匯出的.log檔案路徑 .EXAMPLE .\Expo...

使用 PowerShell 腳本來執行 T-SQL

圖片
  使用 PowerShell 腳本來執行 T-SQL  觸發查詢並將結果使用 bcp (Bulk Copy Program) 命令導出到 .log 文件 # 定義 SQL Server 的連線資訊 $serverName = "YOUR_SERVER_NAME" $databaseName = "YOUR_DATABASE_NAME" $username = "sa" $password = "YOUR_PASSWORD" $query = "SELECT * FROM YOUR_TABLE WHERE CONDITION = 'VALUE'" # 替換為您的 T-SQL 查詢 # 設定 bcp 命令所需的查詢和導出文件路徑 $queryFile = "C:\path\to\yourQuery.sql" $outputFile = "C:\path\to\output.log" # 將 SQL 查詢寫入一個文件中 Set-Content -Path $queryFile -Value $query # 建立 bcp 命令 $bcpCommand = "bcp `"$query`" queryout $outputFile -c -t, -S $serverName -d $databaseName -U $username -P $password" # 執行 bcp 命令 Invoke-Expression $bcpCommand # 檢查輸出文件 if ( Test-Path $outputFile ) { Write-Host "文件已成功導出到: $outputFile" } else { Write-Host "導出失敗" } 定義連線參數,包括伺服器名稱、資料庫名稱、用戶名和密碼。 設定要執行的查詢和結果輸出文件的路徑。 使用 bcp 命令從 SQL Server 導出數據到指定的 .log 文件。 $query 如果很複...