PowerShell ile Rasgele İsimler ve Telefon Numaraları Nasıl Üretilir
Test veya gösteri için bir veri setine ihtiyacınız olduğunda ve bu set Kişisel Olarak Tanımlanabilir Bilgileri (PII) temsil etmesi gerektiğinde, genellikle gerçek insanları temsil eden gerçek verileri kullanmak istemezsiniz. Burada, bu tür bir durum için rastgele isimlerin ve telefon numaralarının bir listesini oluşturmak için PowerShell'i nasıl kullanabileceğinizi anlatacağız..
Neye ihtiyacın var
Başlamadan önce, sahip olmanız gereken bazı araçlar ve bilgiler var:
Güç kalkanı
Bu komut dosyası PowerShell 4.0 kullanılarak geliştirilmiştir ve ayrıca PowerShell 2.0 ile uyumluluk açısından test edilmiştir. PowerShell 2.0 veya sonraki sürümleri, Windows 7'den bu yana Windows'ta yerleşiktir. Windows XP ve Vista için de Windows Management Framework'ün (WMF) bir parçası olarak bulunur. Bazı detaylar ve indirilebilecek bağlantılar aşağıdadır..
- PowerShell 2.0, Windows 7 ile birlikte gelir. Windows XP SP3 ve Vista (SP1 veya üstü) kullanıcılar, uygun WMF sürümünü Microsoft'tan KB968929'da indirebilir. XP SP2 veya altında ya da SP1 olmadan Vista'da desteklenmez.
- PowerShell 4.0, Windows 8.1 ile birlikte gelir. Windows 7 SP1 kullanıcıları, Microsoft Yükleme Merkezi'nden WMF güncellemesinin bir parçası olarak yükseltme yapabilir. XP veya Vista için mevcut değil.
İsimler
Rasgele üreteçte beslemek için bazı ad listelerine ihtiyacınız olacak. İçin harika bir kaynak çok isimleri ve popülerlikleri ile ilgili bilgiler (bu senaryo için kullanılmayacak olsa da), Amerika Birleşik Devletleri Sayım Bürosu'dur. Aşağıdaki bağlantılarda bulunan listeler çok büyüktür, bu nedenle bir kerede çok sayıda isim ve numara oluşturmayı planlıyorsanız bunları biraz kısmak isteyebilirsiniz. Test sistemimizde, her isim / sayı çifti tam listenin kullanılmasıyla yaklaşık 1,5 saniye sürdü, ancak kilometreniz kendi sistem özelliklerine bağlı olarak değişecektir..
- soyadları
- Erkek İlk İsimleri
- Kadın İlk İsimleri
Kullandığınız kaynak ne olursa olsun, komut dosyasının ad seçimi için havuz olarak kullanabileceği üç metin dosyası oluşturmanız gerekir. Her dosya yalnızca ad ve satır başına yalnızca bir ad içermelidir. Bunların PowerShell betiğinizle aynı klasörde saklanması gerekir.
Surnames.txt komut dosyasının seçmesini istediğiniz soyadlarını içermelidir. Örnek:
Smith Johnson Williams Jones Kahverengi
Males.txt Senaryonun seçmesini istediğiniz erkek isimleri içermelidir. Örnek:
James John Robert Michael William
Females.txt betiğin seçmesini istediğiniz dişi ilk adları içermelidir. Örnek:
Mary Patricia Linda Barbara Elizabeth
Telefon Numaraları için Kurallar
Telefon numaralarınızın kimsenin gerçek telefon numarasıyla aynı olmadığından emin olmak istiyorsanız, en iyi yöntem bilinen “555” Exchange Kodunu kullanmaktır. Ancak, çok sayıda telefon numarasına sahip bir veri seti gösterecekseniz, 555 oldukça hızlı bir şekilde monoton görünmeye başlayacaktır. İşleri daha ilginç hale getirmek için, Kuzey Amerika Numaralandırma Planı (NANP) kurallarını ihlal eden başka telefon numaraları üreteceğiz. Aşağıda, bu komut dosyası tarafından oluşturulacak her sayı sınıfını temsil eden geçersiz örnek telefon numaraları verilmiştir:
- (157) 836-8167
Bu numara geçersiz çünkü Alan Kodları 1 veya 0 ile başlayamaz.. - (298) 731-6185
Bu sayı geçersiz, çünkü NANP 9 ile alan kodlarını ikinci hane olarak atamıyor.. - (678) 035-7598
Bu kod geçersizdir, çünkü Exchange Kodları 1 veya 0 ile başlayamaz.. - (752) 811-1375
Bu kod geçersizdir, çünkü Exchange Kodları iki 1s ile bitemez.. - (265) 555-0128
Exchange Kodu 555 olduğundan bu numara geçersiz, ve Abone Kimliği, hayali sayılar için ayrılmış aralık içinde. - (800) 555-0199
Bu numara, hayali bir sayı olarak kullanılmak üzere ayrılmış 555 Değişim Koduna sahip tek 800 numaradır..
Yukarıdaki kuralların değişebileceğini ve yargı yetkilerine göre değişebileceğini unutmayın. Telefon numaraları üreteceğiniz yerel ayar için geçerli olan geçerli kuralları doğrulamak için kendi araştırmanızı yapmanız gerekir..
Ortak Komutlar
Bu senaryo boyunca kullanılacak oldukça yaygın bazı komutlar vardır, bu yüzden gerçekten yazarken dalmadan önce bunların ne anlama geldiğiyle ilgili temel bir fikre sahip olmalısınız..
- ForEach-Nesne nesnelerin bir dizisini veya listesini alır ve her birinde belirtilen işlemi gerçekleştirir. Bir ForEach-Object kod bloğunda, $ _ değişkeni işlenmekte olan öğeye atıfta bulunmak için kullanılır.
- eğer… başka ifadeleri bir işlemi yalnızca belirli koşullar yerine getirildiğinde gerçekleştirmenize izin verir ve (isteğe bağlı olarak) bu koşul karşılanmadığında ne yapılması gerektiğini belirtin.
- şalter ifadeler daha fazla seçenek içeren ifadeler gibidir. Geçiş, bir nesneyi çeşitli koşullara karşı kontrol eder ve nesnenin eşleştiği koşullar için belirlenmiş olan komut dosyası bloklarını çalıştırır. Ayrıca, isteğe bağlı olarak, yalnızca başka hiçbir koşul eşleşmediğinde çalışacak olan varsayılan bir blok belirleyebilirsiniz. Anahtar ifadeleri aynı zamanda $ _ değişkenini kullanarak işlenmekte olan öğeyi ifade eder.
- süre ifadeler, belirli bir koşul yerine getirildiği sürece bir komut dosyası bloğunu sürekli olarak tekrarlamanıza olanak sağlar. Kod bloğu bittiğinde koşulun artık doğru olmamasına neden olan bir şey gerçekleştiğinde, döngü çıkar.
- dene… yakala ifadeleri hata işleme konusunda yardımcı olur. Denemek için belirtilen komut dosyası bloğunda bir sorun olursa, catch bloğu çalışır.
- İçeriğe eriş teneke ne diyor yok. Belirtilen nesnenin içeriğini alır - genellikle bir dosya. Bu, bir metin dosyasının içeriğini konsolda görüntülemek veya bu komut dosyasında olduğu gibi, diğer komutlarla kullanılacak boru hattı boyunca içerikleri iletmek için kullanılabilir..
- Yaz-Sunucu konsola bir şeyler koyar. Bu, kullanıcıya mesajlar sunmak için kullanılır ve çıktı yönlendirilirse betiğin çıktısına dahil edilmez.
- Yaz-Çıktı aslında çıktı üretir. Normalde, bu konsola bırakılır ancak başka komutlar tarafından da yönlendirilebilir.
Senaryoda başka komutlar var, ama bunları giderken açıklayacağız.
Komut Dosyasını Oluşturma
Şimdi ellerini kirletme zamanı.
Bölüm 1: Gitmeye Hazırlanma
Komut dosyanızın temiz bir konsoldan yayınlanmasını istiyorsanız, istediğiniz ilk satır burada.
Temizle-Sunucu
Şimdi temiz bir ekranımız olduğuna göre, bir sonraki yapmak istediğimiz şeyin yerine oturduğundan emin olmak için senaryo kontrolünü yapmak. Bunu yapmak için nereye bakacağını ve neye bakacağını söyleyerek başlamalıyız..
$ ScriptFolder = Split-Path $ MyInvocation.MyCommand.Definition -Parent $ RequiredFiles = ('Males.txt', 'Females.txt', 'Surnames.txt')
İlk satır, herhangi bir komut dosyası için çok faydalıdır. Komut dosyasını içeren klasörü gösteren bir değişken tanımlar. Komut dosyanızın kendisiyle aynı dizinde (veya bu dizinden bilinen göreceli bir yolda) bulunan başka dosyalara ihtiyacı varsa, bu gereklidir, çünkü başka bir komut dosyasındayken komut dosyasını çalıştırmaya çalıştığınızda, hatalarla karşılaşırsınız. çalışma dizini.
İkinci satır, betiğin düzgün çalışması için gereken bir dizi dosya adı oluşturur. Bunu, $ ScriptFolder değişkeni ile birlikte, bu dosyaların mevcut olduğundan emin olmak için kontrol ettiğimiz sonraki parçada kullanacağız..
$ GerekliFiles | ForEach-Object if (! (Test-Yolu "$ ScriptFolder \ $ _")) Host-Host "$ _ bulunamadı." -ForegroundColor Red $ MissingFiles ++
Bu komut dosyası parçası, $ RequiredFiles dizisini bir ForEach-Object bloğuna gönderir. Bu kod bloğunda, if ifadesi, aradığımız dosyanın ait olduğu yerde olup olmadığını görmek için Test-Path kullanır. Test-Path, bir dosya yolu verildiğinde, yolun var olan bir şeyi gösterip göstermediğini bize bildirmek için temel bir doğru veya yanlış cevap veren basit bir komuttur. Oradaki ünlem işareti değil Test-Path yanıtını if ifadesine aktarmadan önce tersine çeviren operatör. Eğer Test-Path false döndürürse (yani, aradığımız dosya mevcut olmaz), if ifadesi script komut dosyasını çalıştıracak şekilde true değerine dönüştürülür..
Bu yazıda sıkça kullanılacak olan, burada dikkat edilmesi gereken bir başka şey, tek tırnak işaretleri yerine çift tırnak işaretleri kullanmaktır. Bir şeyi tek tırnak işaretleri içine aldığınızda, PowerShell bunu statik bir dize olarak kabul eder. Tek tırnak içinde ne varsa, aynen olduğu gibi iletilecektir. Çift tırnak, PowerShell'e değişkenleri ve dize içindeki diğer bazı özel öğeleri iletmeden önce çevirmelerini söyler. Burada, çift tırnak işareti yerine çalışan demek Test Yolu '$ ScriptFolder \ $ _' aslında daha çok gibi bir şey yapacağız Test Yolu 'C: \ Scripts \ Surnames.txt' (betiğinizin C: \ Scripts'te olduğunu ve ForEach-Object şu anda 'Surnames.txt' üzerinde çalıştığını varsayarak).
Bulunamayan her dosya için, Yazma Ana Bilgisayarı, hangi dosyanın eksik olduğunu size bildirmek için kırmızı renkte bir hata mesajı gönderir. Ardından, bir sonraki parçada kullanılacak $ MissingFiles değişkeni artar, eksik dosyalar varsa hata verir ve çıkar..
if ($ MissingFiles) Write-Host "$ MissingFiles kaynak dosyası bulunamadı. Betik iptal edildi." -ForegroundColor Kırmızı Kaldır-Değişken ScriptFolder, RequiredFiles, MissingFiles Çık
İşte if ifadeleriyle yapabileceğiniz başka bir numara. İfadelerin eşleşen bir koşulu kontrol etmek için bir operatör kullanmanıza izin verip vermeyeceğini göreceğiniz çoğu kılavuz vardır. Mesela burada kullanabiliriz eğer ($ MissingFiles -gt 0) $ MissingFiles'in sıfırdan büyük olup olmadığını görmek için. Ancak, zaten bir boolean değer döndüren komutlar kullanıyorsanız (Test-Path kullandığımız önceki blokta olduğu gibi) gerekli değildir. Bu gibi durumlarda, sadece bir sayının sıfır olmadığını görmek için test yaparken de yapabilirsiniz. Sıfır olmayan herhangi bir sayı (pozitif veya negatif) doğru olarak kabul edilirken sıfır (veya burada olduğu gibi olmayan bir değişken) yanlış olarak kabul edilir.
$ MissingFiles varsa ve sıfır değilse, Yazma Ana Bilgisayarı size kaç dosyanın eksik olduğunu ve komut dosyasının iptal edileceğini bildiren bir mesaj gönderir. Ardından Kaldır Değişkeni yarattığımız tüm değişkenleri temizler ve Çıkış komut dosyasından çıkar. Normal PowerShell konsolunda, bu değişken için Remove-Variable gerçekten gerekli değildir, çünkü scriptler tarafından ayarlanan değişkenler normalde script çıkarken atılır. Bununla birlikte, PowerShell ISE biraz farklı davranır, bu nedenle komut dosyasını oradan çalıştırmayı planlıyorsanız bunu saklamak isteyebilirsiniz.
Her şey yolundaysa komut dosyası devam edecektir. Yapılması gereken bir başka hazırlık, daha sonra sahip olmaktan memnuniyet duyacağımız bir takma addır..
Yeni-Alias g Get-Random
Diğer adlar, komutlar için alternatif adlar oluşturmak için kullanılır. Bunlar, yeni arayüzle tanışmamıza yardımcı olmak için faydalı olabilir (örn .: PowerShell gibi yerleşik takma adlara sahiptir). dir -> Get-ChildItem ve cat -> İçerik Al) veya yaygın olarak kullanılan komutlar için kısa el referansları oluşturmak. İşte, biz yapıyoruz çok için kısa el referansı Get-Random daha sonra kullanılacak olan komut.
Get-Random, adının ima ettiği şeyi yapar. Girdi olarak bir dizi (bir isim listesi gibi) verildiğinde, diziden rastgele bir öğe alır ve onu dışarı atar. Rasgele sayılar üretmek için de kullanılabilir. Get-Random ve sayılarla ilgili hatırlanması gereken şey, birçok bilgisayar işleminde olduğu gibi sıfırdan saymaya başlamasıdır. Yani yerine Rastgele 10 al daha doğal olan “bana 1'den 10'a kadar bir sayı ver” anlamına gelir, bu gerçekten “bana 0'dan 9'a kadar bir sayı ver” anlamına gelir. Sayı seçimi konusunda daha net olabilirsiniz; böylece Get-Random daha doğal bir şekilde sizin gibi davranır. Bekle, ama bu senaryoda buna ihtiyacımız olmayacak.
2. Bölüm: Kullanıcı Girişi Alma ve Çalışmaya Başlama
Sadece bir rasgele isim ve telefon numarası üreten bir script harika olsa da, betiğin kullanıcının bir grupta kaç tane isim ve numara almak istediğini belirtmesine izin vermesi çok daha iyidir. Ne yazık ki, kullanıcılara her zaman geçerli girdiler vereceğine gerçekten güvenemeyiz. Yani, bundan biraz daha fazlası var. $ UserInput = Okuma-Ana Bilgisayar.
while (! $ ValidInput) try [int] $ UserInput = Okuma-Ana Bilgisayar -Prompt 'Oluşturulacak öğeler' $ ValidInput = $ true catch Yazma-Ana Bilgisayarı 'Geçersiz giriş. Sadece bir sayı girin. ' -ForegroundColor Red
Yukarıdaki while cümlesi $ ValidInput değerini denetler ve reddeder. $ ValidInput yanlış olduğu ya da olmadığı sürece, komut dosyası bloğunda dolaşmaya devam edecek.
Try ifadesi, Read-Host aracılığıyla kullanıcı girdisini alır ve bir tamsayı değerine dönüştürmeye çalışır. (İşte [İnt] Read-Host'dan önce.) Başarılı olursa, while döngüsünün çıkabilmesi için $ ValidInput değerini true olarak ayarlar. Başarılı olmazsa, catch bloğu bir hata yayınlar ve $ ValidInput ayarlanmadığından, while döngüsü geri dönecek ve kullanıcıdan yeniden isteme yapacaktır..
Kullanıcı doğru bir şekilde girdi olarak bir sayı verdiğinde, komut dosyasının gerçekte işini yapmaya başlayacağını ve daha sonra yapmayı başaracağını duyurmasını istiyoruz..
Yazma-Host "'nBen $ $ UserInput isimleri ve telefon numaraları. Lütfen sabırlı olun.'n" 1… $ UserInput | Ön Nesne
Endişelenme, rastgele isim ve numara üreteci kodunu bulmak için seni yalnız başına bırakmayacağız. Bu, sadece bir sonraki bölümün (gerçek işin yapıldığı yer) nerelere uyacağını gösteren bir yer tutucu yorumu..
Yazma-Ana bilgisayar hattı oldukça basittir. Sadece betiğin kaç isim ve telefon numarası üreteceğini yazıyor ve betiğin çalışmasını yaparken kullanıcıdan sabırlı olmasını istiyor.'n dizgenin başlangıcında ve sonunda, çıktıdan önce ve sonra boş bir satır eklemek, girdi satırı ile adlar ve numaralar arasında görsel bir ayrım yapmak için. Bunun bir geri onay işareti olduğunu (AKA “mezar aksanı” - genellikle yukarıdaki sekme, 1'in solundaki anahtar) ve her birinin önünde kesme işareti veya tek alıntı olmadığını unutmayın. n.
Sonraki bölüm, ForEach-Object döngüsünü kullanmanın farklı bir yolunu gösterir. Genellikle, bir komut dosyası bloğunun belirli sayıda çalıştırılmasını istediğinizde, bunun gibi bir döngü için normal ayarlamalar yaparsınız. ($ x = 1; $ x -le $ UserInput; $ x ++) için. ForEach-Object bunu bir tamsayı listesi besleyerek basitleştirmemize olanak tanır ve bu tamsayılarla gerçekte bir şey yapmasını söylemek yerine, bunu yapmak için tamsayı bitene kadar çalışacak statik bir komut dosyası bloğu veririz..
Bölüm 3: Rastgele Bir Ad Oluşturma
Adı üretmek, bu işlemin geri kalanının en basit bitidir. Yalnızca üç adımdan oluşur: Bir soyadı seçmek, bir cinsiyet seçmek ve bir ilk isim seçmek. Bir süredir Get-Random için yaptığımız diğer adı hatırlıyor musun? Kullanmaya başlamanın zamanı geldi.
$ Soyadı = İçeriği Al "$ ScriptFolder \ Surnames.txt" | g $ Erkek = g 2 ise ($ Erkek) $ FirstName = İçerik Al "$ ScriptFolder \ Males.txt" | g else $ FirstName = Get-Content "$ ScriptFolder \ Females.txt" | g
İlk satır soyadı listemizi alır, rastgele seçiciye besler ve seçilen adı $ Soyadı olarak atar..
İkinci satır, kişimizin cinsiyetini seçer. Get-Random'ın sıfırdan nasıl sayılmaya başladığını ve sıfırın nasıl yanlış olduğunu ve diğer her şeyin doğru olduğunu hatırlayın. İşte biz böyle kullanıyoruz Rastgele 2 al (veya daha kısa g 2 takma ismimiz sayesinde - her ikisi de, sıfır veya bir arasında bir seçim ile sonuçlanır) kişimizin erkektir olup olmadığına karar verir. İf / else ifadesi daha sonra rasgele olarak bir erkek veya kadın adını buna göre seçer..
Bölüm 4: Rastgele Telefon Numarası Oluşturma
İşte gerçekten eğlenceli kısım. Daha önce, geçersiz ya da hayali bir telefon numarası yapmanın birkaç yolu olduğunu gösterdik. Tüm sayılarımızın birbirine çok benzemesini istemediğimiz için, her seferinde rastgele geçersiz bir sayı biçimi seçeceğiz. Rastgele seçilen formatlar, Alan Kodu ve Borsa Kodu tarafından tanımlanacak ve toplu olarak $ Prefix olarak depolanacaktır..
$ NumberFormat = g 5 anahtarı ($ NumberFormat) 0 $ Önek = "($ (g 2) $ (g 10) $ (g 10)) $ (g 10) $ (g 10) $ (g 10)" 1 $ Önek = "($ (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 $ Önek =" ($ (g 10) $ (g 10) $ (g 10)) $ (g 10) 11 " 4 $ Önek =" ($ (g 10) $ (g 10) $ (g 10)) 555 "
İlk satır, telefon numarası için hangi formatı takip edeceğimizi seçmek için basit bir rasgele sayı üretimidir. Ardından, switch ifadesi bu rastgele seçimi yapar ve buna göre bir $ Prefix üretir. Bu geçersiz telefon numarası türlerinin listesini hatırlıyor musunuz? $ NumberFormat 0-3 değerleri, bu listedeki ilk dördüne karşılık gelir. Her ikisi de “555” Exchange Kodunu kullandığından, Değer 4 son ikisinden birini oluşturabilir..
Burada, çift tırnaklı başka bir numara kullandığımızı da görebilirsiniz. Çift tırnak, bir dize çıkmadan önce değişkenleri yorumlamanıza izin vermez, ayrıca komut dosyası bloklarını işlemenize de izin verir. Bunu yapmak için, komut dosyası bloğunu şu şekilde kaydırın: “$ ()”. Öyleyse yukarıda sahip olduğunuz şey, bireysel olarak rastgele sayılara bölünmüş rakamlardır, bazıları aralıkları sınırlıdır veya uymamız gereken kurallara göre statik olarak ayarlanmıştır. Her dizgede ayrıca normalde Alan Kodu ve Değişim Kodu çifti içinde görmeyi umduğunuz gibi parantez ve boşluk vardır..
İsmimizi ve telefon numaramızı çıkarmaya hazır olmadan önce yapmamız gereken en son şey $ Suffix olarak depolanacak olan bir Abone Kimliği oluşturmaktır..
anahtarı ($ NumberFormat) $ _ -lt 4 $ Suffix = "$ (g 10) $ (g 10) $ (g 10) $ (g 10)" 4 anahtar ($ Önek) '( 800) 555 '$ Suffix =' 0199 ' varsayılan $ Suffix = "01 $ (g 10) $ (g 10)"
555 sayılar için özel kurallar nedeniyle, senaryomuzun yapacağı her telefon numarasının sonu için dört rastgele rakam üretemeyiz. Bu yüzden, ilk anahtar 555 numara ile uğraştığımızı kontrol eder. Aksi halde, dört rastgele basamak oluşturur. 555 sayı ise, ikinci anahtar 800 alan kodunu kontrol eder. Bu eşleşirse, kullanabileceğimiz tek bir geçerli $ Sonek var. Aksi takdirde, 0100-0199 arasında bir şey seçmeye izin verilir.
Bu bloğun olduğu gibi yazılmış birkaç farklı yol olduğunu unutmayın. Her iki anahtar ifadesi de if / else ifadeleriyle değiştirilmiş olabilir, çünkü her biri yalnızca iki seçeneği kullanabiliyor. Ayrıca, ilk anahtar ifadesi için bir seçenek olarak özellikle “4” olarak adlandırılmak yerine, “varsayılan”, geriye kalan tek seçenek olduğundan ikinci saniyede nasıl yapıldığına benzer şekilde kullanılabilirdi. İf / else vs. anahtarının veya belirli anahtar kelimeler yerine varsayılan anahtar kelimenin nerede kullanılacağı arasındaki seçim, genellikle kişisel tercih meselesine dayanır. Çalıştığı sürece, en rahatınız olanı kullanın.
Şimdi çıktı zamanı.
Yazma Çıktısı "$ FirstName $ Soyadı $ Önek - $ Sonek"
Bu, senaryoda yazdığı kadar basit. Sadece boşluklarla, sonra telefon numarasından önce başka bir boşlukla ayrılmış adı ve soyadı verir. İşte Exchange Kodu ve Abone Kimliği arasındaki standart çizgi de eklendiği.
Alttaki kapanış parantezi, daha önceki ForEach-Object döngüsünün sonudur - eğer zaten varsa.
5. Bölüm: Komut Dosyasının Temizlenmesi ve Çalıştırılması
Bütün iş bittikten sonra, iyi bir senaryo kendisinden sonra nasıl temizleneceğini bilir. Yine, aşağıdaki değişkeni kaldırmak gerçekten gerekli değil sadece komut dosyasını konsoldan çalıştıracaksanız, ancak bunu ISE'de çalıştırmayı planlıyorsanız isteyeceksiniz.
Kaldır-Öğe Takma Adı: \ g Remove-Variable ScriptFolder, RequiredFiles, Soyadı, Erkek, Ad, NumberFormat, Önek, Sonek, ValidInput, UserInput
Hepsini yaptıktan sonra, betiği “.ps1” uzantılı dosya adınızla aynı klasöre kaydedin. ExecutionPolicy'inizin betiğin çalışabileceği şekilde ayarlandığından emin olun ve bir kodlama verin.
İşte eylem komut dosyasının bir ekran görüntüsü:
Ayrıca, bu PowerShell betiğini içeren bir ZIP dosyasını ve isim listelerini içeren metin dosyalarını aşağıdaki linkten indirebilirsiniz..
PowerShell için Rasgele İsim ve Telefon Numarası Üretici