Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Tingkat Keparahan : Peringatan
Status default: Selalu diaktifkan
Description
Anda harus menghindari memodifikasi variabel global dalam skrip dan fungsi Anda karena skrip atau fungsi lain yang berjalan dalam sesi yang sama dapat bergantung padanya. Hal ini dapat menyebabkan perilaku yang tidak terduga dan menyulitkan men-debug kode Anda.
Aturan ini mendeteksi penggunaan variabel dengan pengubah cakupan global. PowerShell mengontrol akses ke variabel, fungsi, alias, dan drive melalui mekanisme yang dikenal sebagai cakupan. Variabel dan fungsi yang ada saat PowerShell dimulai dibuat dalam cakupan global. Variabel cakupan global meliputi:
- Variabel otomatis
- Variabel preferensi
Aturan ini tidak mendeteksi penggunaan New-Variable cmdlet untuk membuat variabel dalam cakupan global atau cmdlet lainnya *-Variable untuk bekerja dengan variabel dalam cakupan global. Ini hanya mendeteksi ekspresi variabel dengan pengubah cakupan global, seperti $global:example.
Aturan ini tidak berlaku untuk ekspresi variabel yang menggunakan pengubah cakupan global di mana nama variabel adalah untuk variabel otomatis atau variabel preferensi.
Gunakan cakupan lokal atau skrip untuk variabel, bukan cakupan global. Untuk mempelajari lebih lanjut, lihat about_Scopes.
Example
Tidak sesuai
$var1 = 'foo'
function Test-NotGlobal ($var) {
$Global:var1 = $var
}
Test-NotGlobal 'bar'
$var1
Sesuai
$var1 = 'foo'
function Test-NotGlobal ($var) {
$var1 = $var
}
Test-NotGlobal 'bar'
$var1
Mengonfigurasi aturan
Aturan ini selalu diaktifkan dan tidak dapat dikonfigurasi. Gunakan salah satu metode berikut untuk menghindari penggunaan aturan ini:
- Buat file konfigurasi aturan kustom untuk hanya menyertakan aturan yang Anda inginkan atau kecualikan aturan yang tidak Anda inginkan.
- Tambahkan atribut penekanan aturan yang sesuai ke kode Anda untuk menekan aturan untuk blok kode tertentu. Untuk informasi selengkapnya, lihat bagian Menekan aturanMenggunakan PSScriptAnalyzer.