Beranda » bagaimana » Cara Menghasilkan Nama Acak & Nomor Telepon dengan PowerShell

    Cara Menghasilkan Nama Acak & Nomor Telepon dengan PowerShell

    Ketika Anda membutuhkan kumpulan data untuk pengujian atau demonstrasi, dan kumpulan itu perlu mewakili Informasi Identifikasi Pribadi (PII), Anda biasanya tidak ingin menggunakan data nyata yang mewakili orang-orang yang sebenarnya. Di sini, kami akan memandu Anda melalui bagaimana Anda dapat menggunakan PowerShell untuk menghasilkan daftar nama acak dan nomor telepon untuk kesempatan seperti itu.

    Apa yang kau butuhkan

    Sebelum Anda mulai, ada beberapa alat dan informasi yang harus Anda miliki:

    PowerShell

    Script ini dikembangkan menggunakan PowerShell 4.0, dan juga telah diuji kompatibilitasnya dengan PowerShell 2.0. PowerShell 2.0 atau yang lebih baru telah terintegrasi dengan Windows sejak Windows 7. Ini juga tersedia untuk Windows XP dan Vista sebagai bagian dari Windows Management Framework (WMF). Beberapa perincian lebih lanjut, dan tautan untuk unduhan, ada di bawah ini.

    • PowerShell 2.0 hadir dengan Windows 7. Pengguna Windows XP SP3 dan Vista (SP1 atau yang lebih baru) dapat mengunduh versi WMF yang sesuai dari Microsoft di KB968929. Itu tidak didukung pada XP SP2 atau di bawah, atau Vista tanpa SP1.
    • PowerShell 4.0 hadir dengan Windows 8.1. Pengguna Windows 7 SP1 dapat memutakhirkannya sebagai bagian dari pembaruan WMF dari Pusat Unduhan Microsoft. Ini tidak tersedia untuk XP atau Vista.

    Nama

    Anda perlu beberapa daftar nama untuk dimasukkan ke generator acak. Sumber yang bagus untuk a banyak nama, dan informasi mengenai popularitas mereka (meskipun itu tidak akan digunakan untuk skrip ini), adalah Biro Sensus Amerika Serikat. Daftar yang tersedia di tautan di bawah ini sangat besar, jadi Anda mungkin ingin memangkasnya sedikit jika Anda berencana untuk menghasilkan banyak nama dan angka sekaligus. Pada sistem pengujian kami, setiap pasangan nama / nomor memerlukan waktu sekitar 1,5 detik untuk menghasilkan menggunakan daftar lengkap tetapi jarak tempuh Anda akan bervariasi tergantung pada spesifikasi sistem Anda sendiri.

    • Nama keluarga
    • Nama Depan Pria
    • Nama Depan Wanita

    Apa pun sumber yang Anda gunakan, Anda perlu membuat tiga file teks yang dapat digunakan skrip sebagai kumpulan untuk pemilihan namanya. Setiap file hanya boleh berisi nama, dan hanya satu nama per baris. Ini perlu disimpan dalam folder yang sama dengan skrip PowerShell Anda.

    Surnames.txt harus berisi nama keluarga tempat skrip ingin Anda pilih. Contoh:

    Smith Johnson Williams Jones Brown

    Males.txt harus berisi nama depan pria yang ingin Anda pilih skripnya. Contoh:

    James John Robert Michael William

    Wanita.txt harus berisi nama depan wanita yang Anda inginkan untuk memilih skrip. Contoh:

    Mary Patricia Linda Barbara Elizabeth

    Aturan untuk Nomor Telepon

    Jika Anda ingin memastikan nomor telepon Anda tidak cocok dengan nomor telepon asli siapa pun, cara termudah adalah dengan menggunakan "555" Exchange Code yang terkenal. Tetapi jika Anda akan menunjukkan kumpulan data dengan banyak nomor telepon, 555 itu akan mulai terlihat sangat monoton dengan sangat cepat. Agar lebih menarik, kami akan membuat nomor telepon lain yang melanggar aturan North American Numbering Plan (NANP). Berikut adalah beberapa contoh nomor telepon yang tidak valid, mewakili setiap kelas nomor yang akan dihasilkan oleh skrip ini:

    • (157) 836-8167
      Nomor ini tidak valid karena Kode Area tidak dapat dimulai dengan angka 1 atau 0.
    • (298) 731-6185
      Nomor ini tidak valid karena NANP tidak menetapkan kode area dengan 9 sebagai digit kedua.
    • (678) 035-7598
      Nomor ini tidak valid karena Exchange Codes tidak dapat dimulai dengan 1 atau 0.
    • (752) 811-1375
      Nomor ini tidak valid karena Exchange Codes tidak dapat diakhiri dengan dua 1s.
    • (265) 555-0128
      Nomor ini tidak valid karena Kode Pertukaran adalah 555, dan ID Pelanggan berada dalam kisaran yang disediakan untuk nomor fiktif.
    • (800) 555-0199
      Nomor ini adalah satu-satunya nomor 800 dengan 555 Kode Pertukaran yang dicadangkan untuk digunakan sebagai nomor fiktif.

    Perhatikan bahwa aturan di atas dapat berubah dan dapat berbeda menurut yurisdiksi. Anda harus melakukan riset sendiri untuk memverifikasi aturan saat ini yang berlaku untuk lokal di mana Anda akan menghasilkan nomor telepon.

    Perintah Umum

    Ada beberapa perintah yang cukup umum yang akan digunakan di seluruh skrip ini, jadi Anda harus mendapatkan ide dasar tentang arti semua ini sebelum kita benar-benar menuliskannya.

    • ForEach-Object mengambil larik, atau daftar, objek dan melakukan operasi yang ditentukan pada masing-masing. Dalam blok skrip ForEach-Object, variabel $ _ digunakan untuk merujuk ke item saat ini sedang diproses.
    • jika… lain pernyataan memungkinkan Anda untuk melakukan operasi hanya jika kondisi tertentu terpenuhi, dan (opsional) menentukan apa yang harus dilakukan ketika kondisi itu tidak terpenuhi.
    • beralih pernyataan seperti jika pernyataan dengan lebih banyak pilihan. Switch akan memeriksa objek terhadap beberapa kondisi, dan menjalankan blok skrip apa pun yang ditentukan untuk kondisi yang cocok dengan objek tersebut. Anda juga dapat, secara opsional, menentukan blok default yang hanya akan berjalan jika tidak ada kondisi lain yang cocok. Beralih pernyataan juga menggunakan variabel $ _ untuk merujuk ke item saat ini sedang diproses.
    • sementara pernyataan memungkinkan Anda untuk terus mengulangi blok skrip selama kondisi tertentu terpenuhi. Setelah sesuatu terjadi yang menyebabkan kondisi tidak lagi benar ketika blok skrip selesai, loop keluar.
    • coba tangkap pernyataan membantu dengan penanganan kesalahan. Jika ada yang salah dengan blok skrip yang ditentukan untuk dicoba, blok tangkap akan berjalan.
    • Dapatkan-Konten melakukan apa yang tertulis di kaleng. Ia mendapat konten dari objek yang ditentukan - biasanya file. Ini dapat digunakan untuk menampilkan konten file teks di konsol atau, seperti dalam skrip ini, meneruskan konten di sepanjang pipa untuk digunakan dengan perintah lain.
    • Tuan Rumah Penulis menempatkan barang di konsol. Ini digunakan untuk menyajikan pesan kepada pengguna, dan tidak termasuk dalam output skrip jika hasilnya dialihkan.
    • Tulis-Output sebenarnya menghasilkan output. Biasanya, ini dibuang ke konsol tetapi juga dapat diarahkan oleh perintah lain.

    Ada perintah lain dalam skrip, tetapi kami akan menjelaskannya saat kami melanjutkan.

    Membangun Naskah

    Sekarang saatnya untuk membuat tangan kita kotor.

    Bagian 1: Bersiap untuk Pergi

    Jika Anda suka skrip Anda mulai berjalan dari konsol bersih, inilah baris pertama yang Anda inginkan di dalamnya.

    Bersihkan Host

    Sekarang kita memiliki layar bersih, hal berikutnya yang ingin kita lakukan adalah memeriksa skrip untuk memastikan semua yang dibutuhkan sudah ada. Untuk melakukan itu, kita harus mulai dengan mengatakan ke mana harus mencari, dan apa yang harus dicari.

    $ ScriptFolder = Jalur-Split $ MyInvocation.MyCommand.Definition -Parent $ RequiredFiles = ('Males.txt', 'Females.txt', 'Surnames.txt')

    Baris pertama ada yang sangat berguna untuk skrip apa pun. Ini mendefinisikan variabel yang menunjuk ke folder yang berisi skrip. Ini sangat penting jika skrip Anda membutuhkan file lain yang terletak di direktori yang sama dengan dirinya (atau jalur relatif yang diketahui dari direktori itu), karena Anda akan menemukan kesalahan jika dan ketika Anda mencoba menjalankan skrip saat Anda berada di direktori lain. direktori kerja.

    Baris kedua membuat array nama file yang diperlukan agar skrip berjalan dengan benar. Kami akan menggunakan ini, bersama dengan variabel $ ScriptFolder, di bagian selanjutnya di mana kami memeriksa untuk memastikan file-file itu ada.

    $ RequiredFiles | ForEach-Object if (! (Test-Path "$ ScriptFolder \ $ _")) Write-Host "$ _ tidak ditemukan." -ForegroundColor Red $ MissingFiles ++

    Potongan skrip ini mengirimkan array $ RequiredFiles ke blok ForEach-Object. Di dalam blok skrip itu, pernyataan if menggunakan Test-Path untuk melihat apakah file yang kami cari adalah tempatnya. Test-Path adalah perintah sederhana yang, ketika diberi path file, mengembalikan respons true atau false dasar untuk memberi tahu kami jika path menunjuk ke sesuatu yang ada. Tanda seru di sana adalah a tidak operator, yang membalikkan respons Test-Path sebelum meneruskannya ke pernyataan if. Jadi jika Test-Path mengembalikan false (yaitu, file yang kami cari tidak ada), itu akan dikonversi menjadi true sehingga pernyataan if akan mengeksekusi blok skripnya.

    Hal lain yang perlu diperhatikan di sini, yang akan sering digunakan dalam skrip ini, adalah penggunaan tanda kutip ganda dan bukan tanda kutip tunggal. Ketika Anda memasukkan sesuatu dalam tanda kutip tunggal, PowerShell memperlakukannya sebagai string statis. Apa pun yang ada dalam kutipan tunggal akan diteruskan persis apa adanya. Kutipan ganda memberi tahu PowerShell untuk menerjemahkan variabel dan beberapa item khusus lainnya dalam string sebelum meneruskannya. Di sini, tanda kutip ganda berarti bahwa alih-alih berjalan Jalur Tes '$ ScriptFolder \ $ _'  kita sebenarnya akan melakukan sesuatu yang lebih disukai Jalur Uji 'C: \ Scripts \ Surnames.txt' (dengan asumsi skrip Anda ada di C: \ Script, dan ForEach-Object saat ini sedang mengerjakan 'Surnames.txt').

    Untuk setiap file yang tidak ditemukan, Write-Host akan memposting pesan kesalahan berwarna merah untuk memberi tahu Anda file mana yang hilang. Kemudian ia menambahkan variabel $ MissingFiles yang akan digunakan di bagian berikutnya, untuk membuat kesalahan dan berhenti jika ada file yang hilang.

    if ($ MissingFiles) Write-Host "Tidak dapat menemukan file sumber $ MissingFiles. Batalkan skrip." -ForegroundColor Red Remove-Variable ScriptFolder, RequiredFiles, MissingFiles Exit

    Berikut ini trik lain yang bisa Anda lakukan dengan pernyataan if. Sebagian besar panduan Anda akan melihat apakah pernyataan akan memberitahu Anda untuk menggunakan operator untuk memeriksa kondisi yang cocok. Misalnya, di sini kita bisa menggunakan if ($ MissingFiles -gt 0) untuk melihat apakah $ MissingFiles lebih besar dari nol. Namun, jika Anda sudah menggunakan perintah yang mengembalikan nilai boolean (seperti pada blok sebelumnya di mana kami menggunakan Test-Path) itu tidak perlu. Anda juga dapat melakukannya tanpanya dalam kasus seperti ini, ketika Anda hanya menguji untuk melihat apakah suatu angka bukan nol. Setiap angka non-nol (positif atau negatif) diperlakukan sebagai benar, sedangkan nol (atau, seperti yang mungkin terjadi di sini, variabel tidak ada) akan diperlakukan sebagai false.

    Jika $ MissingFiles ada, dan tidak nol, Write-Host akan memposting pesan yang memberitahu Anda berapa banyak file yang hilang dan skrip akan dibatalkan. Kemudian, Remove-Variable akan membersihkan semua variabel yang telah kita buat dan Exit akan keluar dari skrip. Di konsol PowerShell biasa, Remove-Variable tidak benar-benar diperlukan untuk tujuan khusus ini karena variabel yang ditetapkan oleh skrip biasanya dibuang ketika skrip keluar. Namun, ISE PowerShell berperilaku sedikit berbeda sehingga Anda mungkin ingin menyimpan ini jika Anda berencana menjalankan skrip dari sana.

    Jika semuanya beres, skrip akan dilanjutkan. Satu lagi persiapan yang harus dilakukan adalah alias yang nantinya akan kita sukai.

    Alias-Baru g Dapatkan-Acak

    Alias ​​digunakan untuk membuat nama alternatif untuk perintah. Ini dapat berguna untuk membantu kami berkenalan dengan antarmuka baru (mis .: PowerShell memiliki alias bawaan seperti dir -> Get-ChildItem dan cat -> Dapatkan-Konten) atau untuk membuat referensi tangan pendek untuk perintah yang sering digunakan. Di sini, kami membuat sangat referensi tangan pendek untuk Dapatkan-Acak perintah yang akan banyak digunakan nanti.

    Get-Random cukup banyak sesuai dengan namanya. Diberikan array (seperti daftar nama) sebagai input, ia mengambil item acak dari array dan meludahkannya. Ini juga dapat digunakan untuk menghasilkan angka acak. Yang perlu diingat tentang Get-Random dan angka adalah bahwa, seperti banyak operasi komputer lainnya, ia mulai menghitung dari nol. Jadi, bukannya Dapatkan-Acak 10 yang berarti lebih alami "beri aku angka dari 1 hingga 10" itu benar-benar berarti "beri aku angka dari 0 hingga 9." Anda bisa lebih spesifik tentang pemilihan nomor, sehingga Get-Random berperilaku lebih seperti Anda alami harapkan, tetapi kita tidak membutuhkannya dalam skrip ini.

    Bagian 2: Mendapatkan Input Pengguna dan Mulai Bekerja

    Meskipun skrip yang menghasilkan hanya satu nama acak & nomor telepon itu bagus, jauh lebih baik jika skrip memungkinkan pengguna untuk menentukan berapa banyak nama & nomor yang ingin mereka dapatkan dalam satu batch. Sayangnya, kami tidak dapat benar-benar mempercayai pengguna untuk selalu memberikan input yang valid. Jadi, ada sedikit lebih dari ini $ UserInput = Read-Host.

    while (! $ ValidInput) try [int] $ UserInput = Read-Host -Prompt 'Item yang akan dihasilkan' $ ValidInput = $ true catch Host-Host 'Input tidak valid. Masukkan nomor saja. ' -ForegroundColor Red

    Pernyataan while di atas memeriksa, dan meniadakan, nilai $ ValidInput. Selama $ ValidInput salah, atau tidak ada, itu akan terus berulang melalui blok skripnya.

    Pernyataan coba mengambil input pengguna, melalui Read-Host, dan mencoba untuk mengubahnya menjadi nilai integer. (Itu adalah [int] sebelum Read-Host.) Jika itu berhasil, itu akan menetapkan $ ValidInput ke true sehingga loop sementara dapat keluar. Jika tidak berhasil, blok tangkapan memposting kesalahan dan, karena $ ValidInput tidak disetel, loop sementara akan kembali dan meminta pengguna lagi.

    Setelah pengguna memberikan nomor dengan benar, kami ingin skrip mengumumkan bahwa itu akan mulai benar-benar melakukan pekerjaannya dan kemudian mulai melakukannya.

    Host-Tulis "'n Menghasilkan $ UserInput nama & nomor telepon. Harap bersabar." 1 ... $ UserInput | ForEach-Object 

    Jangan khawatir, kami tidak akan membiarkan Anda sendiri untuk mencari tahu kode nama & nomor pembuat acak. Itu hanya komentar placeholder untuk menunjukkan kepada Anda di mana bagian selanjutnya (di mana pekerjaan yang sebenarnya dilakukan) akan cocok.

    Baris Write-Host cukup mudah. Itu hanya mengatakan berapa banyak nama dan nomor telepon yang akan dihasilkan skrip, dan meminta pengguna untuk bersabar sementara skrip melakukan tugasnya. Itu'n pada awal dan akhir string adalah memasukkan baris kosong sebelum dan sesudah output, hanya untuk memberinya beberapa pemisahan visual antara jalur input dan daftar nama & angka. Ketahuilah bahwa itu adalah tanda centang-kembali (AKA “aksen kubur” - biasanya tab kunci di atas, di sebelah kiri 1) dan bukan tanda kutip atau tanda kutip tunggal di depan masing-masing n.

    Bagian selanjutnya menunjukkan cara yang berbeda Anda bisa menggunakan loop ForEach-Object. Biasanya, ketika Anda ingin blok skrip dijalankan beberapa kali, Anda akan mengatur perulangan seperti biasa untuk ($ x = 1; $ x -le $ UserInput; $ x ++) . ForEach-Object memungkinkan kita menyederhanakan ini dengan memberinya daftar bilangan bulat dan, alih-alih mengatakannya untuk benar-benar melakukan sesuatu dengan bilangan bulat itu, kita hanya memberinya blok skrip statis untuk dijalankan sampai kehabisan bilangan bulat untuk melakukannya untuk.

    Bagian 3: Menghasilkan Nama Acak

    Membuat nama adalah bagian paling sederhana dari sisa proses ini. Ini hanya terdiri dari tiga langkah: Memilih nama keluarga, memilih jenis kelamin, dan memilih nama depan. Ingat alias itu yang kami buat untuk Get-Random sementara? Saatnya mulai menggunakannya.

        $ Surname = Dapatkan-Konten "$ ScriptFolder \ Surnames.txt" | g $ Male = g 2 if ($ Male) $ FirstName = Dapatkan-Konten "$ ScriptFolder \ Males.txt" | g else $ FirstName = Dapatkan-Konten "$ ScriptFolder \ Females.txt" | g

    Baris pertama mengambil daftar nama keluarga kami, memasukkannya ke pemilih acak, dan menetapkan nama yang dipilih ke $ Nama Keluarga.

    Baris kedua memilih jenis kelamin orang kita. Ingat bagaimana Get-Random mulai menghitung dari nol, dan bagaimana nol itu salah dan yang lainnya benar? Itulah cara kami menggunakan Dapatkan-Acak 2 (atau yang jauh lebih pendek g 2 terima kasih kepada alias kami - keduanya menghasilkan pilihan antara nol atau satu) untuk memutuskan apakah orang kami laki-laki atau tidak. Pernyataan if / else sesudahnya secara acak memilih nama depan pria atau wanita.

    Bagian 4: Menghasilkan Nomor Telepon Acak

    Inilah bagian yang sangat menyenangkan. Sebelumnya, kami menunjukkan kepada Anda bagaimana ada beberapa cara Anda dapat membuat nomor telepon yang tidak valid atau fiktif. Karena kami tidak ingin semua angka kami terlihat terlalu mirip satu sama lain, kami akan secara acak memilih format angka yang tidak valid setiap kali. Format yang dipilih secara acak akan ditentukan oleh Kode Area dan Kode Pertukaran mereka, yang secara kolektif akan disimpan sebagai $ Awalan.

        $ NumberFormat = g 5 switch ($ NumberFormat) 0 $ Prefix = "($ (g 2) $ (g 10) $ (g 10)) $ (g 10) $ (g 10) $ (g 10)"  1 $ Prefix = "($ (g 10) 9 $ (g 10)) $ (g 10) $ (g 10) $ (g 10)" 2 $ Prefix = "($ (g 10) $ (g 10) $ (g 10)) $ (g 2) $ (g 10) $ (g 10) " 3 $ Prefix =" ($ (g 10) $ (g 10) $ (g 10)) $ (g 10) 11 " 4 $ Prefix =" ($ (g 10) $ (g 10) $ (g 10)) 555 "

    Baris pertama adalah pembuatan nomor acak secara langsung untuk memilih format mana yang akan kita ikuti untuk nomor telepon. Kemudian, pernyataan peralihan mengambil pilihan acak itu dan menghasilkan $ Prefiks yang sesuai. Ingat daftar jenis nomor telepon yang tidak valid? Nilai $ NumberFormat 0-3 sesuai dengan empat pertama dalam daftar itu. Nilai 4 dapat menghasilkan salah satu dari dua yang terakhir, karena keduanya menggunakan "555" Exchange Code.

    Di sini, Anda juga dapat melihat kami menggunakan trik lain dengan tanda kutip ganda. Kutipan ganda tidak hanya membiarkan Anda menafsirkan variabel sebelum string mendapatkan output - mereka juga membiarkan Anda memproses blok skrip. Untuk melakukannya, Anda membungkus blok skrip seperti ini: “$ ()”. Jadi apa yang Anda miliki di atas adalah banyak digit acak satu per satu, dengan beberapa dari mereka terbatas dalam jangkauannya atau ditetapkan secara statis sesuai dengan aturan yang perlu kita ikuti. Setiap string juga memiliki tanda kurung dan spasi seperti biasanya Anda harapkan untuk melihat dalam Kode Area dan pasangan Kode Exchange.

    Hal terakhir yang perlu kita lakukan sebelum kita siap untuk mengeluarkan nama & nomor telepon kita adalah untuk menghasilkan ID Pelanggan, yang akan disimpan sebagai $ Akhiran.

        switch ($ NumberFormat) $ _ -lt 4 $ Suffix = "$ (g 10) $ (g 10) $ (g 10) $ (g 10)" 4 switch ($ Prefix) '( 800) 555 '$ Suffix =' 0199 ' default $ Suffix = "01 $ (g 10) $ (g 10)"

    Karena aturan khusus untuk 555 angka, kita tidak bisa hanya menghasilkan empat digit acak untuk setiap akhir nomor telepon yang akan dibuat skrip kita. Jadi, saklar pertama memeriksa untuk melihat apakah kita berurusan dengan nomor 555. Jika tidak, ini menghasilkan empat digit acak. Jika nomor 555, saklar kedua memeriksa kode area 800. Jika itu cocok, hanya ada satu $ Suffix yang valid yang bisa kita gunakan. Kalau tidak, itu diperbolehkan untuk memilih dari apa pun antara 0100-0199.

    Perhatikan bahwa ada beberapa cara berbeda dari blok ini dapat ditulis, bukan seperti itu. Kedua pernyataan beralih bisa diganti dengan pernyataan if / else, karena masing-masing hanya menangani dua pilihan. Selain itu, alih-alih secara khusus memanggil "4" sebagai opsi untuk pernyataan switch pertama, "default" bisa digunakan mirip dengan bagaimana hal itu dilakukan pada detik karena itu adalah satu-satunya pilihan yang tersisa. Pilihan antara jika / selain vs. beralih, atau tempat menggunakan kata kunci default dan bukan nilai-nilai tertentu, sering kali mengarah ke masalah preferensi pribadi. Selama itu berhasil, gunakan apa pun yang paling nyaman bagi Anda.

    Sekarang saatnya untuk output.

        Keluaran Tulis "$ FirstName $ Surname $ Prefix- $ Suffix"

    Yang ini cukup sederhana karena masuk skrip. Ini hanya menampilkan nama depan dan belakang yang dipisahkan oleh spasi, lalu spasi lain sebelum nomor telepon. Di sinilah tanda hubung standar antara Kode Exchange dan ID Pelanggan ditambahkan juga.

    Braket penutup di bagian bawah adalah akhir dari loop ForEach-Object dari sebelumnya - hilangkan ini jika Anda sudah mendapatkannya.

    Bagian 5: Bersihkan dan Menjalankan Skrip

    Setelah semua pekerjaan selesai, skrip yang baik tahu cara membersihkan setelah itu sendiri. Sekali lagi, penghapusan variabel di bawah ini tidak benar-benar diperlukan jika Anda hanya akan menjalankan skrip dari konsol tetapi Anda akan menginginkannya jika Anda pernah berencana untuk menjalankannya di ISE.

    Remove-Item alias: \ g Remove-Variable ScriptFolder, RequiredFiles, Marga, Laki-laki, FirstName, NumberFormat, Awalan, Suffix, ValidInput, UserInput

    Setelah semuanya selesai, simpan skrip dengan ekstensi ".ps1" di folder yang sama dengan nama file Anda. Pastikan ExecutionPolicy Anda diatur sehingga skrip dapat berjalan, dan berputarlah.

    Berikut screenshot dari skrip yang sedang beraksi:

    Anda juga dapat mengunduh file ZIP yang berisi skrip PowerShell ini, dan file teks dengan daftar nama, dari tautan di bawah ini.

    Generator Nama acak & Nomor Telepon untuk PowerShell